org.gridkit.lab::grid-ant

Tooling for distributed application development in Java

License

License

Categories

Categories

Ant Build Tools
GroupId

GroupId

org.gridkit.lab
ArtifactId

ArtifactId

grid-ant
Last Version

Last Version

0.5
Release Date

Release Date

Type

Type

jar
Description

Description

org.gridkit.lab::grid-ant
Tooling for distributed application development in Java
Project URL

Project URL

http://code.google.com/p/gridkit/grid-ant
Source Code Management

Source Code Management

https://github.com/gridkit/gridant

Download grid-ant

How to add to project

<!-- https://jarcasting.com/artifacts/org.gridkit.lab/grid-ant/ -->
<dependency>
    <groupId>org.gridkit.lab</groupId>
    <artifactId>grid-ant</artifactId>
    <version>0.5</version>
</dependency>
// https://jarcasting.com/artifacts/org.gridkit.lab/grid-ant/
implementation 'org.gridkit.lab:grid-ant:0.5'
// https://jarcasting.com/artifacts/org.gridkit.lab/grid-ant/
implementation ("org.gridkit.lab:grid-ant:0.5")
'org.gridkit.lab:grid-ant:jar:0.5'
<dependency org="org.gridkit.lab" name="grid-ant" rev="0.5">
  <artifact name="grid-ant" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.gridkit.lab', module='grid-ant', version='0.5')
)
libraryDependencies += "org.gridkit.lab" % "grid-ant" % "0.5"
[org.gridkit.lab/grid-ant "0.5"]

Dependencies

compile (4)

Group / Artifact Type Version
org.gridkit.lab : telecontrol-ssh jar 0.8.9
org.slf4j : slf4j-log4j12 jar 1.6.6
org.apache.ant : ant jar [1.9.2, 2.0.0)
ant-contrib : ant-contrib jar 1.0b3

test (1)

Group / Artifact Type Version
junit : junit jar 4.10

Project Modules

There are no modules declared in this project.

Distributed ANT Extention

This extention to Apache Ant allows really simple remote execution using SSH infrastructure.

Supported tasks

<cluster> task

Maps logical node IDs to real host details.

<cluster>
    <basepath>/apps/myapp</basepath>
    <server id="server1" host="cbox1.acme.com"/>
    <server id="server2" host="cbox2.acme.com"/>
</cluster>

For authentication configuration see Nanocloud SSH configuration details.

<remotely> task

Executes nested tasks on remote node (or nodes) defined by <cluster> task. Wild cards could be used to execute task in parallel accross servers.

<remotely servers="server*">
    <echo>This is slave ${slave.id}</echo>
</remotely>

<syncdown> task

Synchronize file systems from master to slave process. This task can only be executed inside of <remotely> task.

<remotely servers="server*">
    <echo>This is slave ${slave.id}</echo>
    <syncdown sourceBase="target/resources">
        <retain>logs/**</retain> <!-- do not remove content of "logs" directory at destination -->
        <exclude>**/.mkdir</exclude> <!-- do not copy these files -->
        <exclude>**/b.txt</exclude> <!-- do not copy these files -->
        <copy rename="b.txt">**/b.txt.v2</copy> <!-- rename file b.txt.v2 into b.txt while copying -->
        <copy/> <!-- copy rest of context as is -->
    </syncdown>
</remotely>
  • rsync like delta compression protocol is used to reduce data transfer.
  • destination derectory is clean (equivalent to removing and creating fresh copy).
  • optionally certain files could be retained at destination

<urlget>

Similar fetches resource by URL. May use master process as proxy (usefully if slave is in restricted network).

org.gridkit.lab

Versions

Version
0.5
0.4.2
0.4.1
0.4
0.3.1
0.3
0.2
0.1.1
0.1