Search in sources :

Example 1 with Servlet

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

the class WsDeployer method processPorts.

private void processPorts(final WebModule webModule) throws OpenEJBException {
    // map existing webservice port declarations by servlet link
    Webservices webservices = webModule.getWebservices();
    final Map<String, PortComponent> portMap = new TreeMap<>();
    if (webservices != null) {
        for (final WebserviceDescription webserviceDescription : webservices.getWebserviceDescription()) {
            for (final PortComponent portComponent : webserviceDescription.getPortComponent()) {
                final ServiceImplBean serviceImplBean = portComponent.getServiceImplBean();
                if (serviceImplBean != null && serviceImplBean.getServletLink() != null) {
                    portMap.put(serviceImplBean.getServletLink(), portComponent);
                }
            }
        }
    }
    // map existing servlet-mapping declarations
    final WebApp webApp = webModule.getWebApp();
    final Map<String, ServletMapping> servletMappings = new TreeMap<>();
    for (final ServletMapping servletMapping : webApp.getServletMapping()) {
        servletMappings.put(servletMapping.getServletName(), servletMapping);
    }
    // add port declarations for Pojo webservices
    WebserviceDescription webserviceDescription;
    for (final Servlet servlet : webApp.getServlet()) {
        // the implementation class will be replaced by the WsServlet in the WsRegistry
        final String className = servlet.getServletClass();
        // Skip JSPs
        if (className == null) {
            continue;
        }
        try {
            final Class<?> clazz = webModule.getClassLoader().loadClass(className);
            if (JaxWsUtils.isWebService(clazz)) {
                // add servlet mapping if not already declared
                ServletMapping servletMapping = servletMappings.get(servlet.getServletName());
                final String serviceName = JaxWsUtils.getServiceName(clazz);
                if (servletMapping == null) {
                    servletMapping = new ServletMapping();
                    servletMapping.setServletName(servlet.getServletName());
                    final String location = "/" + serviceName;
                    servletMapping.getUrlPattern().add(location);
                    webApp.getServletMapping().add(servletMapping);
                }
                // if we don't have a webservices document yet, we're gonna need one now
                if (webservices == null) {
                    webservices = new Webservices();
                    webModule.setWebservices(webservices);
                }
                // add web service description element (maps to service)
                webserviceDescription = webservices.getWebserviceDescriptionMap().get(serviceName);
                if (webserviceDescription == null) {
                    webserviceDescription = new WebserviceDescription();
                    webserviceDescription.setWebserviceDescriptionName(serviceName);
                    webservices.getWebserviceDescription().add(webserviceDescription);
                }
                // define port if not already declared
                PortComponent portComponent = portMap.get(servlet.getServletName());
                if (portComponent == null) {
                    portComponent = new PortComponent();
                    portComponent.setPortComponentName(clazz.getSimpleName());
                    final ServiceImplBean serviceImplBean = new ServiceImplBean();
                    serviceImplBean.setServletLink(servlet.getServletName());
                    portComponent.setServiceImplBean(serviceImplBean);
                    webserviceDescription.getPortComponent().add(portComponent);
                }
                // default portId == host.moduleId.servletName
                if (portComponent.getId() == null) {
                    portComponent.setId(webModule.getHost() + "." + webModule.getModuleId() + "." + servlet.getServletName());
                }
                if (webserviceDescription.getId() == null) {
                    webserviceDescription.setId(webModule.getHost() + "." + webModule.getModuleId() + "." + servlet.getServletName());
                }
                // set port values from annotations if not already set
                if (portComponent.getServiceEndpointInterface() == null) {
                    portComponent.setServiceEndpointInterface(JaxWsUtils.getServiceInterface(clazz));
                }
                if (portComponent.getWsdlPort() == null) {
                    portComponent.setWsdlPort(JaxWsUtils.getPortQName(clazz));
                }
                if (webserviceDescription.getWsdlFile() == null) {
                    webserviceDescription.setWsdlFile(JaxWsUtils.getServiceWsdlLocation(clazz, webModule.getClassLoader()));
                }
                if (portComponent.getWsdlService() == null) {
                    final Definition definition = getWsdl(webModule, webserviceDescription.getWsdlFile());
                    if (definition != null && definition.getServices().size() == 1) {
                        final QName serviceQName = (QName) definition.getServices().keySet().iterator().next();
                        portComponent.setWsdlService(serviceQName);
                    } else {
                        portComponent.setWsdlService(JaxWsUtils.getServiceQName(clazz));
                    }
                }
                if (portComponent.getProtocolBinding() == null) {
                    portComponent.setProtocolBinding(JaxWsUtils.getBindingUriFromAnn(clazz));
                }
                configMtomAnnotation(clazz, portComponent);
                if (SOAPBinding.SOAP12HTTP_MTOM_BINDING.equals(portComponent.getProtocolBinding()) || SOAPBinding.SOAP11HTTP_MTOM_BINDING.equals(portComponent.getProtocolBinding())) {
                    portComponent.setEnableMtom(true);
                }
                // handlers
                if (portComponent.getHandlerChains() == null) {
                    final HandlerChains handlerChains = getHandlerChains(clazz, portComponent.getServiceEndpointInterface(), webModule.getClassLoader());
                    portComponent.setHandlerChains(handlerChains);
                }
            }
        } catch (final Exception e) {
            throw new OpenEJBException("Unable to load servlet class: " + className, e);
        }
    }
}
Also used : ServletMapping(org.apache.openejb.jee.ServletMapping) OpenEJBException(org.apache.openejb.OpenEJBException) PortComponent(org.apache.openejb.jee.PortComponent) ServiceImplBean(org.apache.openejb.jee.ServiceImplBean) QName(javax.xml.namespace.QName) Definition(javax.wsdl.Definition) HandlerChains(org.apache.openejb.jee.HandlerChains) Webservices(org.apache.openejb.jee.Webservices) TreeMap(java.util.TreeMap) MalformedURLException(java.net.MalformedURLException) OpenEJBException(org.apache.openejb.OpenEJBException) IOException(java.io.IOException) WebserviceDescription(org.apache.openejb.jee.WebserviceDescription) Servlet(org.apache.openejb.jee.Servlet) WebApp(org.apache.openejb.jee.WebApp)

Example 2 with Servlet

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

the class AppInfoBuilder method buildWebModules.

private void buildWebModules(final AppModule appModule, final JndiEncInfoBuilder jndiEncInfoBuilder, final AppInfo appInfo) throws OpenEJBException {
    for (final WebModule webModule : appModule.getWebModules()) {
        final WebApp webApp = webModule.getWebApp();
        final WebAppInfo webAppInfo = new WebAppInfo();
        webAppInfo.description = webApp.getDescription();
        webAppInfo.displayName = webApp.getDisplayName();
        webAppInfo.path = webModule.getJarLocation();
        webAppInfo.moduleId = webModule.getModuleId();
        webAppInfo.watchedResources.addAll(webModule.getWatchedResources());
        webAppInfo.validationInfo = ValidatorBuilder.getInfo(webModule.getValidationConfig());
        webAppInfo.uniqueId = webModule.getUniqueId();
        webAppInfo.restApplications.addAll(webModule.getRestApplications());
        webAppInfo.restClass.addAll(webModule.getRestClasses());
        webAppInfo.ejbWebServices.addAll(webModule.getEjbWebServices());
        webAppInfo.ejbRestServices.addAll(webModule.getEjbRestServices());
        webAppInfo.jaxRsProviders.addAll(webModule.getJaxrsProviders());
        for (final Map.Entry<String, Set<String>> entry : webModule.getWebAnnotatedClasses().entrySet()) {
            final ClassListInfo info = new ClassListInfo();
            info.name = entry.getKey();
            info.list.addAll(entry.getValue());
            webAppInfo.webAnnotatedClasses.add(info);
        }
        for (final Map.Entry<String, Set<String>> entry : webModule.getJsfAnnotatedClasses().entrySet()) {
            final ClassListInfo info = new ClassListInfo();
            info.name = entry.getKey();
            info.list.addAll(entry.getValue());
            webAppInfo.jsfAnnotatedClasses.add(info);
        }
        webAppInfo.host = webModule.getHost();
        if (!webModule.isStandaloneModule() && USE_EAR_AS_CONTEXT_ROOT_BASE) {
            webAppInfo.contextRoot = appModule.getModuleId() + "/" + webModule.getContextRoot();
        } else {
            webAppInfo.contextRoot = webModule.getContextRoot();
        }
        webAppInfo.defaultContextPath = webModule.getDefaultContextPath();
        webAppInfo.sessionTimeout = 30;
        if (webModule.getWebApp() != null && webModule.getWebApp().getSessionConfig() != null) {
            for (final SessionConfig sessionConfig : webModule.getWebApp().getSessionConfig()) {
                if (sessionConfig.getSessionTimeout() != null) {
                    webAppInfo.sessionTimeout = sessionConfig.getSessionTimeout();
                    break;
                }
            }
        }
        jndiEncInfoBuilder.build(webApp, webModule.getJarLocation(), webAppInfo.moduleId, webModule.getModuleUri(), webAppInfo.jndiEnc, webAppInfo.jndiEnc);
        webAppInfo.portInfos.addAll(this.configureWebservices(webModule.getWebservices()));
        for (final Servlet servlet : webModule.getWebApp().getServlet()) {
            final ServletInfo servletInfo = new ServletInfo();
            servletInfo.servletName = servlet.getServletName();
            servletInfo.servletClass = servlet.getServletClass();
            servletInfo.mappings = webModule.getWebApp().getServletMappings(servletInfo.servletName);
            for (final ParamValue pv : servlet.getInitParam()) {
                final ParamValueInfo pvi = new ParamValueInfo();
                pvi.name = pv.getParamName();
                pvi.value = pv.getParamValue();
                servletInfo.initParams.add(pvi);
            }
            webAppInfo.servlets.add(servletInfo);
        }
        for (final Listener listener : webModule.getWebApp().getListener()) {
            final ListenerInfo listenerInfo = new ListenerInfo();
            listenerInfo.classname = listener.getListenerClass();
            webAppInfo.listeners.add(listenerInfo);
        }
        for (final Filter filter : webModule.getWebApp().getFilter()) {
            final FilterInfo filterInfo = new FilterInfo();
            filterInfo.name = filter.getFilterName();
            filterInfo.classname = filter.getFilterClass();
            filterInfo.mappings = webModule.getWebApp().getFilterMappings(filter.getFilterName());
            for (final ParamValue pv : filter.getInitParam()) {
                filterInfo.initParams.put(pv.getParamName(), pv.getParamValue());
            }
            webAppInfo.filters.add(filterInfo);
        }
        appInfo.webApps.add(webAppInfo);
    }
}
Also used : Set(java.util.Set) HashSet(java.util.HashSet) LinkedHashSet(java.util.LinkedHashSet) MessageListener(org.apache.openejb.jee.MessageListener) Listener(org.apache.openejb.jee.Listener) SessionConfig(org.apache.openejb.jee.SessionConfig) ParamValue(org.apache.openejb.jee.ParamValue) ClassListInfo(org.apache.openejb.assembler.classic.ClassListInfo) ServletInfo(org.apache.openejb.assembler.classic.ServletInfo) WebAppInfo(org.apache.openejb.assembler.classic.WebAppInfo) ListenerInfo(org.apache.openejb.assembler.classic.ListenerInfo) ParamValueInfo(org.apache.openejb.assembler.classic.ParamValueInfo) Filter(org.apache.openejb.jee.Filter) Servlet(org.apache.openejb.jee.Servlet) Map(java.util.Map) HashMap(java.util.HashMap) FilterInfo(org.apache.openejb.assembler.classic.FilterInfo) WebApp(org.apache.openejb.jee.WebApp)

Example 3 with Servlet

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

the class WebApp$JAXB method _read.

public static final WebApp _read(final XoXMLStreamReader reader, RuntimeContext context) throws Exception {
    // Check for xsi:nil
    if (reader.isXsiNil()) {
        return null;
    }
    if (context == null) {
        context = new RuntimeContext();
    }
    final WebApp webApp = new WebApp();
    context.beforeUnmarshal(webApp, org.metatype.sxc.jaxb.LifecycleCallback.NONE);
    ArrayList<Text> descriptions = null;
    ArrayList<Text> displayNames = null;
    LocalCollection<Icon> icon = null;
    List<Empty> distributable = null;
    List<ParamValue> contextParam = null;
    List<Filter> filter = null;
    List<FilterMapping> filterMapping = null;
    List<Listener> listener = null;
    List<Servlet> servlet = null;
    List<ServletMapping> servletMapping = null;
    List<SessionConfig> sessionConfig = null;
    List<MimeMapping> mimeMapping = null;
    List<WelcomeFileList> welcomeFileList = null;
    List<ErrorPage> errorPage = null;
    List<JspConfig> jspConfig = null;
    List<SecurityConstraint> securityConstraint = null;
    List<LoginConfig> loginConfig = null;
    List<SecurityRole> securityRole = null;
    List<LocaleEncodingMappingList> localeEncodingMappingList = null;
    KeyedCollection<String, EnvEntry> envEntry = null;
    KeyedCollection<String, EjbRef> ejbRef = null;
    KeyedCollection<String, EjbLocalRef> ejbLocalRef = null;
    KeyedCollection<String, ServiceRef> serviceRef = null;
    KeyedCollection<String, ResourceRef> resourceRef = null;
    KeyedCollection<String, ResourceEnvRef> resourceEnvRef = null;
    KeyedCollection<String, MessageDestinationRef> messageDestinationRef = null;
    KeyedCollection<String, PersistenceContextRef> persistenceContextRef = null;
    KeyedCollection<String, PersistenceUnitRef> persistenceUnitRef = null;
    List<org.apache.openejb.jee.LifecycleCallback> postConstruct = null;
    List<org.apache.openejb.jee.LifecycleCallback> preDestroy = null;
    List<MessageDestination> messageDestination = null;
    KeyedCollection<String, DataSource> dataSource = null;
    KeyedCollection<String, JMSConnectionFactory> jmsConnectionFactories = null;
    // Check xsi:type
    final QName xsiType = reader.getXsiType();
    if (xsiType != null) {
        if (("web-appType" != xsiType.getLocalPart()) || ("http://java.sun.com/xml/ns/javaee" != xsiType.getNamespaceURI())) {
            return context.unexpectedXsiType(reader, WebApp.class);
        }
    }
    // Read attributes
    for (final Attribute attribute : reader.getAttributes()) {
        if (("id" == attribute.getLocalName()) && (("" == attribute.getNamespace()) || (attribute.getNamespace() == null))) {
            // ATTRIBUTE: id
            final String id = Adapters.collapsedStringAdapterAdapter.unmarshal(attribute.getValue());
            context.addXmlId(reader, id, webApp);
            webApp.id = id;
        } else if (("metadata-complete" == attribute.getLocalName()) && (("" == attribute.getNamespace()) || (attribute.getNamespace() == null))) {
            // ATTRIBUTE: metadataComplete
            final Boolean metadataComplete = ("1".equals(attribute.getValue()) || "true".equals(attribute.getValue()));
            webApp.metadataComplete = metadataComplete;
        } else if (("version" == attribute.getLocalName()) && (("" == attribute.getNamespace()) || (attribute.getNamespace() == null))) {
            // ATTRIBUTE: version
            webApp.version = Adapters.collapsedStringAdapterAdapter.unmarshal(attribute.getValue());
        } else if (XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI != attribute.getNamespace()) {
            context.unexpectedAttribute(attribute, new QName("", "id"), new QName("", "metadata-complete"), new QName("", "version"));
        }
    }
    // Read elements
    for (final XoXMLStreamReader elementReader : reader.getChildElements()) {
        if (("description" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: descriptions
            final Text descriptionsItem = readText(elementReader, context);
            if (descriptions == null) {
                descriptions = new ArrayList<Text>();
            }
            descriptions.add(descriptionsItem);
        } else if (("display-name" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: displayNames
            final Text displayNamesItem = readText(elementReader, context);
            if (displayNames == null) {
                displayNames = new ArrayList<Text>();
            }
            displayNames.add(displayNamesItem);
        } else if (("icon" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: icon
            final Icon iconItem = readIcon(elementReader, context);
            if (icon == null) {
                icon = webApp.icon;
                if (icon != null) {
                    icon.clear();
                } else {
                    icon = new LocalCollection<Icon>();
                }
            }
            icon.add(iconItem);
        } else if (("distributable" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: distributable
            final Empty distributableItem = readEmpty(elementReader, context);
            if (distributable == null) {
                distributable = webApp.distributable;
                if (distributable != null) {
                    distributable.clear();
                } else {
                    distributable = new ArrayList<Empty>();
                }
            }
            distributable.add(distributableItem);
        } else if (("context-param" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: contextParam
            final ParamValue contextParamItem = readParamValue(elementReader, context);
            if (contextParam == null) {
                contextParam = webApp.contextParam;
                if (contextParam != null) {
                    contextParam.clear();
                } else {
                    contextParam = new ArrayList<ParamValue>();
                }
            }
            contextParam.add(contextParamItem);
        } else if (("filter" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: filter
            final Filter filterItem = readFilter(elementReader, context);
            if (filter == null) {
                filter = webApp.filter;
                if (filter != null) {
                    filter.clear();
                } else {
                    filter = new ArrayList<Filter>();
                }
            }
            filter.add(filterItem);
        } else if (("filter-mapping" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: filterMapping
            final FilterMapping filterMappingItem = readFilterMapping(elementReader, context);
            if (filterMapping == null) {
                filterMapping = webApp.filterMapping;
                if (filterMapping != null) {
                    filterMapping.clear();
                } else {
                    filterMapping = new ArrayList<FilterMapping>();
                }
            }
            filterMapping.add(filterMappingItem);
        } else if (("listener" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: listener
            final Listener listenerItem = readListener(elementReader, context);
            if (listener == null) {
                listener = webApp.listener;
                if (listener != null) {
                    listener.clear();
                } else {
                    listener = new ArrayList<Listener>();
                }
            }
            listener.add(listenerItem);
        } else if (("servlet" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: servlet
            final Servlet servletItem = readServlet(elementReader, context);
            if (servlet == null) {
                servlet = webApp.servlet;
                if (servlet != null) {
                    servlet.clear();
                } else {
                    servlet = new ArrayList<Servlet>();
                }
            }
            servlet.add(servletItem);
        } else if (("servlet-mapping" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: servletMapping
            final ServletMapping servletMappingItem = readServletMapping(elementReader, context);
            if (servletMapping == null) {
                servletMapping = webApp.servletMapping;
                if (servletMapping != null) {
                    servletMapping.clear();
                } else {
                    servletMapping = new ArrayList<ServletMapping>();
                }
            }
            servletMapping.add(servletMappingItem);
        } else if (("session-config" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: sessionConfig
            final SessionConfig sessionConfigItem = readSessionConfig(elementReader, context);
            if (sessionConfig == null) {
                sessionConfig = webApp.sessionConfig;
                if (sessionConfig != null) {
                    sessionConfig.clear();
                } else {
                    sessionConfig = new ArrayList<SessionConfig>();
                }
            }
            sessionConfig.add(sessionConfigItem);
        } else if (("mime-mapping" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: mimeMapping
            final MimeMapping mimeMappingItem = readMimeMapping(elementReader, context);
            if (mimeMapping == null) {
                mimeMapping = webApp.mimeMapping;
                if (mimeMapping != null) {
                    mimeMapping.clear();
                } else {
                    mimeMapping = new ArrayList<MimeMapping>();
                }
            }
            mimeMapping.add(mimeMappingItem);
        } else if (("welcome-file-list" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: welcomeFileList
            final WelcomeFileList welcomeFileListItem = readWelcomeFileList(elementReader, context);
            if (welcomeFileList == null) {
                welcomeFileList = webApp.welcomeFileList;
                if (welcomeFileList != null) {
                    welcomeFileList.clear();
                } else {
                    welcomeFileList = new ArrayList<WelcomeFileList>();
                }
            }
            welcomeFileList.add(welcomeFileListItem);
        } else if (("error-page" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: errorPage
            final ErrorPage errorPageItem = readErrorPage(elementReader, context);
            if (errorPage == null) {
                errorPage = webApp.errorPage;
                if (errorPage != null) {
                    errorPage.clear();
                } else {
                    errorPage = new ArrayList<ErrorPage>();
                }
            }
            errorPage.add(errorPageItem);
        } else if (("taglib" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: taglib
            final Taglib taglib = readTaglib(elementReader, context);
            try {
                webApp.setTaglib(taglib);
            } catch (final Exception e) {
                context.setterError(reader, WebApp.class, "setTaglib", Taglib.class, e);
            }
        } else if (("jsp-config" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: jspConfig
            final JspConfig jspConfigItem = readJspConfig(elementReader, context);
            if (jspConfig == null) {
                jspConfig = webApp.jspConfig;
                if (jspConfig != null) {
                    jspConfig.clear();
                } else {
                    jspConfig = new ArrayList<JspConfig>();
                }
            }
            jspConfig.add(jspConfigItem);
        } else if (("security-constraint" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: securityConstraint
            final SecurityConstraint securityConstraintItem = readSecurityConstraint(elementReader, context);
            if (securityConstraint == null) {
                securityConstraint = webApp.securityConstraint;
                if (securityConstraint != null) {
                    securityConstraint.clear();
                } else {
                    securityConstraint = new ArrayList<SecurityConstraint>();
                }
            }
            securityConstraint.add(securityConstraintItem);
        } else if (("login-config" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: loginConfig
            final LoginConfig loginConfigItem = readLoginConfig(elementReader, context);
            if (loginConfig == null) {
                loginConfig = webApp.loginConfig;
                if (loginConfig != null) {
                    loginConfig.clear();
                } else {
                    loginConfig = new ArrayList<LoginConfig>();
                }
            }
            loginConfig.add(loginConfigItem);
        } else if (("security-role" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: securityRole
            final SecurityRole securityRoleItem = readSecurityRole(elementReader, context);
            if (securityRole == null) {
                securityRole = webApp.securityRole;
                if (securityRole != null) {
                    securityRole.clear();
                } else {
                    securityRole = new ArrayList<SecurityRole>();
                }
            }
            securityRole.add(securityRoleItem);
        } else if (("locale-encoding-mapping-list" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: localeEncodingMappingList
            final LocaleEncodingMappingList localeEncodingMappingListItem = readLocaleEncodingMappingList(elementReader, context);
            if (localeEncodingMappingList == null) {
                localeEncodingMappingList = webApp.localeEncodingMappingList;
                if (localeEncodingMappingList != null) {
                    localeEncodingMappingList.clear();
                } else {
                    localeEncodingMappingList = new ArrayList<LocaleEncodingMappingList>();
                }
            }
            localeEncodingMappingList.add(localeEncodingMappingListItem);
        } else if (("env-entry" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: envEntry
            final EnvEntry envEntryItem = readEnvEntry(elementReader, context);
            if (envEntry == null) {
                envEntry = webApp.envEntry;
                if (envEntry != null) {
                    envEntry.clear();
                } else {
                    envEntry = new KeyedCollection<String, EnvEntry>();
                }
            }
            envEntry.add(envEntryItem);
        } else if (("ejb-ref" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: ejbRef
            final EjbRef ejbRefItem = readEjbRef(elementReader, context);
            if (ejbRef == null) {
                ejbRef = webApp.ejbRef;
                if (ejbRef != null) {
                    ejbRef.clear();
                } else {
                    ejbRef = new KeyedCollection<String, EjbRef>();
                }
            }
            ejbRef.add(ejbRefItem);
        } else if (("ejb-local-ref" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: ejbLocalRef
            final EjbLocalRef ejbLocalRefItem = readEjbLocalRef(elementReader, context);
            if (ejbLocalRef == null) {
                ejbLocalRef = webApp.ejbLocalRef;
                if (ejbLocalRef != null) {
                    ejbLocalRef.clear();
                } else {
                    ejbLocalRef = new KeyedCollection<String, EjbLocalRef>();
                }
            }
            ejbLocalRef.add(ejbLocalRefItem);
        } else if (("service-ref" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: serviceRef
            final ServiceRef serviceRefItem = readServiceRef(elementReader, context);
            if (serviceRef == null) {
                serviceRef = webApp.serviceRef;
                if (serviceRef != null) {
                    serviceRef.clear();
                } else {
                    serviceRef = new KeyedCollection<String, ServiceRef>();
                }
            }
            serviceRef.add(serviceRefItem);
        } else if (("resource-ref" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: resourceRef
            final ResourceRef resourceRefItem = readResourceRef(elementReader, context);
            if (resourceRef == null) {
                resourceRef = webApp.resourceRef;
                if (resourceRef != null) {
                    resourceRef.clear();
                } else {
                    resourceRef = new KeyedCollection<String, ResourceRef>();
                }
            }
            resourceRef.add(resourceRefItem);
        } else if (("resource-env-ref" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: resourceEnvRef
            final ResourceEnvRef resourceEnvRefItem = readResourceEnvRef(elementReader, context);
            if (resourceEnvRef == null) {
                resourceEnvRef = webApp.resourceEnvRef;
                if (resourceEnvRef != null) {
                    resourceEnvRef.clear();
                } else {
                    resourceEnvRef = new KeyedCollection<String, ResourceEnvRef>();
                }
            }
            resourceEnvRef.add(resourceEnvRefItem);
        } else if (("message-destination-ref" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: messageDestinationRef
            final MessageDestinationRef messageDestinationRefItem = readMessageDestinationRef(elementReader, context);
            if (messageDestinationRef == null) {
                messageDestinationRef = webApp.messageDestinationRef;
                if (messageDestinationRef != null) {
                    messageDestinationRef.clear();
                } else {
                    messageDestinationRef = new KeyedCollection<String, MessageDestinationRef>();
                }
            }
            messageDestinationRef.add(messageDestinationRefItem);
        } else if (("persistence-context-ref" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: persistenceContextRef
            final PersistenceContextRef persistenceContextRefItem = readPersistenceContextRef(elementReader, context);
            if (persistenceContextRef == null) {
                persistenceContextRef = webApp.persistenceContextRef;
                if (persistenceContextRef != null) {
                    persistenceContextRef.clear();
                } else {
                    persistenceContextRef = new KeyedCollection<String, PersistenceContextRef>();
                }
            }
            persistenceContextRef.add(persistenceContextRefItem);
        } else if (("persistence-unit-ref" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: persistenceUnitRef
            final PersistenceUnitRef persistenceUnitRefItem = readPersistenceUnitRef(elementReader, context);
            if (persistenceUnitRef == null) {
                persistenceUnitRef = webApp.persistenceUnitRef;
                if (persistenceUnitRef != null) {
                    persistenceUnitRef.clear();
                } else {
                    persistenceUnitRef = new KeyedCollection<String, PersistenceUnitRef>();
                }
            }
            persistenceUnitRef.add(persistenceUnitRefItem);
        } else if (("post-construct" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: postConstruct
            final org.apache.openejb.jee.LifecycleCallback postConstructItem = readLifecycleCallback(elementReader, context);
            if (postConstruct == null) {
                postConstruct = webApp.postConstruct;
                if (postConstruct != null) {
                    postConstruct.clear();
                } else {
                    postConstruct = new ArrayList<org.apache.openejb.jee.LifecycleCallback>();
                }
            }
            postConstruct.add(postConstructItem);
        } else if (("pre-destroy" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: preDestroy
            final org.apache.openejb.jee.LifecycleCallback preDestroyItem = readLifecycleCallback(elementReader, context);
            if (preDestroy == null) {
                preDestroy = webApp.preDestroy;
                if (preDestroy != null) {
                    preDestroy.clear();
                } else {
                    preDestroy = new ArrayList<org.apache.openejb.jee.LifecycleCallback>();
                }
            }
            preDestroy.add(preDestroyItem);
        } else if (("message-destination" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: messageDestination
            final MessageDestination messageDestinationItem = readMessageDestination(elementReader, context);
            if (messageDestination == null) {
                messageDestination = webApp.messageDestination;
                if (messageDestination != null) {
                    messageDestination.clear();
                } else {
                    messageDestination = new ArrayList<MessageDestination>();
                }
            }
            messageDestination.add(messageDestinationItem);
        } else if (("absolute-ordering" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: absoluteOrdering
            final AbsoluteOrdering absoluteOrdering = readAbsoluteOrdering(elementReader, context);
            webApp.absoluteOrdering = absoluteOrdering;
        } else if (("data-source" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: dataSource
            final DataSource dataSourceItem = readDataSource(elementReader, context);
            if (dataSource == null) {
                dataSource = webApp.dataSource;
                if (dataSource != null) {
                    dataSource.clear();
                } else {
                    dataSource = new KeyedCollection<String, DataSource>();
                }
            }
            dataSource.add(dataSourceItem);
        } else if (("jms-connection-factory" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: dataSource
            final JMSConnectionFactory connectionFactory = readJMSConnectionFactory(elementReader, context);
            if (jmsConnectionFactories == null) {
                jmsConnectionFactories = webApp.jmsConnectionFactories;
                if (jmsConnectionFactories != null) {
                    jmsConnectionFactories.clear();
                } else {
                    jmsConnectionFactories = new KeyedCollection<>();
                }
            }
            jmsConnectionFactories.add(connectionFactory);
        } else if (("module-name" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: moduleName
            final String moduleNameRaw = elementReader.getElementAsString();
            final String moduleName;
            try {
                moduleName = Adapters.collapsedStringAdapterAdapter.unmarshal(moduleNameRaw);
            } catch (final Exception e) {
                context.xmlAdapterError(elementReader, CollapsedStringAdapter.class, String.class, String.class, e);
                continue;
            }
            webApp.moduleName = moduleName;
        } else if (("default-context-path" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: defaultContextPath
            final String defaultContextPathRaw = elementReader.getElementAsString();
            final String defaultContextPath;
            try {
                defaultContextPath = Adapters.collapsedStringAdapterAdapter.unmarshal(defaultContextPathRaw);
            } catch (final Exception e) {
                context.xmlAdapterError(elementReader, CollapsedStringAdapter.class, String.class, String.class, e);
                continue;
            }
            webApp.defaultContextPath = defaultContextPath;
        }
    /*
            else not yet used so ignored, here will come servlet 3.1 elements we don't parse cause don't need yet
            */
    }
    if (descriptions != null) {
        try {
            webApp.setDescriptions(descriptions.toArray(new Text[descriptions.size()]));
        } catch (final Exception e) {
            context.setterError(reader, WebApp.class, "setDescriptions", Text[].class, e);
        }
    }
    if (displayNames != null) {
        try {
            webApp.setDisplayNames(displayNames.toArray(new Text[displayNames.size()]));
        } catch (final Exception e) {
            context.setterError(reader, WebApp.class, "setDisplayNames", Text[].class, e);
        }
    }
    if (icon != null) {
        webApp.icon = icon;
    }
    if (distributable != null) {
        webApp.distributable = distributable;
    }
    if (contextParam != null) {
        webApp.contextParam = contextParam;
    }
    if (filter != null) {
        webApp.filter = filter;
    }
    if (filterMapping != null) {
        webApp.filterMapping = filterMapping;
    }
    if (listener != null) {
        webApp.listener = listener;
    }
    if (servlet != null) {
        webApp.servlet = servlet;
    }
    if (servletMapping != null) {
        webApp.servletMapping = servletMapping;
    }
    if (sessionConfig != null) {
        webApp.sessionConfig = sessionConfig;
    }
    if (mimeMapping != null) {
        webApp.mimeMapping = mimeMapping;
    }
    if (welcomeFileList != null) {
        webApp.welcomeFileList = welcomeFileList;
    }
    if (errorPage != null) {
        webApp.errorPage = errorPage;
    }
    if (jspConfig != null) {
        webApp.jspConfig = jspConfig;
    }
    if (securityConstraint != null) {
        webApp.securityConstraint = securityConstraint;
    }
    if (loginConfig != null) {
        webApp.loginConfig = loginConfig;
    }
    if (securityRole != null) {
        webApp.securityRole = securityRole;
    }
    if (localeEncodingMappingList != null) {
        webApp.localeEncodingMappingList = localeEncodingMappingList;
    }
    if (envEntry != null) {
        webApp.envEntry = envEntry;
    }
    if (ejbRef != null) {
        webApp.ejbRef = ejbRef;
    }
    if (ejbLocalRef != null) {
        webApp.ejbLocalRef = ejbLocalRef;
    }
    if (serviceRef != null) {
        webApp.serviceRef = serviceRef;
    }
    if (resourceRef != null) {
        webApp.resourceRef = resourceRef;
    }
    if (resourceEnvRef != null) {
        webApp.resourceEnvRef = resourceEnvRef;
    }
    if (messageDestinationRef != null) {
        webApp.messageDestinationRef = messageDestinationRef;
    }
    if (persistenceContextRef != null) {
        webApp.persistenceContextRef = persistenceContextRef;
    }
    if (persistenceUnitRef != null) {
        webApp.persistenceUnitRef = persistenceUnitRef;
    }
    if (postConstruct != null) {
        webApp.postConstruct = postConstruct;
    }
    if (preDestroy != null) {
        webApp.preDestroy = preDestroy;
    }
    if (messageDestination != null) {
        webApp.messageDestination = messageDestination;
    }
    if (dataSource != null) {
        webApp.dataSource = dataSource;
    }
    context.afterUnmarshal(webApp, org.metatype.sxc.jaxb.LifecycleCallback.NONE);
    return webApp;
}
Also used : SecurityRole$JAXB.readSecurityRole(org.apache.openejb.jee.SecurityRole$JAXB.readSecurityRole) SecurityRole$JAXB.writeSecurityRole(org.apache.openejb.jee.SecurityRole$JAXB.writeSecurityRole) ErrorPage$JAXB.writeErrorPage(org.apache.openejb.jee.ErrorPage$JAXB.writeErrorPage) ErrorPage$JAXB.readErrorPage(org.apache.openejb.jee.ErrorPage$JAXB.readErrorPage) JspConfig$JAXB.writeJspConfig(org.apache.openejb.jee.JspConfig$JAXB.writeJspConfig) JspConfig$JAXB.readJspConfig(org.apache.openejb.jee.JspConfig$JAXB.readJspConfig) ArrayList(java.util.ArrayList) Taglib$JAXB.writeTaglib(org.apache.openejb.jee.Taglib$JAXB.writeTaglib) Taglib$JAXB.readTaglib(org.apache.openejb.jee.Taglib$JAXB.readTaglib) LocaleEncodingMappingList$JAXB.readLocaleEncodingMappingList(org.apache.openejb.jee.LocaleEncodingMappingList$JAXB.readLocaleEncodingMappingList) LocaleEncodingMappingList$JAXB.writeLocaleEncodingMappingList(org.apache.openejb.jee.LocaleEncodingMappingList$JAXB.writeLocaleEncodingMappingList) ResourceEnvRef$JAXB.readResourceEnvRef(org.apache.openejb.jee.ResourceEnvRef$JAXB.readResourceEnvRef) ResourceEnvRef$JAXB.writeResourceEnvRef(org.apache.openejb.jee.ResourceEnvRef$JAXB.writeResourceEnvRef) XoXMLStreamReader(org.metatype.sxc.util.XoXMLStreamReader) ServletMapping$JAXB.readServletMapping(org.apache.openejb.jee.ServletMapping$JAXB.readServletMapping) ServletMapping$JAXB.writeServletMapping(org.apache.openejb.jee.ServletMapping$JAXB.writeServletMapping) MessageDestination$JAXB.readMessageDestination(org.apache.openejb.jee.MessageDestination$JAXB.readMessageDestination) MessageDestination$JAXB.writeMessageDestination(org.apache.openejb.jee.MessageDestination$JAXB.writeMessageDestination) DataSource$JAXB.writeDataSource(org.apache.openejb.jee.DataSource$JAXB.writeDataSource) DataSource$JAXB.readDataSource(org.apache.openejb.jee.DataSource$JAXB.readDataSource) AbsoluteOrdering$JAXB.readAbsoluteOrdering(org.apache.openejb.jee.AbsoluteOrdering$JAXB.readAbsoluteOrdering) AbsoluteOrdering$JAXB.writeAbsoluteOrdering(org.apache.openejb.jee.AbsoluteOrdering$JAXB.writeAbsoluteOrdering) Icon$JAXB.readIcon(org.apache.openejb.jee.Icon$JAXB.readIcon) Icon$JAXB.writeIcon(org.apache.openejb.jee.Icon$JAXB.writeIcon) RuntimeContext(org.metatype.sxc.jaxb.RuntimeContext) ServiceRef$JAXB.readServiceRef(org.apache.openejb.jee.ServiceRef$JAXB.readServiceRef) ServiceRef$JAXB.writeServiceRef(org.apache.openejb.jee.ServiceRef$JAXB.writeServiceRef) Listener$JAXB.readListener(org.apache.openejb.jee.Listener$JAXB.readListener) Listener$JAXB.writeListener(org.apache.openejb.jee.Listener$JAXB.writeListener) Attribute(org.metatype.sxc.util.Attribute) PersistenceContextRef$JAXB.readPersistenceContextRef(org.apache.openejb.jee.PersistenceContextRef$JAXB.readPersistenceContextRef) PersistenceContextRef$JAXB.writePersistenceContextRef(org.apache.openejb.jee.PersistenceContextRef$JAXB.writePersistenceContextRef) ParamValue$JAXB.readParamValue(org.apache.openejb.jee.ParamValue$JAXB.readParamValue) ParamValue$JAXB.writeParamValue(org.apache.openejb.jee.ParamValue$JAXB.writeParamValue) SessionConfig$JAXB.readSessionConfig(org.apache.openejb.jee.SessionConfig$JAXB.readSessionConfig) SessionConfig$JAXB.writeSessionConfig(org.apache.openejb.jee.SessionConfig$JAXB.writeSessionConfig) FilterMapping$JAXB.writeFilterMapping(org.apache.openejb.jee.FilterMapping$JAXB.writeFilterMapping) FilterMapping$JAXB.readFilterMapping(org.apache.openejb.jee.FilterMapping$JAXB.readFilterMapping) SecurityConstraint$JAXB.readSecurityConstraint(org.apache.openejb.jee.SecurityConstraint$JAXB.readSecurityConstraint) SecurityConstraint$JAXB.writeSecurityConstraint(org.apache.openejb.jee.SecurityConstraint$JAXB.writeSecurityConstraint) MessageDestinationRef$JAXB.writeMessageDestinationRef(org.apache.openejb.jee.MessageDestinationRef$JAXB.writeMessageDestinationRef) MessageDestinationRef$JAXB.readMessageDestinationRef(org.apache.openejb.jee.MessageDestinationRef$JAXB.readMessageDestinationRef) Empty$JAXB.writeEmpty(org.apache.openejb.jee.Empty$JAXB.writeEmpty) Empty$JAXB.readEmpty(org.apache.openejb.jee.Empty$JAXB.readEmpty) EjbRef$JAXB.readEjbRef(org.apache.openejb.jee.EjbRef$JAXB.readEjbRef) EjbRef$JAXB.writeEjbRef(org.apache.openejb.jee.EjbRef$JAXB.writeEjbRef) LoginConfig$JAXB.readLoginConfig(org.apache.openejb.jee.LoginConfig$JAXB.readLoginConfig) LoginConfig$JAXB.writeLoginConfig(org.apache.openejb.jee.LoginConfig$JAXB.writeLoginConfig) Servlet$JAXB.writeServlet(org.apache.openejb.jee.Servlet$JAXB.writeServlet) Servlet$JAXB.readServlet(org.apache.openejb.jee.Servlet$JAXB.readServlet) MimeMapping$JAXB.readMimeMapping(org.apache.openejb.jee.MimeMapping$JAXB.readMimeMapping) MimeMapping$JAXB.writeMimeMapping(org.apache.openejb.jee.MimeMapping$JAXB.writeMimeMapping) PersistenceUnitRef$JAXB.readPersistenceUnitRef(org.apache.openejb.jee.PersistenceUnitRef$JAXB.readPersistenceUnitRef) PersistenceUnitRef$JAXB.writePersistenceUnitRef(org.apache.openejb.jee.PersistenceUnitRef$JAXB.writePersistenceUnitRef) EnvEntry$JAXB.readEnvEntry(org.apache.openejb.jee.EnvEntry$JAXB.readEnvEntry) EnvEntry$JAXB.writeEnvEntry(org.apache.openejb.jee.EnvEntry$JAXB.writeEnvEntry) EjbLocalRef$JAXB.writeEjbLocalRef(org.apache.openejb.jee.EjbLocalRef$JAXB.writeEjbLocalRef) EjbLocalRef$JAXB.readEjbLocalRef(org.apache.openejb.jee.EjbLocalRef$JAXB.readEjbLocalRef) CollapsedStringAdapter(javax.xml.bind.annotation.adapters.CollapsedStringAdapter) WelcomeFileList$JAXB.readWelcomeFileList(org.apache.openejb.jee.WelcomeFileList$JAXB.readWelcomeFileList) WelcomeFileList$JAXB.writeWelcomeFileList(org.apache.openejb.jee.WelcomeFileList$JAXB.writeWelcomeFileList) QName(javax.xml.namespace.QName) Text$JAXB.readText(org.apache.openejb.jee.Text$JAXB.readText) Text$JAXB.writeText(org.apache.openejb.jee.Text$JAXB.writeText) JMSConnectionFactory$JAXB.readJMSConnectionFactory(org.apache.openejb.jee.JMSConnectionFactory$JAXB.readJMSConnectionFactory) Filter$JAXB.readFilter(org.apache.openejb.jee.Filter$JAXB.readFilter) Filter$JAXB.writeFilter(org.apache.openejb.jee.Filter$JAXB.writeFilter) ResourceRef$JAXB.readResourceRef(org.apache.openejb.jee.ResourceRef$JAXB.readResourceRef) ResourceRef$JAXB.writeResourceRef(org.apache.openejb.jee.ResourceRef$JAXB.writeResourceRef) LifecycleCallback$JAXB.writeLifecycleCallback(org.apache.openejb.jee.LifecycleCallback$JAXB.writeLifecycleCallback) LifecycleCallback$JAXB.readLifecycleCallback(org.apache.openejb.jee.LifecycleCallback$JAXB.readLifecycleCallback)

Example 4 with Servlet

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

the class WebApp$JAXB method _write.

public static final void _write(final XoXMLStreamWriter writer, final WebApp webApp, RuntimeContext context) throws Exception {
    if (webApp == null) {
        writer.writeXsiNil();
        return;
    }
    if (context == null) {
        context = new RuntimeContext();
    }
    final String prefix = writer.getUniquePrefix("http://java.sun.com/xml/ns/javaee");
    if (WebApp.class != webApp.getClass()) {
        context.unexpectedSubclass(writer, webApp, WebApp.class);
        return;
    }
    context.beforeMarshal(webApp, org.metatype.sxc.jaxb.LifecycleCallback.NONE);
    // ATTRIBUTE: id
    final String idRaw = webApp.id;
    if (idRaw != null) {
        String id = null;
        try {
            id = Adapters.collapsedStringAdapterAdapter.marshal(idRaw);
        } catch (final Exception e) {
            context.xmlAdapterError(webApp, "id", CollapsedStringAdapter.class, String.class, String.class, e);
        }
        writer.writeAttribute("", "", "id", id);
    }
    // ATTRIBUTE: metadataComplete
    final Boolean metadataComplete = webApp.metadataComplete;
    if (metadataComplete != null) {
        writer.writeAttribute("", "", "metadata-complete", Boolean.toString(metadataComplete));
    }
    // ATTRIBUTE: version
    final String versionRaw = webApp.version;
    if (versionRaw != null) {
        String version = null;
        try {
            version = Adapters.collapsedStringAdapterAdapter.marshal(versionRaw);
        } catch (final Exception e) {
            context.xmlAdapterError(webApp, "version", CollapsedStringAdapter.class, String.class, String.class, e);
        }
        writer.writeAttribute("", "", "version", version);
    }
    // ELEMENT: descriptions
    Text[] descriptions = null;
    try {
        descriptions = webApp.getDescriptions();
    } catch (final Exception e) {
        context.getterError(webApp, "descriptions", WebApp.class, "getDescriptions", e);
    }
    if (descriptions != null) {
        for (final Text descriptionsItem : descriptions) {
            if (descriptionsItem != null) {
                writer.writeStartElement(prefix, "description", "http://java.sun.com/xml/ns/javaee");
                writeText(writer, descriptionsItem, context);
                writer.writeEndElement();
            } else {
                context.unexpectedNullValue(webApp, "descriptions");
            }
        }
    }
    // ELEMENT: displayNames
    Text[] displayNames = null;
    try {
        displayNames = webApp.getDisplayNames();
    } catch (final Exception e) {
        context.getterError(webApp, "displayNames", WebApp.class, "getDisplayNames", e);
    }
    if (displayNames != null) {
        for (final Text displayNamesItem : displayNames) {
            if (displayNamesItem != null) {
                writer.writeStartElement(prefix, "display-name", "http://java.sun.com/xml/ns/javaee");
                writeText(writer, displayNamesItem, context);
                writer.writeEndElement();
            } else {
                context.unexpectedNullValue(webApp, "displayNames");
            }
        }
    }
    // ELEMENT: icon
    final LocalCollection<Icon> icon = webApp.icon;
    if (icon != null) {
        for (final Icon iconItem : icon) {
            if (iconItem != null) {
                writer.writeStartElement(prefix, "icon", "http://java.sun.com/xml/ns/javaee");
                writeIcon(writer, iconItem, context);
                writer.writeEndElement();
            } else {
                context.unexpectedNullValue(webApp, "icon");
            }
        }
    }
    // ELEMENT: distributable
    final List<Empty> distributable = webApp.distributable;
    if (distributable != null) {
        for (final Empty distributableItem : distributable) {
            writer.writeStartElement(prefix, "distributable", "http://java.sun.com/xml/ns/javaee");
            if (distributableItem != null) {
                writeEmpty(writer, distributableItem, context);
            } else {
                writer.writeXsiNil();
            }
            writer.writeEndElement();
        }
    }
    // ELEMENT: contextParam
    final List<ParamValue> contextParam = webApp.contextParam;
    if (contextParam != null) {
        for (final ParamValue contextParamItem : contextParam) {
            if (contextParamItem != null) {
                writer.writeStartElement(prefix, "context-param", "http://java.sun.com/xml/ns/javaee");
                writeParamValue(writer, contextParamItem, context);
                writer.writeEndElement();
            }
        }
    }
    // ELEMENT: filter
    final List<Filter> filter = webApp.filter;
    if (filter != null) {
        for (final Filter filterItem : filter) {
            writer.writeStartElement(prefix, "filter", "http://java.sun.com/xml/ns/javaee");
            if (filterItem != null) {
                writeFilter(writer, filterItem, context);
            } else {
                writer.writeXsiNil();
            }
            writer.writeEndElement();
        }
    }
    // ELEMENT: filterMapping
    final List<FilterMapping> filterMapping = webApp.filterMapping;
    if (filterMapping != null) {
        for (final FilterMapping filterMappingItem : filterMapping) {
            if (filterMappingItem != null) {
                writer.writeStartElement(prefix, "filter-mapping", "http://java.sun.com/xml/ns/javaee");
                writeFilterMapping(writer, filterMappingItem, context);
                writer.writeEndElement();
            }
        }
    }
    // ELEMENT: listener
    final List<Listener> listener = webApp.listener;
    if (listener != null) {
        for (final Listener listenerItem : listener) {
            writer.writeStartElement(prefix, "listener", "http://java.sun.com/xml/ns/javaee");
            if (listenerItem != null) {
                writeListener(writer, listenerItem, context);
            } else {
                writer.writeXsiNil();
            }
            writer.writeEndElement();
        }
    }
    // ELEMENT: servlet
    final List<Servlet> servlet = webApp.servlet;
    if (servlet != null) {
        for (final Servlet servletItem : servlet) {
            writer.writeStartElement(prefix, "servlet", "http://java.sun.com/xml/ns/javaee");
            if (servletItem != null) {
                writeServlet(writer, servletItem, context);
            } else {
                writer.writeXsiNil();
            }
            writer.writeEndElement();
        }
    }
    // ELEMENT: servletMapping
    final List<ServletMapping> servletMapping = webApp.servletMapping;
    if (servletMapping != null) {
        for (final ServletMapping servletMappingItem : servletMapping) {
            if (servletMappingItem != null) {
                writer.writeStartElement(prefix, "servlet-mapping", "http://java.sun.com/xml/ns/javaee");
                writeServletMapping(writer, servletMappingItem, context);
                writer.writeEndElement();
            }
        }
    }
    // ELEMENT: sessionConfig
    final List<SessionConfig> sessionConfig = webApp.sessionConfig;
    if (sessionConfig != null) {
        for (final SessionConfig sessionConfigItem : sessionConfig) {
            if (sessionConfigItem != null) {
                writer.writeStartElement(prefix, "session-config", "http://java.sun.com/xml/ns/javaee");
                writeSessionConfig(writer, sessionConfigItem, context);
                writer.writeEndElement();
            }
        }
    }
    // ELEMENT: mimeMapping
    final List<MimeMapping> mimeMapping = webApp.mimeMapping;
    if (mimeMapping != null) {
        for (final MimeMapping mimeMappingItem : mimeMapping) {
            if (mimeMappingItem != null) {
                writer.writeStartElement(prefix, "mime-mapping", "http://java.sun.com/xml/ns/javaee");
                writeMimeMapping(writer, mimeMappingItem, context);
                writer.writeEndElement();
            }
        }
    }
    // ELEMENT: welcomeFileList
    final List<WelcomeFileList> welcomeFileList = webApp.welcomeFileList;
    if (welcomeFileList != null) {
        for (final WelcomeFileList welcomeFileListItem : welcomeFileList) {
            if (welcomeFileListItem != null) {
                writer.writeStartElement(prefix, "welcome-file-list", "http://java.sun.com/xml/ns/javaee");
                writeWelcomeFileList(writer, welcomeFileListItem, context);
                writer.writeEndElement();
            }
        }
    }
    // ELEMENT: errorPage
    final List<ErrorPage> errorPage = webApp.errorPage;
    if (errorPage != null) {
        for (final ErrorPage errorPageItem : errorPage) {
            if (errorPageItem != null) {
                writer.writeStartElement(prefix, "error-page", "http://java.sun.com/xml/ns/javaee");
                writeErrorPage(writer, errorPageItem, context);
                writer.writeEndElement();
            }
        }
    }
    // ELEMENT: taglib
    Taglib taglib = null;
    try {
        taglib = webApp.getTaglib();
    } catch (final Exception e) {
        context.getterError(webApp, "taglib", WebApp.class, "getTaglib", e);
    }
    if (taglib != null) {
        writer.writeStartElement(prefix, "taglib", "http://java.sun.com/xml/ns/javaee");
        writeTaglib(writer, taglib, context);
        writer.writeEndElement();
    }
    // ELEMENT: jspConfig
    final List<JspConfig> jspConfig = webApp.jspConfig;
    if (jspConfig != null) {
        for (final JspConfig jspConfigItem : jspConfig) {
            if (jspConfigItem != null) {
                writer.writeStartElement(prefix, "jsp-config", "http://java.sun.com/xml/ns/javaee");
                writeJspConfig(writer, jspConfigItem, context);
                writer.writeEndElement();
            }
        }
    }
    // ELEMENT: securityConstraint
    final List<SecurityConstraint> securityConstraint = webApp.securityConstraint;
    if (securityConstraint != null) {
        for (final SecurityConstraint securityConstraintItem : securityConstraint) {
            if (securityConstraintItem != null) {
                writer.writeStartElement(prefix, "security-constraint", "http://java.sun.com/xml/ns/javaee");
                writeSecurityConstraint(writer, securityConstraintItem, context);
                writer.writeEndElement();
            }
        }
    }
    // ELEMENT: loginConfig
    final List<LoginConfig> loginConfig = webApp.loginConfig;
    if (loginConfig != null) {
        for (final LoginConfig loginConfigItem : loginConfig) {
            if (loginConfigItem != null) {
                writer.writeStartElement(prefix, "login-config", "http://java.sun.com/xml/ns/javaee");
                writeLoginConfig(writer, loginConfigItem, context);
                writer.writeEndElement();
            }
        }
    }
    // ELEMENT: securityRole
    final List<SecurityRole> securityRole = webApp.securityRole;
    if (securityRole != null) {
        for (final SecurityRole securityRoleItem : securityRole) {
            if (securityRoleItem != null) {
                writer.writeStartElement(prefix, "security-role", "http://java.sun.com/xml/ns/javaee");
                writeSecurityRole(writer, securityRoleItem, context);
                writer.writeEndElement();
            }
        }
    }
    // ELEMENT: localeEncodingMappingList
    final List<LocaleEncodingMappingList> localeEncodingMappingList = webApp.localeEncodingMappingList;
    if (localeEncodingMappingList != null) {
        for (final LocaleEncodingMappingList localeEncodingMappingListItem : localeEncodingMappingList) {
            if (localeEncodingMappingListItem != null) {
                writer.writeStartElement(prefix, "locale-encoding-mapping-list", "http://java.sun.com/xml/ns/javaee");
                writeLocaleEncodingMappingList(writer, localeEncodingMappingListItem, context);
                writer.writeEndElement();
            }
        }
    }
    // ELEMENT: envEntry
    final KeyedCollection<String, EnvEntry> envEntry = webApp.envEntry;
    if (envEntry != null) {
        for (final EnvEntry envEntryItem : envEntry) {
            if (envEntryItem != null) {
                writer.writeStartElement(prefix, "env-entry", "http://java.sun.com/xml/ns/javaee");
                writeEnvEntry(writer, envEntryItem, context);
                writer.writeEndElement();
            } else {
                context.unexpectedNullValue(webApp, "envEntry");
            }
        }
    }
    // ELEMENT: ejbRef
    final KeyedCollection<String, EjbRef> ejbRef = webApp.ejbRef;
    if (ejbRef != null) {
        for (final EjbRef ejbRefItem : ejbRef) {
            if (ejbRefItem != null) {
                writer.writeStartElement(prefix, "ejb-ref", "http://java.sun.com/xml/ns/javaee");
                writeEjbRef(writer, ejbRefItem, context);
                writer.writeEndElement();
            } else {
                context.unexpectedNullValue(webApp, "ejbRef");
            }
        }
    }
    // ELEMENT: ejbLocalRef
    final KeyedCollection<String, EjbLocalRef> ejbLocalRef = webApp.ejbLocalRef;
    if (ejbLocalRef != null) {
        for (final EjbLocalRef ejbLocalRefItem : ejbLocalRef) {
            if (ejbLocalRefItem != null) {
                writer.writeStartElement(prefix, "ejb-local-ref", "http://java.sun.com/xml/ns/javaee");
                writeEjbLocalRef(writer, ejbLocalRefItem, context);
                writer.writeEndElement();
            } else {
                context.unexpectedNullValue(webApp, "ejbLocalRef");
            }
        }
    }
    // ELEMENT: serviceRef
    final KeyedCollection<String, ServiceRef> serviceRef = webApp.serviceRef;
    if (serviceRef != null) {
        for (final ServiceRef serviceRefItem : serviceRef) {
            if (serviceRefItem != null) {
                writer.writeStartElement(prefix, "service-ref", "http://java.sun.com/xml/ns/javaee");
                writeServiceRef(writer, serviceRefItem, context);
                writer.writeEndElement();
            } else {
                context.unexpectedNullValue(webApp, "serviceRef");
            }
        }
    }
    // ELEMENT: resourceRef
    final KeyedCollection<String, ResourceRef> resourceRef = webApp.resourceRef;
    if (resourceRef != null) {
        for (final ResourceRef resourceRefItem : resourceRef) {
            if (resourceRefItem != null) {
                writer.writeStartElement(prefix, "resource-ref", "http://java.sun.com/xml/ns/javaee");
                writeResourceRef(writer, resourceRefItem, context);
                writer.writeEndElement();
            } else {
                context.unexpectedNullValue(webApp, "resourceRef");
            }
        }
    }
    // ELEMENT: resourceEnvRef
    final KeyedCollection<String, ResourceEnvRef> resourceEnvRef = webApp.resourceEnvRef;
    if (resourceEnvRef != null) {
        for (final ResourceEnvRef resourceEnvRefItem : resourceEnvRef) {
            if (resourceEnvRefItem != null) {
                writer.writeStartElement(prefix, "resource-env-ref", "http://java.sun.com/xml/ns/javaee");
                writeResourceEnvRef(writer, resourceEnvRefItem, context);
                writer.writeEndElement();
            } else {
                context.unexpectedNullValue(webApp, "resourceEnvRef");
            }
        }
    }
    // ELEMENT: messageDestinationRef
    final KeyedCollection<String, MessageDestinationRef> messageDestinationRef = webApp.messageDestinationRef;
    if (messageDestinationRef != null) {
        for (final MessageDestinationRef messageDestinationRefItem : messageDestinationRef) {
            if (messageDestinationRefItem != null) {
                writer.writeStartElement(prefix, "message-destination-ref", "http://java.sun.com/xml/ns/javaee");
                writeMessageDestinationRef(writer, messageDestinationRefItem, context);
                writer.writeEndElement();
            } else {
                context.unexpectedNullValue(webApp, "messageDestinationRef");
            }
        }
    }
    // ELEMENT: persistenceContextRef
    final KeyedCollection<String, PersistenceContextRef> persistenceContextRef = webApp.persistenceContextRef;
    if (persistenceContextRef != null) {
        for (final PersistenceContextRef persistenceContextRefItem : persistenceContextRef) {
            if (persistenceContextRefItem != null) {
                writer.writeStartElement(prefix, "persistence-context-ref", "http://java.sun.com/xml/ns/javaee");
                writePersistenceContextRef(writer, persistenceContextRefItem, context);
                writer.writeEndElement();
            } else {
                context.unexpectedNullValue(webApp, "persistenceContextRef");
            }
        }
    }
    // ELEMENT: persistenceUnitRef
    final KeyedCollection<String, PersistenceUnitRef> persistenceUnitRef = webApp.persistenceUnitRef;
    if (persistenceUnitRef != null) {
        for (final PersistenceUnitRef persistenceUnitRefItem : persistenceUnitRef) {
            if (persistenceUnitRefItem != null) {
                writer.writeStartElement(prefix, "persistence-unit-ref", "http://java.sun.com/xml/ns/javaee");
                writePersistenceUnitRef(writer, persistenceUnitRefItem, context);
                writer.writeEndElement();
            } else {
                context.unexpectedNullValue(webApp, "persistenceUnitRef");
            }
        }
    }
    // ELEMENT: postConstruct
    final List<org.apache.openejb.jee.LifecycleCallback> postConstruct = webApp.postConstruct;
    if (postConstruct != null) {
        for (final org.apache.openejb.jee.LifecycleCallback postConstructItem : postConstruct) {
            if (postConstructItem != null) {
                writer.writeStartElement(prefix, "post-construct", "http://java.sun.com/xml/ns/javaee");
                writeLifecycleCallback(writer, postConstructItem, context);
                writer.writeEndElement();
            } else {
                context.unexpectedNullValue(webApp, "postConstruct");
            }
        }
    }
    // ELEMENT: preDestroy
    final List<org.apache.openejb.jee.LifecycleCallback> preDestroy = webApp.preDestroy;
    if (preDestroy != null) {
        for (final org.apache.openejb.jee.LifecycleCallback preDestroyItem : preDestroy) {
            if (preDestroyItem != null) {
                writer.writeStartElement(prefix, "pre-destroy", "http://java.sun.com/xml/ns/javaee");
                writeLifecycleCallback(writer, preDestroyItem, context);
                writer.writeEndElement();
            } else {
                context.unexpectedNullValue(webApp, "preDestroy");
            }
        }
    }
    // ELEMENT: messageDestination
    final List<MessageDestination> messageDestination = webApp.messageDestination;
    if (messageDestination != null) {
        for (final MessageDestination messageDestinationItem : messageDestination) {
            if (messageDestinationItem != null) {
                writer.writeStartElement(prefix, "message-destination", "http://java.sun.com/xml/ns/javaee");
                writeMessageDestination(writer, messageDestinationItem, context);
                writer.writeEndElement();
            } else {
                context.unexpectedNullValue(webApp, "messageDestination");
            }
        }
    }
    // ELEMENT: absoluteOrdering
    final AbsoluteOrdering absoluteOrdering = webApp.absoluteOrdering;
    if (absoluteOrdering != null) {
        writer.writeStartElement(prefix, "absolute-ordering", "http://java.sun.com/xml/ns/javaee");
        writeAbsoluteOrdering(writer, absoluteOrdering, context);
        writer.writeEndElement();
    }
    // ELEMENT: dataSource
    final KeyedCollection<String, DataSource> dataSource = webApp.dataSource;
    if (dataSource != null) {
        for (final DataSource dataSourceItem : dataSource) {
            if (dataSourceItem != null) {
                writer.writeStartElement(prefix, "data-source", "http://java.sun.com/xml/ns/javaee");
                writeDataSource(writer, dataSourceItem, context);
                writer.writeEndElement();
            } else {
                context.unexpectedNullValue(webApp, "dataSource");
            }
        }
    }
    // ELEMENT: moduleName
    final String moduleNameRaw = webApp.moduleName;
    String moduleName = null;
    try {
        moduleName = Adapters.collapsedStringAdapterAdapter.marshal(moduleNameRaw);
    } catch (final Exception e) {
        context.xmlAdapterError(webApp, "moduleName", CollapsedStringAdapter.class, String.class, String.class, e);
    }
    if (moduleName != null) {
        writer.writeStartElement(prefix, "module-name", "http://java.sun.com/xml/ns/javaee");
        writer.writeCharacters(moduleName);
        writer.writeEndElement();
    }
    context.afterMarshal(webApp, org.metatype.sxc.jaxb.LifecycleCallback.NONE);
}
Also used : SecurityRole$JAXB.readSecurityRole(org.apache.openejb.jee.SecurityRole$JAXB.readSecurityRole) SecurityRole$JAXB.writeSecurityRole(org.apache.openejb.jee.SecurityRole$JAXB.writeSecurityRole) ErrorPage$JAXB.writeErrorPage(org.apache.openejb.jee.ErrorPage$JAXB.writeErrorPage) ErrorPage$JAXB.readErrorPage(org.apache.openejb.jee.ErrorPage$JAXB.readErrorPage) JspConfig$JAXB.writeJspConfig(org.apache.openejb.jee.JspConfig$JAXB.writeJspConfig) JspConfig$JAXB.readJspConfig(org.apache.openejb.jee.JspConfig$JAXB.readJspConfig) Taglib$JAXB.writeTaglib(org.apache.openejb.jee.Taglib$JAXB.writeTaglib) Taglib$JAXB.readTaglib(org.apache.openejb.jee.Taglib$JAXB.readTaglib) LocaleEncodingMappingList$JAXB.readLocaleEncodingMappingList(org.apache.openejb.jee.LocaleEncodingMappingList$JAXB.readLocaleEncodingMappingList) LocaleEncodingMappingList$JAXB.writeLocaleEncodingMappingList(org.apache.openejb.jee.LocaleEncodingMappingList$JAXB.writeLocaleEncodingMappingList) ResourceEnvRef$JAXB.readResourceEnvRef(org.apache.openejb.jee.ResourceEnvRef$JAXB.readResourceEnvRef) ResourceEnvRef$JAXB.writeResourceEnvRef(org.apache.openejb.jee.ResourceEnvRef$JAXB.writeResourceEnvRef) ServletMapping$JAXB.readServletMapping(org.apache.openejb.jee.ServletMapping$JAXB.readServletMapping) ServletMapping$JAXB.writeServletMapping(org.apache.openejb.jee.ServletMapping$JAXB.writeServletMapping) MessageDestination$JAXB.readMessageDestination(org.apache.openejb.jee.MessageDestination$JAXB.readMessageDestination) MessageDestination$JAXB.writeMessageDestination(org.apache.openejb.jee.MessageDestination$JAXB.writeMessageDestination) AbsoluteOrdering$JAXB.readAbsoluteOrdering(org.apache.openejb.jee.AbsoluteOrdering$JAXB.readAbsoluteOrdering) AbsoluteOrdering$JAXB.writeAbsoluteOrdering(org.apache.openejb.jee.AbsoluteOrdering$JAXB.writeAbsoluteOrdering) DataSource$JAXB.writeDataSource(org.apache.openejb.jee.DataSource$JAXB.writeDataSource) DataSource$JAXB.readDataSource(org.apache.openejb.jee.DataSource$JAXB.readDataSource) Icon$JAXB.readIcon(org.apache.openejb.jee.Icon$JAXB.readIcon) Icon$JAXB.writeIcon(org.apache.openejb.jee.Icon$JAXB.writeIcon) RuntimeContext(org.metatype.sxc.jaxb.RuntimeContext) ServiceRef$JAXB.readServiceRef(org.apache.openejb.jee.ServiceRef$JAXB.readServiceRef) ServiceRef$JAXB.writeServiceRef(org.apache.openejb.jee.ServiceRef$JAXB.writeServiceRef) Listener$JAXB.readListener(org.apache.openejb.jee.Listener$JAXB.readListener) Listener$JAXB.writeListener(org.apache.openejb.jee.Listener$JAXB.writeListener) PersistenceContextRef$JAXB.readPersistenceContextRef(org.apache.openejb.jee.PersistenceContextRef$JAXB.readPersistenceContextRef) PersistenceContextRef$JAXB.writePersistenceContextRef(org.apache.openejb.jee.PersistenceContextRef$JAXB.writePersistenceContextRef) ParamValue$JAXB.readParamValue(org.apache.openejb.jee.ParamValue$JAXB.readParamValue) ParamValue$JAXB.writeParamValue(org.apache.openejb.jee.ParamValue$JAXB.writeParamValue) SessionConfig$JAXB.readSessionConfig(org.apache.openejb.jee.SessionConfig$JAXB.readSessionConfig) SessionConfig$JAXB.writeSessionConfig(org.apache.openejb.jee.SessionConfig$JAXB.writeSessionConfig) FilterMapping$JAXB.writeFilterMapping(org.apache.openejb.jee.FilterMapping$JAXB.writeFilterMapping) FilterMapping$JAXB.readFilterMapping(org.apache.openejb.jee.FilterMapping$JAXB.readFilterMapping) SecurityConstraint$JAXB.readSecurityConstraint(org.apache.openejb.jee.SecurityConstraint$JAXB.readSecurityConstraint) SecurityConstraint$JAXB.writeSecurityConstraint(org.apache.openejb.jee.SecurityConstraint$JAXB.writeSecurityConstraint) MessageDestinationRef$JAXB.writeMessageDestinationRef(org.apache.openejb.jee.MessageDestinationRef$JAXB.writeMessageDestinationRef) MessageDestinationRef$JAXB.readMessageDestinationRef(org.apache.openejb.jee.MessageDestinationRef$JAXB.readMessageDestinationRef) Empty$JAXB.writeEmpty(org.apache.openejb.jee.Empty$JAXB.writeEmpty) Empty$JAXB.readEmpty(org.apache.openejb.jee.Empty$JAXB.readEmpty) EjbRef$JAXB.readEjbRef(org.apache.openejb.jee.EjbRef$JAXB.readEjbRef) EjbRef$JAXB.writeEjbRef(org.apache.openejb.jee.EjbRef$JAXB.writeEjbRef) LoginConfig$JAXB.readLoginConfig(org.apache.openejb.jee.LoginConfig$JAXB.readLoginConfig) LoginConfig$JAXB.writeLoginConfig(org.apache.openejb.jee.LoginConfig$JAXB.writeLoginConfig) Servlet$JAXB.writeServlet(org.apache.openejb.jee.Servlet$JAXB.writeServlet) Servlet$JAXB.readServlet(org.apache.openejb.jee.Servlet$JAXB.readServlet) MimeMapping$JAXB.readMimeMapping(org.apache.openejb.jee.MimeMapping$JAXB.readMimeMapping) MimeMapping$JAXB.writeMimeMapping(org.apache.openejb.jee.MimeMapping$JAXB.writeMimeMapping) PersistenceUnitRef$JAXB.readPersistenceUnitRef(org.apache.openejb.jee.PersistenceUnitRef$JAXB.readPersistenceUnitRef) PersistenceUnitRef$JAXB.writePersistenceUnitRef(org.apache.openejb.jee.PersistenceUnitRef$JAXB.writePersistenceUnitRef) EnvEntry$JAXB.readEnvEntry(org.apache.openejb.jee.EnvEntry$JAXB.readEnvEntry) EnvEntry$JAXB.writeEnvEntry(org.apache.openejb.jee.EnvEntry$JAXB.writeEnvEntry) EjbLocalRef$JAXB.writeEjbLocalRef(org.apache.openejb.jee.EjbLocalRef$JAXB.writeEjbLocalRef) EjbLocalRef$JAXB.readEjbLocalRef(org.apache.openejb.jee.EjbLocalRef$JAXB.readEjbLocalRef) CollapsedStringAdapter(javax.xml.bind.annotation.adapters.CollapsedStringAdapter) WelcomeFileList$JAXB.readWelcomeFileList(org.apache.openejb.jee.WelcomeFileList$JAXB.readWelcomeFileList) WelcomeFileList$JAXB.writeWelcomeFileList(org.apache.openejb.jee.WelcomeFileList$JAXB.writeWelcomeFileList) Text$JAXB.readText(org.apache.openejb.jee.Text$JAXB.readText) Text$JAXB.writeText(org.apache.openejb.jee.Text$JAXB.writeText) Filter$JAXB.readFilter(org.apache.openejb.jee.Filter$JAXB.readFilter) Filter$JAXB.writeFilter(org.apache.openejb.jee.Filter$JAXB.writeFilter) ResourceRef$JAXB.readResourceRef(org.apache.openejb.jee.ResourceRef$JAXB.readResourceRef) ResourceRef$JAXB.writeResourceRef(org.apache.openejb.jee.ResourceRef$JAXB.writeResourceRef) LifecycleCallback$JAXB.writeLifecycleCallback(org.apache.openejb.jee.LifecycleCallback$JAXB.writeLifecycleCallback) LifecycleCallback$JAXB.readLifecycleCallback(org.apache.openejb.jee.LifecycleCallback$JAXB.readLifecycleCallback)

Example 5 with Servlet

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

the class FinderFactory method ensureMinimalClasses.

public static Class<?>[] ensureMinimalClasses(final DeploymentModule module) {
    final Collection<Class<?>> finderClasses = new HashSet<>();
    if (EjbModule.class.isInstance(module)) {
        final EjbModule ejb = EjbModule.class.cast(module);
        final EnterpriseBean[] enterpriseBeans = ejb.getEjbJar().getEnterpriseBeans();
        ClassLoader classLoader = ejb.getClassLoader();
        if (classLoader == null) {
            classLoader = Thread.currentThread().getContextClassLoader();
        }
        for (final EnterpriseBean bean : enterpriseBeans) {
            final String name;
            if (SessionBean.class.isInstance(bean)) {
                final SessionBean sessionBean = SessionBean.class.cast(bean);
                if (sessionBean.getProxy() == null) {
                    name = sessionBean.getEjbClass();
                } else {
                    name = sessionBean.getProxy();
                }
            } else {
                name = bean.getEjbClass();
            }
            try {
                final Class<?> clazz = classLoader.loadClass(name);
                finderClasses.addAll(ancestors(clazz));
            } catch (final ClassNotFoundException e) {
            // no-op
            }
        }
        if (ejb.getWebservices() != null) {
            for (final WebserviceDescription webservice : ejb.getWebservices().getWebserviceDescription()) {
                for (final PortComponent port : webservice.getPortComponent()) {
                    if (port.getHandlerChains() == null) {
                        continue;
                    }
                    for (final HandlerChain handlerChain : port.getHandlerChains().getHandlerChain()) {
                        for (final Handler handler : handlerChain.getHandler()) {
                            if (handler.getHandlerClass() != null) {
                                try {
                                    finderClasses.addAll(ancestors(classLoader.loadClass(handler.getHandlerClass())));
                                } catch (final ClassNotFoundException e) {
                                // no-op
                                }
                            }
                        }
                    }
                }
            }
        }
        for (final org.apache.openejb.jee.Interceptor interceptor : ejb.getEjbJar().getInterceptors()) {
            try {
                finderClasses.addAll(ancestors(classLoader.loadClass(interceptor.getInterceptorClass())));
            } catch (final ClassNotFoundException e) {
            // no-op
            }
        }
        final Beans beans = ejb.getBeans();
        if (beans != null && ejb.getEjbJar() != null) {
            for (final List<String> managedClasses : beans.getManagedClasses().values()) {
                for (final String name : managedClasses) {
                    try {
                        finderClasses.addAll(ancestors(classLoader.loadClass(name)));
                    } catch (final ClassNotFoundException e) {
                    // no-op
                    }
                }
            }
            for (final String name : beans.getInterceptors()) {
                try {
                    finderClasses.addAll(ancestors(classLoader.loadClass(name)));
                } catch (final ClassNotFoundException e) {
                // no-op
                }
            }
            for (final String name : beans.getAlternativeClasses()) {
                try {
                    finderClasses.addAll(ancestors(classLoader.loadClass(name)));
                } catch (final ClassNotFoundException e) {
                // no-op
                }
            }
            for (final String name : beans.getDecorators()) {
                try {
                    finderClasses.addAll(ancestors(classLoader.loadClass(name)));
                } catch (final ClassNotFoundException e) {
                // no-op
                }
            }
        }
    } else if (WebModule.class.isInstance(module)) {
        final WebModule web = WebModule.class.cast(module);
        final ClassLoader classLoader = web.getClassLoader();
        if (web.getWebApp() != null) {
            for (final Servlet s : web.getWebApp().getServlet()) {
                final String servletClass = s.getServletClass();
                if (servletClass == null) {
                    continue;
                }
                try {
                    finderClasses.addAll(ancestors(classLoader.loadClass(servletClass)));
                } catch (final ClassNotFoundException e) {
                // no-op
                }
            }
            for (final String s : web.getRestClasses()) {
                try {
                    finderClasses.addAll(ancestors(classLoader.loadClass(s)));
                } catch (final ClassNotFoundException e) {
                // no-op
                }
            }
            for (final String s : web.getEjbWebServices()) {
                try {
                    finderClasses.addAll(ancestors(classLoader.loadClass(s)));
                } catch (final ClassNotFoundException e) {
                // no-op
                }
            }
        }
    }
    return finderClasses.toArray(new Class<?>[finderClasses.size()]);
}
Also used : EnterpriseBean(org.apache.openejb.jee.EnterpriseBean) PortComponent(org.apache.openejb.jee.PortComponent) Handler(org.apache.openejb.jee.Handler) SessionBean(org.apache.openejb.jee.SessionBean) HandlerChain(org.apache.openejb.jee.HandlerChain) Beans(org.apache.openejb.jee.Beans) WebserviceDescription(org.apache.openejb.jee.WebserviceDescription) Servlet(org.apache.openejb.jee.Servlet) HashSet(java.util.HashSet)

Aggregations

Servlet (org.apache.openejb.jee.Servlet)4 HashSet (java.util.HashSet)2 CollapsedStringAdapter (javax.xml.bind.annotation.adapters.CollapsedStringAdapter)2 AbsoluteOrdering$JAXB.readAbsoluteOrdering (org.apache.openejb.jee.AbsoluteOrdering$JAXB.readAbsoluteOrdering)2 AbsoluteOrdering$JAXB.writeAbsoluteOrdering (org.apache.openejb.jee.AbsoluteOrdering$JAXB.writeAbsoluteOrdering)2 DataSource$JAXB.readDataSource (org.apache.openejb.jee.DataSource$JAXB.readDataSource)2 DataSource$JAXB.writeDataSource (org.apache.openejb.jee.DataSource$JAXB.writeDataSource)2 EjbLocalRef$JAXB.readEjbLocalRef (org.apache.openejb.jee.EjbLocalRef$JAXB.readEjbLocalRef)2 EjbLocalRef$JAXB.writeEjbLocalRef (org.apache.openejb.jee.EjbLocalRef$JAXB.writeEjbLocalRef)2 EjbRef$JAXB.readEjbRef (org.apache.openejb.jee.EjbRef$JAXB.readEjbRef)2 EjbRef$JAXB.writeEjbRef (org.apache.openejb.jee.EjbRef$JAXB.writeEjbRef)2 Empty$JAXB.readEmpty (org.apache.openejb.jee.Empty$JAXB.readEmpty)2 Empty$JAXB.writeEmpty (org.apache.openejb.jee.Empty$JAXB.writeEmpty)2 EnvEntry$JAXB.readEnvEntry (org.apache.openejb.jee.EnvEntry$JAXB.readEnvEntry)2 EnvEntry$JAXB.writeEnvEntry (org.apache.openejb.jee.EnvEntry$JAXB.writeEnvEntry)2 ErrorPage$JAXB.readErrorPage (org.apache.openejb.jee.ErrorPage$JAXB.readErrorPage)2 ErrorPage$JAXB.writeErrorPage (org.apache.openejb.jee.ErrorPage$JAXB.writeErrorPage)2 Filter$JAXB.readFilter (org.apache.openejb.jee.Filter$JAXB.readFilter)2 Filter$JAXB.writeFilter (org.apache.openejb.jee.Filter$JAXB.writeFilter)2 FilterMapping$JAXB.readFilterMapping (org.apache.openejb.jee.FilterMapping$JAXB.readFilterMapping)2