Search in sources :

Example 1 with AnnotationDeployer

use of org.apache.openejb.config.AnnotationDeployer 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);
    }
}
Also used : AnnotationDeployer(org.apache.openejb.config.AnnotationDeployer) IFile(org.apache.aries.util.filesystem.IFile) AppModule(org.apache.openejb.config.AppModule) EnterpriseBean(org.apache.openejb.jee.EnterpriseBean) EjbModule(org.apache.openejb.config.EjbModule) ModellerException(org.apache.aries.application.modelling.ModellerException) SessionBean(org.apache.openejb.jee.SessionBean) MalformedURLException(java.net.MalformedURLException) IOException(java.io.IOException) ModellerException(org.apache.aries.application.modelling.ModellerException) EjbJar(org.apache.openejb.jee.EjbJar)

Aggregations

IOException (java.io.IOException)1 MalformedURLException (java.net.MalformedURLException)1 ModellerException (org.apache.aries.application.modelling.ModellerException)1 IFile (org.apache.aries.util.filesystem.IFile)1 AnnotationDeployer (org.apache.openejb.config.AnnotationDeployer)1 AppModule (org.apache.openejb.config.AppModule)1 EjbModule (org.apache.openejb.config.EjbModule)1 EjbJar (org.apache.openejb.jee.EjbJar)1 EnterpriseBean (org.apache.openejb.jee.EnterpriseBean)1 SessionBean (org.apache.openejb.jee.SessionBean)1