Apache Ruper (of Depot) | ![]() |
Resource Updater | ||
Apache-Ruper is a resource updater, meaning it automatically keeps local resources up-to-date with versions of the resource found in repositories.
Say you have a build script that uses releases of certain jars, e.g. junit.jar or commons-logging.jar, you could ask Ruper to get the latest release of these, and store it in your ./lib directory. Alternatively, you could create a shared $HOME/jars directory (say) so all your build scripts share the latest release.
Why Ruper was created... | ||
Apache-Ruper was developed as a middle ground between Ant <get> (to download a certain 'stale' version of a jar) and the relative chaos of Gump (which gets/build the absolute latest ever time).
An example of a 'potentially stale' update (version is hard coded.)
<get src="http://www.ibiblio.org/maven/commons-logging/jars/commons-logging-1.0.jar"
dest="${lib}/commons-logging.jar"
usetimestamp="true"
verbose="true"/>
Ruper performs as a 'negotiation' between the (remote) repository populators and the (local) builder. For example, a new 'release candiate' of a JAR could be published. Typically Ruper would download it, but it could be asked to not do so, and only download 'release' level code.
Ruper trusts the repository manager, but answers to the builder so allows a blend.
Ruper helps reduce JAR HELL by reducing stagnant code compiling/testing. The more projects that work of "out of date" code, the more chance that combining those projects in a single runtime environment will suffer irrepairable jar-hell through incompatibilities.


