public String installContribution(String uri, String contributionURL, String metaDataURL, List<String> dependentContributionURIs, boolean startDeployables) throws ContributionReadException, ActivationException, ValidationException {
if (uri == null) {
uri = getDefaultContributionURI(contributionURL);
}
Monitor monitor = deployer.createMonitor();
Contribution contribution = deployer.loadContribution(IOHelper.createURI(uri), IOHelper.getLocationAsURL(contributionURL), monitor);
monitor.analyzeProblems();
if (metaDataURL != null) {
mergeContributionMetaData(metaDataURL, contribution);
}
installContribution(contribution, dependentContributionURIs, startDeployables);
return uri;