use of org.apache.aries.application.modelling.ModellerException in project aries by apache.
the class ModelledResourceManagerImpl method getBlueprintServiceElements.
private ParsedServiceElements getBlueprintServiceElements(BundleManifest bundleMf, Iterable<InputStream> blueprints) throws ModellerException {
_logger.debug(LOG_ENTRY, "getServiceElements", new Object[] { bundleMf, blueprints });
Set<ExportedService> services = new HashSet<ExportedService>();
Set<ImportedService> references = new HashSet<ImportedService>();
try {
for (InputStream is : blueprints) {
try {
ParsedServiceElements pse = getParserProxy().parseAllServiceElements(is);
services.addAll(pse.getServices());
references.addAll(pse.getReferences());
} finally {
IOUtils.close(is);
}
}
} catch (Exception e) {
ModellerException m = new ModellerException(e);
_logger.debug(LOG_EXIT, "getServiceElements", m);
throw m;
}
ParsedServiceElements result = _modellingManager.getParsedServiceElements(services, references);
_logger.debug(LOG_EXIT, "getServiceElements", result);
return result;
}
use of org.apache.aries.application.modelling.ModellerException in project aries by apache.
the class OpenEJBLocator method findEJBs.
public void findEJBs(BundleManifest manifest, IDirectory bundle, EJBRegistry registry) throws ModellerException {
logger.debug("Scanning " + manifest.getSymbolicName() + "_" + manifest.getManifestVersion() + " for EJBs");
String ejbJarLocation = (manifest.getRawAttributes().getValue("Web-ContextPath") == null) ? "META-INF/ejb-jar.xml" : "WEB-INF/ejb-jar.xml";
try {
//If we have an ejb-jar.xml then parse it
IFile file = bundle.getFile(ejbJarLocation);
EjbJar ejbJar = (file == null) ? new EjbJar() : ReadDescriptors.readEjbJar(file.toURL());
EjbModule module = new EjbModule(ejbJar);
//We build our own because we can't trust anyone to get the classpath right otherwise!
module.setFinder(new IDirectoryFinder(AnnotationDeployer.class.getClassLoader(), getClassPathLocations(manifest, bundle)));
//Scan our app for annotated EJBs
AppModule app = new AppModule(module);
new AnnotationDeployer().deploy(app);
//Register our session beans
for (EnterpriseBean eb : ejbJar.getEnterpriseBeans()) {
if (!!!(eb instanceof SessionBean))
continue;
else
registerSessionBean(registry, (SessionBean) eb);
}
} catch (Exception e) {
throw new ModellerException(e);
}
}
Aggregations