contributions.add(contributionService.contribute(contribution.getURI(), contributionURL, false));
analyseProblems();
}
// Resolve the metadata within the context of the first contribution
Contribution mainContribution = contributions.get(contributions.size() - 1);
if (metadata != null) {
StAXArtifactProcessor<ContributionMetadata> processor =
artifactProcessors.getProcessor(ContributionMetadata.class);
processor.resolve(metadata, mainContribution.getModelResolver());
List<Composite> composites = metadata.getDeployables();
configuration.setComposite(composites.get(0));
}
// Load the specified composite
StAXArtifactProcessor<Composite> compositeProcessor = artifactProcessors.getProcessor(Composite.class);
if (configuration.getComposite().getName() == null) {
URI uri = createURI(configuration.getComposite().getURI());
if (uri.getScheme() == null) {
uri = new File(configuration.getComposite().getURI()).toURI();
}
URL compositeURL = uri.toURL();
logger.log(Level.INFO, "Loading composite: " + compositeURL);
URLConnection connection = compositeURL.openConnection();
connection.setDefaultUseCaches(false);
connection.setUseCaches(false);
InputStream is = connection.getInputStream();
XMLStreamReader reader = inputFactory.createXMLStreamReader(is);
composite = compositeProcessor.read(reader);
} else {
composite = configuration.getComposite();
}
analyseProblems();
// Resolve it within the context of the first contribution
compositeProcessor.resolve(composite, mainContribution.getModelResolver());
analyseProblems();
// Create a top level composite to host our composite
// This is temporary to make the activator happy