in jbi/deployer/src/main/java/org/apache/servicemix/jbi/deployer/impl/Deployer.java [680:712]
public void registerDeployedServiceAssembly(ServiceReference reference, DeployedAssembly assembly) {
try {
ServiceAssemblyDesc desc = new ServiceAssemblyDesc();
desc.setIdentification(new Identification());
desc.getIdentification().setName(assembly.getName());
List<ServiceUnitDesc> sus = new ArrayList<ServiceUnitDesc>();
for (Map.Entry<String, String> unit : assembly.getServiceUnits().entrySet()) {
ServiceUnitDesc suDesc = new ServiceUnitDesc();
suDesc.setIdentification(new Identification());
suDesc.getIdentification().setName(unit.getKey());
suDesc.setTarget(new Target());
suDesc.getTarget().setComponentName(unit.getValue());
sus.add(suDesc);
}
desc.setServiceUnits(sus.toArray(new ServiceUnitDesc[sus.size()]));
Descriptor descriptor = new Descriptor();
descriptor.setServiceAssembly(desc);
ServiceAssemblyInstaller installer = new ServiceAssemblyInstaller(this, descriptor, assembly, autoStart);
installer.setBundle(reference.getBundle());
try {
installer.init();
installer.install();
installers.put(installer.getBundle(), installer);
} catch (PendingException e) {
pendingInstallers.add(installer);
logger.warn("Requirements not met for JBI artifact in bundle {}. Installation pending. ", OsgiStringUtils.nullSafeNameAndSymName(reference.getBundle()), e);
}
bundles.add(reference.getBundle());
} catch (Exception e) {
logger.error("Error registering deployed service assembly", e);
}
}