protected Object doExecute() throws Exception { ServiceReference<RepositoryAdmin> ref = getBundleContext().getServiceReference(RepositoryAdmin.class); if (ref == null) { System.out.println("RepositoryAdmin service is unavailable."); return null; } try { RepositoryAdmin admin = getBundleContext().getService(ref); if (admin == null) { System.out.println("RepositoryAdmin service is unavailable."); return null; } doExecute(admin); } finally { getBundleContext().ungetService(ref); } return null; }
protected Requirement[] parseRequirements(RepositoryAdmin admin, List<String> requirements) throws InvalidSyntaxException { Requirement[] reqs = new Requirement[requirements.size()]; for (int i = 0; i < reqs.length; i++) { reqs[i] = parseRequirement(admin, requirements.get(i)); } return reqs; }
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); 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(" " + getResourceId(resources[resIdx]) + " (" + resources[resIdx].getVersion() + ")"); if ((resources != null) && (resources.length > 0)) { System.out.println("\nRequired resource(s):"); printUnderline(System.out, 21); for (Resource resource : resources) { System.out.println(" " + getResourceId(resource) + " (" + resource.getVersion() + ")"); if ((resources != null) && (resources.length > 0)) { System.out.println("\nOptional resource(s):"); printUnderline(System.out, 21); for (Resource resource : resources) { System.out.println(" " + getResourceId(resource) + " (" + resource.getVersion() + ")"); if ((reqs != null) && (reqs.length > 0)) {
@Override public Object execute() throws Exception { doExecute(repositoryAdmin); return null; }
protected Resource[] searchRepository(RepositoryAdmin admin, String targetId, String targetVersion) throws InvalidSyntaxException { // Try to see if the targetId is a bundle ID. try { Bundle bundle = getBundleContext().getBundle(Long.parseLong(targetId)); targetId = bundle.getSymbolicName(); } catch (NumberFormatException ex) { // It was not a number, so ignore. } // The targetId may be a bundle name or a bundle symbolic name, // so create the appropriate LDAP query. StringBuffer sb = new StringBuffer("(|(presentationname="); sb.append(targetId); sb.append(")(symbolicname="); sb.append(targetId); sb.append("))"); if (targetVersion != null) { sb.insert(0, "(&"); sb.append("(version="); sb.append(targetVersion); sb.append("))"); } return admin.discoverResources(sb.toString()); }
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); 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(" " + getResourceId(resources[resIdx]) + " (" + resources[resIdx].getVersion() + ")"); if ((resources != null) && (resources.length > 0)) { System.out.println("\nRequired resource(s):"); printUnderline(System.out, 21); for (Resource resource : resources) { System.out.println(" " + getResourceId(resource) + " (" + resource.getVersion() + ")"); if ((resources != null) && (resources.length > 0)) { System.out.println("\nOptional resource(s):"); printUnderline(System.out, 21); for (Resource resource : resources) { System.out.println(" " + getResourceId(resource) + " (" + resource.getVersion() + ")"); if ((reqs != null) && (reqs.length > 0)) {
@Override public Object execute() throws Exception { doExecute(repositoryAdmin); return null; }
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); 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++) { 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() 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() + ")"); if ((reqs != null) && (reqs.length > 0)) { System.out.println("Unsatisfied requirement(s):"); printUnderline(System.out, 27); for (int reqIdx = 0; reqIdx < reqs.length; reqIdx++) {
protected Requirement[] parseRequirements(RepositoryAdmin admin, List<String> requirements) throws InvalidSyntaxException { Requirement[] reqs = new Requirement[requirements.size()]; for (int i = 0; i < reqs.length; i++) { reqs[i] = parseRequirement(admin, requirements.get(i)); } return reqs; }
protected Requirement[] parseRequirements(RepositoryAdmin admin, List<String> requirements) throws InvalidSyntaxException { Requirement[] reqs = new Requirement[requirements.size()]; for (int i = 0; i < reqs.length; i++) { reqs[i] = parseRequirement(admin, requirements.get(i)); } return reqs; }