}
out.println("");
}
protected void doDeploy(RepositoryAdmin admin, List<String> bundles, boolean start, boolean deployOptional) throws Exception {
Resolver resolver = admin.resolver();
for (String bundle : bundles) {
String[] target = getTarget(bundle);
Resource resource = selectNewestVersion(searchRepository(admin, target[0], target[1]));
if (resource != null) {
resolver.add(resource);
} else {
System.err.println("Unknown bundle - " + target[0]);
}
}
if ((resolver.getAddedResources() != null) &&
(resolver.getAddedResources().length > 0)) {
if (resolver.resolve(deployOptional ? 0 : Resolver.NO_OPTIONAL_RESOURCES)) {
System.out.println("Target resource(s):");
printUnderline(System.out, 19);
Resource[] resources = resolver.getAddedResources();
for (int resIdx = 0; (resources != null) && (resIdx < resources.length); resIdx++) {
System.out.println(" " + resources[resIdx].getPresentationName()
+ " (" + resources[resIdx].getVersion() + ")");
}
resources = resolver.getRequiredResources();
if ((resources != null) && (resources.length > 0)) {
System.out.println("\nRequired resource(s):");
printUnderline(System.out, 21);
for (int resIdx = 0; resIdx < resources.length; resIdx++) {
System.out.println(" " + resources[resIdx].getPresentationName()
+ " (" + resources[resIdx].getVersion() + ")");
}
}
if (deployOptional) {
resources = resolver.getOptionalResources();
if ((resources != null) && (resources.length > 0)) {
System.out.println("\nOptional resource(s):");
printUnderline(System.out, 21);
for (int resIdx = 0; resIdx < resources.length; resIdx++) {
System.out.println(" " + resources[resIdx].getPresentationName()
+ " (" + resources[resIdx].getVersion() + ")");
}
}
}
try {
System.out.print("\nDeploying...");
resolver.deploy(start ? Resolver.START : 0);
System.out.println("done.");
} catch (IllegalStateException ex) {
System.err.println(ex);
}
} else {
Reason[] reqs = resolver.getUnsatisfiedRequirements();
if ((reqs != null) && (reqs.length > 0)) {
System.out.println("Unsatisfied requirement(s):");
printUnderline(System.out, 27);
for (int reqIdx = 0; reqIdx < reqs.length; reqIdx++) {
System.out.println(" " + reqs[reqIdx].getRequirement().getFilter());