{
log.warn("Missing ClassLoadingMetaData: " + unit);
return;
}
RequirementsMetaData requirements = clmd.getRequirements();
AbstractRequirement integrationModule = hasIntegrationModuleRequirement(requirements);
// If we are importing integration core then import the integration at the same version
if (integrationModule != null)
{
ClassLoadingMetaDataFactory factory = ClassLoadingMetaDataFactory.getInstance();
List<Requirement> added = new ArrayList<Requirement>();
try
{
for (String integrationModuleName : integrationModuleNames)
{
Requirement integrationRequirement = factory.createRequireModule(integrationModuleName, integrationModule.getVersionRange());
requirements.addRequirement(integrationRequirement);
added.add(integrationModule);
}
}
catch (Throwable t)
{
for (int i = added.size() - 1; i >=0; i--)
{
requirements.removeRequirement(added.get(i));
}
throw DeploymentException.rethrowAsDeploymentException("Error adding integration requirement.", t);
}
}
}