Search in sources :

Example 6 with Jndi

use of org.apache.openejb.jee.oejb3.Jndi in project tomee by apache.

the class MappedNameBuilderTest method testShouldCreateJndiEntryForBeanWithMappedName.

public void testShouldCreateJndiEntryForBeanWithMappedName() throws Exception {
    AppModule appModule = new AppModule(new FakeClassLoader(), "");
    final EjbJar ejbJar = new EjbJar();
    final OpenejbJar openejbJar = new OpenejbJar();
    final SessionBean sessionBean = new SessionBean("SessionBean", "org.superbiz.SessionBean", SessionType.STATELESS);
    sessionBean.setMappedName("MappedName");
    ejbJar.addEnterpriseBean(sessionBean);
    final EjbDeployment ejbDeployment = new EjbDeployment("containerId", "deploymentId", "SessionBean");
    openejbJar.addEjbDeployment(ejbDeployment);
    appModule.getEjbModules().add(new EjbModule(ejbJar, openejbJar));
    appModule = new MappedNameBuilder().deploy(appModule);
    final EjbDeployment retrievedDeployment = appModule.getEjbModules().get(0).getOpenejbJar().getDeploymentsByEjbName().get("SessionBean");
    final List<Jndi> jndiList = retrievedDeployment.getJndi();
    assertNotNull(jndiList);
    assertEquals(1, jndiList.size());
    assertEquals("MappedName", jndiList.get(0).getName());
    assertEquals("Remote", jndiList.get(0).getInterface());
}
Also used : OpenejbJar(org.apache.openejb.jee.oejb3.OpenejbJar) EjbDeployment(org.apache.openejb.jee.oejb3.EjbDeployment) Jndi(org.apache.openejb.jee.oejb3.Jndi) SessionBean(org.apache.openejb.jee.SessionBean) EjbJar(org.apache.openejb.jee.EjbJar)

Example 7 with Jndi

use of org.apache.openejb.jee.oejb3.Jndi in project tomee by apache.

the class EjbJarInfoBuilder method initJndiNames.

private void initJndiNames(final Map<String, EjbDeployment> ejbds, final EnterpriseBeanInfo info) {
    final EjbDeployment deployment = ejbds.get(info.ejbName);
    if (deployment != null) {
        for (final Jndi jndi : deployment.getJndi()) {
            final JndiNameInfo jndiNameInfo = new JndiNameInfo();
            jndiNameInfo.intrface = jndi.getInterface();
            jndiNameInfo.name = jndi.getName();
            info.jndiNamess.add(jndiNameInfo);
        }
    }
}
Also used : JndiNameInfo(org.apache.openejb.assembler.classic.JndiNameInfo) EjbDeployment(org.apache.openejb.jee.oejb3.EjbDeployment) Jndi(org.apache.openejb.jee.oejb3.Jndi)

Example 8 with Jndi

use of org.apache.openejb.jee.oejb3.Jndi in project tomee by apache.

the class AutoConfig method processResourceEnvRef.

private void processResourceEnvRef(final JndiReference ref, final EjbDeployment ejbDeployment, final AppResources appResources, final ClassLoader classLoader) throws OpenEJBException {
    // skip destinations with lookup name
    if (ref.getLookupName() != null) {
        return;
    }
    // skip destinations with a global jndi name
    final String mappedName = ref.getMappedName() == null ? "" : ref.getMappedName();
    if (mappedName.startsWith("jndi:")) {
        return;
    }
    final String refName = ref.getName();
    final String refType = getType(ref, classLoader);
    // skip references such as SessionContext which are automatically handled by the server
    if (isIgnoredReferenceType(refType, classLoader)) {
        return;
    }
    ResourceLink link = ejbDeployment.getResourceLink(refName);
    if (link == null) {
        String id = mappedName.length() == 0 ? refName : mappedName;
        id = getResourceEnvId(ejbDeployment.getDeploymentId(), id, refType, appResources);
        if (id == null) {
            // could be a session context ref
            return;
        }
        logger.info("Auto-linking resource-env-ref '" + refName + "' in bean " + ejbDeployment.getDeploymentId() + " to Resource(id=" + id + ")");
        link = new ResourceLink();
        link.setResId(id);
        link.setResRefName(refName);
        ejbDeployment.addResourceLink(link);
    } else {
        final String id = getResourceEnvId(ejbDeployment.getDeploymentId(), link.getResId(), refType, appResources);
        link.setResId(id);
        link.setResRefName(refName);
    }
}
Also used : ResourceLink(org.apache.openejb.jee.oejb3.ResourceLink)

Example 9 with Jndi

use of org.apache.openejb.jee.oejb3.Jndi in project tomee by apache.

the class MappedNameBuilder method deploy.

public AppModule deploy(final AppModule appModule) throws OpenEJBException {
    for (final EjbModule ejbModule : appModule.getEjbModules()) {
        final OpenejbJar openejbJar = ejbModule.getOpenejbJar();
        if (openejbJar == null) {
            return appModule;
        }
        final Map<String, EjbDeployment> ejbDeployments = openejbJar.getDeploymentsByEjbName();
        for (final EnterpriseBean enterpriseBean : ejbModule.getEjbJar().getEnterpriseBeans()) {
            final EjbDeployment ejbDeployment = ejbDeployments.get(enterpriseBean.getEjbName());
            if (ejbDeployment == null) {
                continue;
            }
            final String mappedName = enterpriseBean.getMappedName();
            if (mappedName != null && mappedName.length() > 0) {
                ejbDeployment.getJndi().add(new Jndi(mappedName, "Remote"));
            }
        }
    }
    return appModule;
}
Also used : OpenejbJar(org.apache.openejb.jee.oejb3.OpenejbJar) EnterpriseBean(org.apache.openejb.jee.EnterpriseBean) EjbDeployment(org.apache.openejb.jee.oejb3.EjbDeployment) Jndi(org.apache.openejb.jee.oejb3.Jndi)

Example 10 with Jndi

use of org.apache.openejb.jee.oejb3.Jndi in project tomee by apache.

the class SunConversion method mergeEjbConfig.

private void mergeEjbConfig(final EjbModule ejbModule, final SunEjbJar sunEjbJar) {
    final EjbJar ejbJar = ejbModule.getEjbJar();
    final OpenejbJar openejbJar = ejbModule.getOpenejbJar();
    if (openejbJar == null) {
        return;
    }
    if (sunEjbJar == null) {
        return;
    }
    if (sunEjbJar.getEnterpriseBeans() == null) {
        return;
    }
    final Map<String, Map<String, WebserviceEndpoint>> endpointMap = new HashMap<String, Map<String, WebserviceEndpoint>>();
    for (final Ejb ejb : sunEjbJar.getEnterpriseBeans().getEjb()) {
        final EjbDeployment deployment = openejbJar.getDeploymentsByEjbName().get(ejb.getEjbName());
        if (deployment == null) {
            // warn no matching deployment
            continue;
        }
        // ejb jndi name is the deploymentId
        if (ejb.getJndiName() != null) {
            deployment.setDeploymentId(ejb.getJndiName());
        }
        // map ejb-ref jndi name declaration to deploymentId
        final Map<String, EjbLink> linksMap = deployment.getEjbLinksMap();
        for (final EjbRef ref : ejb.getEjbRef()) {
            if (ref.getJndiName() != null) {
                String refName = ref.getEjbRefName();
                refName = normalize(refName);
                EjbLink link = linksMap.get(refName);
                if (link == null) {
                    link = new EjbLink();
                    link.setEjbRefName(refName);
                    linksMap.put(refName, link);
                    deployment.getEjbLink().add(link);
                }
                link.setDeployentId(ref.getJndiName());
            }
        }
        final Map<String, ResourceLink> resourceLinksMap = deployment.getResourceLinksMap();
        for (final ResourceRef ref : ejb.getResourceRef()) {
            if (ref.getJndiName() != null) {
                String refName = ref.getResRefName();
                refName = normalize(refName);
                ResourceLink link = resourceLinksMap.get(refName);
                if (link == null) {
                    link = new ResourceLink();
                    link.setResRefName(refName);
                    resourceLinksMap.put(refName, link);
                    deployment.getResourceLink().add(link);
                }
                link.setResId(ref.getJndiName());
            }
        }
        for (final ResourceEnvRef ref : ejb.getResourceEnvRef()) {
            if (ref.getJndiName() != null) {
                String refName = ref.getResourceEnvRefName();
                refName = normalize(refName);
                ResourceLink link = resourceLinksMap.get(refName);
                if (link == null) {
                    link = new ResourceLink();
                    link.setResRefName(refName);
                    resourceLinksMap.put(refName, link);
                    deployment.getResourceLink().add(link);
                }
                link.setResId(ref.getJndiName());
            }
        }
        for (final MessageDestinationRef ref : ejb.getMessageDestinationRef()) {
            if (ref.getJndiName() != null) {
                String refName = ref.getMessageDestinationRefName();
                refName = normalize(refName);
                ResourceLink link = resourceLinksMap.get(refName);
                if (link == null) {
                    link = new ResourceLink();
                    link.setResRefName(refName);
                    resourceLinksMap.put(refName, link);
                    deployment.getResourceLink().add(link);
                }
                link.setResId(ref.getJndiName());
            }
        }
        final EnterpriseBean bean = ejbJar.getEnterpriseBeansByEjbName().get(ejb.getEjbName());
        if (bean != null) {
            final Map<String, ServiceRef> serviceRefMap = bean.getServiceRefMap();
            for (final org.apache.openejb.jee.sun.ServiceRef ref : ejb.getServiceRef()) {
                String refName = ref.getServiceRefName();
                refName = normalize(refName);
                final ServiceRef serviceRef = serviceRefMap.get(refName);
                if (serviceRef != null) {
                    final Map<String, PortComponentRef> ports = new TreeMap<String, PortComponentRef>();
                    for (final PortComponentRef portComponentRef : serviceRef.getPortComponentRef()) {
                        ports.put(portComponentRef.getServiceEndpointInterface(), portComponentRef);
                    }
                    for (final PortInfo portInfo : ref.getPortInfo()) {
                        final PortComponentRef portComponentRef = ports.get(portInfo.getServiceEndpointInterface());
                        if (portComponentRef != null) {
                            final WsdlPort wsdlPort = portInfo.getWsdlPort();
                            if (wsdlPort != null) {
                                final QName qname = new QName(wsdlPort.getNamespaceURI(), wsdlPort.getLocalpart());
                                portComponentRef.setQName(qname);
                            }
                            for (final StubProperty stubProperty : portInfo.getStubProperty()) {
                                final String name = stubProperty.getName();
                                final String value = stubProperty.getValue();
                                portComponentRef.getProperties().setProperty(name, value);
                            }
                        }
                    }
                    final String wsdlOverride = ref.getWsdlOverride();
                    if (wsdlOverride != null && wsdlOverride.length() > 0) {
                        final String serviceId = extractServiceId(wsdlOverride);
                        serviceRef.setMappedName(serviceId);
                    }
                }
            }
        }
        if (ejb.getMdbResourceAdapter() != null) {
            // resource adapter id is the MDB container ID
            final String resourceAdapterId = ejb.getMdbResourceAdapter().getResourceAdapterMid();
            deployment.setContainerId(resourceAdapterId);
        }
        endpointMap.put(ejb.getEjbName(), ejb.getWebserviceEndpointMap());
    }
    // map wsdl locations
    if (ejbModule.getWebservices() != null) {
        final Map<String, org.apache.openejb.jee.sun.WebserviceDescription> sunDescriptions = sunEjbJar.getEnterpriseBeans().getWebserviceDescriptionMap();
        for (final WebserviceDescription description : ejbModule.getWebservices().getWebserviceDescription()) {
            final org.apache.openejb.jee.sun.WebserviceDescription sunDescription = sunDescriptions.get(description.getWebserviceDescriptionName());
            // get the serviceId if specified
            String serviceId = null;
            if (sunDescription != null) {
                serviceId = extractSerivceId(sunDescription.getWsdlPublishLocation(), description.getWsdlFile());
            }
            if (serviceId != null) {
                description.setId(serviceId);
            }
            for (final PortComponent port : description.getPortComponent()) {
                // set the ejb bind location
                final ServiceImplBean bean = port.getServiceImplBean();
                if (bean != null && bean.getEjbLink() != null) {
                    final Map<String, WebserviceEndpoint> endpoints = endpointMap.get(bean.getEjbLink());
                    if (endpoints != null) {
                        final WebserviceEndpoint endpoint = endpoints.get(port.getPortComponentName());
                        if (endpoint != null && endpoint.getEndpointAddressUri() != null) {
                            port.setLocation(endpoint.getEndpointAddressUri());
                        }
                    }
                }
            }
        }
    }
}
Also used : EnterpriseBean(org.apache.openejb.jee.EnterpriseBean) PortComponent(org.apache.openejb.jee.PortComponent) HashMap(java.util.HashMap) WsdlPort(org.apache.openejb.jee.sun.WsdlPort) PortInfo(org.apache.openejb.jee.sun.PortInfo) MessageDestinationRef(org.apache.openejb.jee.sun.MessageDestinationRef) OpenejbJar(org.apache.openejb.jee.oejb3.OpenejbJar) ResourceLink(org.apache.openejb.jee.oejb3.ResourceLink) EjbRef(org.apache.openejb.jee.sun.EjbRef) ResourceEnvRef(org.apache.openejb.jee.sun.ResourceEnvRef) EjbJar(org.apache.openejb.jee.EjbJar) SunEjbJar(org.apache.openejb.jee.sun.SunEjbJar) ServiceImplBean(org.apache.openejb.jee.ServiceImplBean) QName(javax.xml.namespace.QName) StubProperty(org.apache.openejb.jee.sun.StubProperty) WebserviceEndpoint(org.apache.openejb.jee.sun.WebserviceEndpoint) TreeMap(java.util.TreeMap) EjbLink(org.apache.openejb.jee.oejb3.EjbLink) PortComponentRef(org.apache.openejb.jee.PortComponentRef) WebserviceDescription(org.apache.openejb.jee.WebserviceDescription) EjbDeployment(org.apache.openejb.jee.oejb3.EjbDeployment) ResourceRef(org.apache.openejb.jee.sun.ResourceRef) Ejb(org.apache.openejb.jee.sun.Ejb) Map(java.util.Map) HashMap(java.util.HashMap) TreeMap(java.util.TreeMap) ServiceRef(org.apache.openejb.jee.ServiceRef)

Aggregations

EjbDeployment (org.apache.openejb.jee.oejb3.EjbDeployment)8 EnterpriseBean (org.apache.openejb.jee.EnterpriseBean)5 Jndi (org.apache.openejb.jee.oejb3.Jndi)4 OpenejbJar (org.apache.openejb.jee.oejb3.OpenejbJar)4 HashMap (java.util.HashMap)3 EjbJar (org.apache.openejb.jee.EjbJar)3 File (java.io.File)2 URL (java.net.URL)2 ArrayList (java.util.ArrayList)2 Map (java.util.Map)2 Properties (java.util.Properties)2 InitialContext (javax.naming.InitialContext)2 OpenEJBException (org.apache.openejb.OpenEJBException)2 ResourceLink (org.apache.openejb.jee.oejb3.ResourceLink)2 IOException (java.io.IOException)1 Field (java.lang.reflect.Field)1 Method (java.lang.reflect.Method)1 Arrays.asList (java.util.Arrays.asList)1 Collection (java.util.Collection)1 HashSet (java.util.HashSet)1