Search in sources :

Example 16 with EjbJar

use of org.apache.openejb.jee.EjbJar in project tomee by apache.

the class OutputGeneratedDescriptors method writeEjbJar.

private void writeEjbJar(final EjbModule ejbModule) {
    try {
        final EjbJar ejbJar = ejbModule.getEjbJar();
        final File tempFile = tempFile("ejb-jar-", ejbModule.getModuleId() + ".xml");
        final OutputStream out = IO.write(tempFile);
        try {
            EjbJarXml.marshal(ejbJar, out);
            logger.info("Dumping Generated ejb-jar.xml to: " + tempFile.getAbsolutePath());
        } catch (final JAXBException e) {
        // no-op
        } finally {
            IO.close(out);
        }
    } catch (final Exception e) {
    // no-op
    }
}
Also used : OutputStream(java.io.OutputStream) JAXBException(javax.xml.bind.JAXBException) File(java.io.File) OpenEJBException(org.apache.openejb.OpenEJBException) IOException(java.io.IOException) JAXBException(javax.xml.bind.JAXBException) EjbJar(org.apache.openejb.jee.EjbJar)

Example 17 with EjbJar

use of org.apache.openejb.jee.EjbJar in project tomee by apache.

the class RemoveWebServices method deploy.

public AppModule deploy(final AppModule appModule) throws OpenEJBException {
    for (final EjbModule ejbModule : appModule.getEjbModules()) {
        final EjbJar ejbJar = ejbModule.getEjbJar();
        final OpenejbJar openejbJar = ejbModule.getOpenejbJar();
        final Map<String, EjbDeployment> deployments = openejbJar.getDeploymentsByEjbName();
        for (final EnterpriseBean bean : ejbJar.getEnterpriseBeans()) {
            final String ejbName = bean.getEjbName();
            final EjbDeployment ejbDeployment = deployments.get(ejbName);
            // Clear any <service-ref> references from ejbs
            bean.getServiceRef().clear();
            if (!(bean instanceof SessionBean)) {
                continue;
            }
            final SessionBean sessionBean = (SessionBean) bean;
            if (sessionBean.getServiceEndpoint() == null) {
                continue;
            }
            sessionBean.setServiceEndpoint(null);
            // if not, then we should just delete it
            if (sessionBean.getHome() != null) {
                continue;
            }
            if (sessionBean.getLocalHome() != null) {
                continue;
            }
            if (sessionBean.getBusinessLocal().size() > 0) {
                continue;
            }
            if (sessionBean.getBusinessRemote().size() > 0) {
                continue;
            }
            // Ok, delete away...
            ejbJar.removeEnterpriseBean(ejbName);
            openejbJar.removeEjbDeployment(ejbDeployment);
            // As well, let's get rid of any transaction or security attributes
            // associated with the bean we just deleted.
            final AssemblyDescriptor assemblyDescriptor = ejbJar.getAssemblyDescriptor();
            if (assemblyDescriptor != null) {
                for (final MethodPermission permission : copy(assemblyDescriptor.getMethodPermission())) {
                    for (final Method method : copy(permission.getMethod())) {
                        if (method.getEjbName().equals(ejbName)) {
                            permission.getMethod().remove(method);
                        }
                    }
                    if (permission.getMethod().size() == 0) {
                        assemblyDescriptor.getMethodPermission().remove(permission);
                    }
                }
                for (final ContainerTransaction transaction : copy(assemblyDescriptor.getContainerTransaction())) {
                    for (final Method method : copy(transaction.getMethod())) {
                        if (method.getEjbName().equals(ejbName)) {
                            transaction.getMethod().remove(method);
                        }
                    }
                    if (transaction.getMethod().size() == 0) {
                        assemblyDescriptor.getContainerTransaction().remove(transaction);
                    }
                }
                for (final InterceptorBinding binding : copy(assemblyDescriptor.getInterceptorBinding())) {
                    if (binding.getEjbName().equals(ejbName)) {
                        assemblyDescriptor.getInterceptorBinding().remove(binding);
                    }
                }
            }
        }
        // Clear any <service-ref> references from interceptors
        for (final Interceptor interceptor : ejbJar.getInterceptors()) {
            interceptor.getServiceRef().clear();
        }
    }
    return appModule;
}
Also used : EnterpriseBean(org.apache.openejb.jee.EnterpriseBean) Method(org.apache.openejb.jee.Method) SessionBean(org.apache.openejb.jee.SessionBean) MethodPermission(org.apache.openejb.jee.MethodPermission) InterceptorBinding(org.apache.openejb.jee.InterceptorBinding) OpenejbJar(org.apache.openejb.jee.oejb3.OpenejbJar) ContainerTransaction(org.apache.openejb.jee.ContainerTransaction) EjbDeployment(org.apache.openejb.jee.oejb3.EjbDeployment) AssemblyDescriptor(org.apache.openejb.jee.AssemblyDescriptor) Interceptor(org.apache.openejb.jee.Interceptor) EjbJar(org.apache.openejb.jee.EjbJar)

Example 18 with EjbJar

use of org.apache.openejb.jee.EjbJar in project tomee by apache.

the class BusinessInterfacesTest method setUp.

@Override
protected void setUp() throws Exception {
    final Assembler assembler = new Assembler();
    config = new ConfigurationFactory();
    ejbModule = new EjbModule(new EjbJar());
    ejbModule.setOpenejbJar(new OpenejbJar());
    ejbJar = ejbModule.getEjbJar();
    strict(false);
}
Also used : OpenejbJar(org.apache.openejb.jee.oejb3.OpenejbJar) Assembler(org.apache.openejb.assembler.classic.Assembler) EjbJar(org.apache.openejb.jee.EjbJar)

Example 19 with EjbJar

use of org.apache.openejb.jee.EjbJar in project tomee by apache.

the class ConfigurationFactoryTest method testConfigureApplicationEjbJar.

@Test
public void testConfigureApplicationEjbJar() throws OpenEJBException {
    // Just to find out whether the validationDisabled message shows up
    SystemInstance.get().setProperty(ConfigurationFactory.VALIDATION_SKIP_PROPERTY, "true");
    final boolean offline = true;
    final ConfigurationFactory factory = new ConfigurationFactory(offline);
    final String id = "testConfigureApplicationEjbJar";
    final EjbJar ejbJar = new EjbJar(id);
    // no real classes engaged so disable metadata (annotation) processing
    ejbJar.setMetadataComplete(true);
    final EjbJarInfo info = factory.configureApplication(ejbJar);
    // not much to assert
    assertEquals(id, info.moduleName);
}
Also used : EjbJarInfo(org.apache.openejb.assembler.classic.EjbJarInfo) EjbJar(org.apache.openejb.jee.EjbJar) Test(org.junit.Test)

Example 20 with EjbJar

use of org.apache.openejb.jee.EjbJar in project tomee by apache.

the class AutoConfigResourceRefsTest method testCaseInsensitive.

public void testCaseInsensitive() throws Exception {
    System.setProperty(javax.naming.Context.INITIAL_CONTEXT_FACTORY, InitContextFactory.class.getName());
    final ConfigurationFactory config = new ConfigurationFactory();
    final Assembler assembler = new Assembler();
    assembler.createProxyFactory(config.configureService(ProxyFactoryInfo.class));
    assembler.createTransactionManager(config.configureService(TransactionServiceInfo.class));
    assembler.createSecurityService(config.configureService(SecurityServiceInfo.class));
    assembler.createResource(config.configureService(new org.apache.openejb.config.sys.Resource("DeFAultDataSource", "DataSource", null), ResourceInfo.class));
    assembler.createResource(config.configureService(new org.apache.openejb.config.sys.Resource("YeLLowDataSource", "DataSource", null), ResourceInfo.class));
    assembler.createResource(config.configureService(new org.apache.openejb.config.sys.Resource("PurpLEDataSource", "DataSource", null), ResourceInfo.class));
    final EjbJar ejbJar = new EjbJar();
    ejbJar.addEnterpriseBean(new StatelessBean(WidgetBean.class));
    final EjbJarInfo ejbJarInfo = config.configureApplication(ejbJar);
    final EnterpriseBeanInfo beanInfo = ejbJarInfo.enterpriseBeans.get(0);
    final Map<String, ResourceReferenceInfo> refs = new HashMap<>();
    for (final ResourceReferenceInfo ref : beanInfo.jndiEnc.resourceRefs) {
        refs.put(ref.referenceName.replaceAll(".*/", ""), ref);
    }
    ResourceReferenceInfo info;
    info = refs.get("yellowDataSource");
    assertNotNull(info);
    assertEquals("YeLLowDataSource", info.resourceID);
    info = refs.get("orangeDataSource");
    assertNotNull(info);
    assertEquals("DeFAultDataSource", info.resourceID);
    info = refs.get("purpleDataSource");
    assertNotNull(info);
    assertEquals("PurpLEDataSource", info.resourceID);
}
Also used : ResourceInfo(org.apache.openejb.assembler.classic.ResourceInfo) HashMap(java.util.HashMap) Resource(javax.annotation.Resource) InitContextFactory(org.apache.openejb.core.ivm.naming.InitContextFactory) EnterpriseBeanInfo(org.apache.openejb.assembler.classic.EnterpriseBeanInfo) ResourceReferenceInfo(org.apache.openejb.assembler.classic.ResourceReferenceInfo) ProxyFactoryInfo(org.apache.openejb.assembler.classic.ProxyFactoryInfo) TransactionServiceInfo(org.apache.openejb.assembler.classic.TransactionServiceInfo) StatelessBean(org.apache.openejb.jee.StatelessBean) Assembler(org.apache.openejb.assembler.classic.Assembler) SecurityServiceInfo(org.apache.openejb.assembler.classic.SecurityServiceInfo) EjbJarInfo(org.apache.openejb.assembler.classic.EjbJarInfo) EjbJar(org.apache.openejb.jee.EjbJar)

Aggregations

EjbJar (org.apache.openejb.jee.EjbJar)253 StatelessBean (org.apache.openejb.jee.StatelessBean)120 Assembler (org.apache.openejb.assembler.classic.Assembler)93 EjbModule (org.apache.openejb.config.EjbModule)87 ConfigurationFactory (org.apache.openejb.config.ConfigurationFactory)81 SecurityServiceInfo (org.apache.openejb.assembler.classic.SecurityServiceInfo)65 TransactionServiceInfo (org.apache.openejb.assembler.classic.TransactionServiceInfo)65 Properties (java.util.Properties)52 OpenejbJar (org.apache.openejb.jee.oejb3.OpenejbJar)52 SingletonBean (org.apache.openejb.jee.SingletonBean)49 InitialContext (javax.naming.InitialContext)44 AppModule (org.apache.openejb.config.AppModule)43 Module (org.apache.openejb.testing.Module)35 StatefulBean (org.apache.openejb.jee.StatefulBean)33 ProxyFactoryInfo (org.apache.openejb.assembler.classic.ProxyFactoryInfo)32 EjbDeployment (org.apache.openejb.jee.oejb3.EjbDeployment)27 LocalInitialContextFactory (org.apache.openejb.core.LocalInitialContextFactory)26 InitContextFactory (org.apache.openejb.core.ivm.naming.InitContextFactory)26 Test (org.junit.Test)26 EjbJarInfo (org.apache.openejb.assembler.classic.EjbJarInfo)22