IInstallableUnit getPublishedUnitIfExists() { Collection<IInstallableUnit> units = publisherResult.getIUs(null, null); if (units.isEmpty()) { // the BundlesAction simply does not create any IUs if the JAR is not a bundle return null; } else if (units.size() == 1) { return units.iterator().next(); } else { throw new AssertionFailedException(EXCEPTION_CONTEXT + "BundlesAction produced more than one IU for " + mavenArtifact.getLocation()); } }
private DependencyMetadata publish(PublisherInfo publisherInfo, List<IPublisherAction> actions) { PublisherResult result = new PublisherResult(); Publisher publisher = new Publisher(publisherInfo, result); IStatus status = publisher.publish(actions.toArray(new IPublisherAction[actions.size()]), monitor); if (!status.isOK()) { throw new RuntimeException(StatusTool.collectProblems(status), status.getException()); } DependencyMetadata metadata = new DependencyMetadata(); metadata.setMetadata(true, result.getIUs(null, PublisherResult.ROOT)); metadata.setMetadata(false, result.getIUs(null, PublisherResult.NON_ROOT)); IArtifactRepository artifactRepository = publisherInfo.getArtifactRepository(); if (artifactRepository instanceof TransientArtifactRepository) { metadata.setArtifacts(((TransientArtifactRepository) artifactRepository).getArtifactDescriptors()); } return metadata; }