This is a WIP of a Java Zinc client. Only a very limited set of features is supported:
- Tracking different sources and bundles.
- Flavors.
- Tracking distributions.
Grab via Maven:
<dependency>
<groupId>com.mindsnacks.javazinc</groupId>
<artifactId>JavaZinc</artifactId>
<version>(insert latest version)</version>
</dependency>
You can create a ZincRepo
using ZincRepoFactory
:
final int bundleCloneConcurrency = 2;
new ZincRepoFactory().createRepo(
new File(currentDirectory),
"flavor",
bundleCloneConcurrency,
new DownloadPriorityCalculator<BundleID>());
Then you can add your sources:
final String catalogID = "com.mindsnacks.catalog";
repo.addSourceURL(new SourceURL(new URL("http://zinc-repo.com/"), catalogID));
And start tracking bundles:
repo.startTrackingBundle(new BundleID(catalogID, "english-kidsvocab-astronomy"), "master");
DownloadPriorityCalculator
allows you to add objects that handle calculating priorities for a subset of the bundles.
For example:
priorityCalculator.addHandler(new PriorityCalculator<BundleID>() {
@Override
public DownloadPriority getPriorityForObject(final BundleID bundleID) {
return DownloadPriority.NEEDED_IMMEDIATELY;
}
});
If a particular handler does not know about a subset of the bundle IDs (for example, a handler might only work with a catalog), then it can return DownloadPriority.UNKNOWN
.
Once you've started tracking the bundles you need, you have to start the repo:
repo.start();
And then you can get Future
s for the bundles:
final Future<ZincBundle> bundle = repo.getBundle(bundleID);