Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * JBoss, Home of Professional Open Source.
   * Copyright 2014, Red Hat Middleware LLC, and individual contributors
   * as indicated by the @author tags. See the copyright.txt file in the
   * distribution for a full listing of individual contributors.
   *
   * This is free software; you can redistribute it and/or modify it
   * under the terms of the GNU Lesser General Public License as
   * published by the Free Software Foundation; either version 2.1 of
  * the License, or (at your option) any later version.
  *
  * This software is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this software; if not, write to the Free
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
 package org.jboss.as.webservices.metadata;
 
 import static org.jboss.as.webservices.WSLogger.ROOT_LOGGER;
 
 import java.util.List;
 

Author(s):
Richard Opalka
 
 abstract class AbstractMetaDataBuilderEJB {

    
Builds universal EJB meta data model that is AS agnostic.

Parameters:
dep webservice deployment
Returns:
universal EJB meta data model
 
     final EJBArchiveMetaData create(final Deployment dep) {
         final EJBArchiveMetaData.Builder ejbArchiveMDBuilder = new EJBArchiveMetaData.Builder();
 
         this.buildEnterpriseBeansMetaData(depejbArchiveMDBuilder);
         this.buildWebservicesMetaData(depejbArchiveMDBuilder);
 
         return ejbArchiveMDBuilder.build();
     }

    
Template method for build enterprise beans meta data.

Parameters:
dep webservice deployment
ejbMetaData universal EJB meta data model
 
     protected abstract void buildEnterpriseBeansMetaData(Deployment depEJBArchiveMetaData.Builder ejbMetaDataBuilder);

    
Builds webservices meta data. This methods sets:
  • context root
  • wsdl location resolver
  • config name
  • config file

Parameters:
dep webservice deployment
ejbArchiveMD universal EJB meta data model
 
     private void buildWebservicesMetaData(final Deployment depfinal EJBArchiveMetaData.Builder ejbArchiveMDBuilder)
     {
        final JBossWebservicesMetaData webservicesMD = WSHelper.getOptionalAttachment(depJBossWebservicesMetaData.class);
 
        if (webservicesMD == nullreturn;
 
        // set context root
        final String contextRoot = webservicesMD.getContextRoot();
        ejbArchiveMDBuilder.setWebServiceContextRoot(contextRoot);
        .settingContextRoot(contextRoot);
 
        // set config name
        final String configName = webservicesMD.getConfigName();
        ejbArchiveMDBuilder.setConfigName(configName);
        .settingConfigName(configName);
 
       // set config file
       final String configFile = webservicesMD.getConfigFile();
       ejbArchiveMDBuilder.setConfigFile(configFile);
       .settingConfigFile(configFile);
       // set wsdl location resolver
       final JBossWebserviceDescriptionMetaData[] wsDescriptionsMD = webservicesMD.getWebserviceDescriptions();
       final PublishLocationAdapter resolver = new PublishLocationAdapterImpl(wsDescriptionsMD);
       ejbArchiveMDBuilder.setPublishLocationAdapter(resolver);
    }
    protected JBossPortComponentMetaData getPortComponent(final String ejbNamefinal JBossWebservicesMetaData jbossWebservicesMD) {
        if (jbossWebservicesMD == nullreturn null;
        for (final JBossPortComponentMetaData jbossPortComponentMD : jbossWebservicesMD.getPortComponents()) {
            if (ejbName.equals(jbossPortComponentMD.getEjbName())) return jbossPortComponentMD;
        }
        return null;
    }

    
Builds JBoss agnostic EJB meta data.

Parameters:
wsEjbsMD jboss agnostic EJBs meta data
    protected void buildEnterpriseBeanMetaData(final List<EJBMetaDatawsEjbsMDfinal EJBEndpoint ejbEndpointfinal JBossWebservicesMetaData jbossWebservicesMD) {
        final SLSBMetaData.Builder wsEjbMDBuilder = new SLSBMetaData.Builder();
        // set EJB name and class
        wsEjbMDBuilder.setEjbName(ejbEndpoint.getName());
        wsEjbMDBuilder.setEjbClass(ejbEndpoint.getClassName());
        final JBossPortComponentMetaData portComponentMD = getPortComponent(ejbEndpoint.getName(), jbossWebservicesMD);
        if (portComponentMD != null) {
            // set port component meta data
            wsEjbMDBuilder.setPortComponentName(portComponentMD.getPortComponentName());
            wsEjbMDBuilder.setPortComponentURI(portComponentMD.getPortComponentURI());
        }
        // set security meta data
        // auth method
        final String authMethod = getAuthMethod(ejbEndpointportComponentMD);
        // transport guarantee
        final String transportGuarantee = getTransportGuarantee(ejbEndpointportComponentMD);
        // secure wsdl access
        final boolean secureWsdlAccess = isSecureWsdlAccess(ejbEndpointportComponentMD);
        final String realmName = getRealmName(ejbEndpointportComponentMD);
        // propagate
        wsEjbMDBuilder.setSecurityMetaData(new EJBSecurityMetaData(authMethodrealmNametransportGuaranteesecureWsdlAccess));
        wsEjbsMD.add(wsEjbMDBuilder.build());
    }
    private static String getAuthMethod(final EJBEndpoint ejbEndpointfinal JBossPortComponentMetaData portComponentMD) {
        if (ejbEndpoint.getAuthMethod() != nullreturn ejbEndpoint.getAuthMethod();
        return portComponentMD != null ? portComponentMD.getAuthMethod() : null;
    }
    private static String getTransportGuarantee(final EJBEndpoint ejbEndpointfinal JBossPortComponentMetaData portComponentMD) {
        if (ejbEndpoint.getTransportGuarantee() != nullreturn ejbEndpoint.getTransportGuarantee();
        return portComponentMD != null ? portComponentMD.getTransportGuarantee() : null;
    }
    private static boolean isSecureWsdlAccess(final EJBEndpoint ejbEndpointfinal JBossPortComponentMetaData portComponentMD) {
        if (ejbEndpoint.isSecureWsdlAccess()) return true;
        return (portComponentMD != null && portComponentMD.getSecureWSDLAccess() != null) ? portComponentMD.getSecureWSDLAccess() : false;
    }
    private static String getRealmName(final EJBEndpoint ejbEndpointfinal JBossPortComponentMetaData portComponentMD) {
        if (ejbEndpoint.getRealmName() != nullreturn ejbEndpoint.getRealmName();
        return portComponentMD != null ? portComponentMD.getRealmName() : null;
    }
New to GrepCode? Check out our FAQ X