Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   *
   * Copyright (c) 2009-2013 Oracle and/or its affiliates. All rights reserved.
   *
   * The contents of this file are subject to the terms of either the GNU
   * General Public License Version 2 only ("GPL") or the Common Development
   * and Distribution License("CDDL") (collectively, the "License").  You
   * may not use this file except in compliance with the License.  You can
  * obtain a copy of the License at
  * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
  * or packager/legal/LICENSE.txt.  See the License for the specific
  * language governing permissions and limitations under the License.
  *
  * When distributing the software, include this License Header Notice in each
  * file and include the License file at packager/legal/LICENSE.txt.
  *
  * GPL Classpath Exception:
  * Oracle designates this particular file as subject to the "Classpath"
  * exception as provided by Oracle in the GPL Version 2 section of the License
  * file that accompanied this code.
  *
  * Modifications:
  * If applicable, add the following below the License Header, with the fields
  * enclosed by brackets [] replaced by your own identifying information:
  * "Portions Copyright [year] [name of copyright owner]"
  *
  * Contributor(s):
  * If you wish your version of this file to be governed by only the CDDL or
  * only the GPL Version 2, indicate your decision by adding "[Contributor]
  * elects to include this software in this distribution under the [CDDL or GPL
  * Version 2] license."  If you don't indicate a single choice of license, a
  * recipient has the option to distribute your version of this file under
  * either the CDDL, the GPL Version 2 or to extend the choice of license to
  * its licensees as provided above.  However, if you add GPL Version 2 code
  * and therefore, elected the GPL Version 2 license, then the option applies
  * only if the new code is made subject to such option by the copyright
  * holder.
  */
 
 package org.glassfish.webservices;
 
 import java.net.URL;
 
 
 
 
 
 import java.util.Set;
 
 
 import  org.glassfish.grizzly.servlet.ServletHandler;

This class implements the ApplicationContainer and will be used to register endpoints to the grizzly ServletAdapter Thus when a request is received it is directed to our EjbWebServiceServlet so that it can process the request

Author(s):
Bhakti Mehta
 
 
 public class WebServicesApplication implements ApplicationContainer {
 
     private ArrayList<EjbEndpointejbendpoints;
 
     private ServletHandler httpHandler;
 
     private final RequestDispatcher dispatcher;
 
     private DeploymentContext deploymentCtx;
 
     private static final Logger logger = LogUtils.getLogger();
 
     private ClassLoader cl;
     private Application app;
     private Set<StringpublishedFiles;
 
     public WebServicesApplication(DeploymentContext context,  RequestDispatcher dispatcherStringSet<StringpublishedFiles){
         this. = context;
         this. = dispatcherString;
         this. = getEjbEndpoints();
         this. = new EjbWSAdapter();
         this. = publishedFiles;
     }
     
     public Object getDescriptor() {
        return null;
    }
    public boolean start(ApplicationContext startupContextthrows Exception {
         = startupContext.getClassLoader();
        try {
            = .getModuleMetaData(Application.class);
            DeployCommandParameters commandParams = ((DeploymentContext)startupContext).getCommandParameters(DeployCommandParameters.class);
            String virtualServers = commandParams.virtualservers;
            Iterator<EjbEndpointiter = .iterator();
            EjbEndpoint ejbendpoint = null;
            while(iter.hasNext()) {
                ejbendpoint = iter.next();
                String contextRoot = ejbendpoint.contextRoot;
                WebServerInfo wsi = new WsUtil().getWebServerInfoForDAS();
                URL rootURL = wsi.getWebServerRootURL(ejbendpoint.isSecure);
                .registerEndpoint(contextRootthisvirtualServers);
                //Fix for issue 13107490 and 17648
                if (wsi.getHttpVS() != null && wsi.getHttpVS().getPort()!=0) {
                    .log(..,
                            new Object[] {.getAppName(), rootURL + contextRoot});
                }
            }
        } catch (EndpointRegistrationException e) {
        }
        return true;
    }
    private ArrayList<EjbEndpointgetEjbEndpoints() {
         = new ArrayList<EjbEndpoint>();
        Set<BundleDescriptorbundles = app.getBundleDescriptors();
        for(BundleDescriptor bundle : bundles) {
            collectEjbEndpoints(bundle);
        }
        return ;
    }
    private void collectEjbEndpoints(BundleDescriptor bundleDesc) {
        WebServicesDescriptor wsDesc = bundleDesc.getWebServices();
        for (WebService ws : wsDesc.getWebServices()) {
            for (WebServiceEndpoint endpoint : ws.getEndpoints()) {
                //Only add for ejb based endpoints
                if (endpoint.implementedByEjbComponent()) {
                    .add(new EjbEndpoint(endpoint.getEndpointAddressUri(), endpoint.isSecure()));
                }
            }
        }
        //For ejb webservices in war we need to get the extension descriptors
        //from the WebBundleDescriptor and process those too
        //http://monaco.sfbay/detail.jsf?cr=6956406
        for (EjbBundleDescriptor ejbD : bundleDesc.getExtensionsDescriptors(EjbBundleDescriptor.class)) {
            collectEjbEndpoints(ejbD);
        }
    }
    public boolean stop(ApplicationContext stopContext) {
        try {
            Iterator<EjbEndpointiter = .iterator();
            String contextRoot;
            EjbEndpoint endpoint;
            while(iter.hasNext()) {
                endpoint = iter.next();
                contextRoot = endpoint.contextRoot;
                .unregisterEndpoint(contextRoot);
            }
        } catch (EndpointRegistrationException e) {
            return false;
        }
        return true;
    }
    public boolean suspend() {
        return false;
    }
    public boolean resume() throws Exception {
        return false;
    }
    public ClassLoader getClassLoader() {
        return ;
    }
        return ;
    }
    static class EjbEndpoint {
        private final String contextRoot;
        private boolean isSecure;
        EjbEndpoint(String contextRoot,boolean secure){
            this. = contextRoot;
            this. = secure;
        }
    }
        return ;
    }
New to GrepCode? Check out our FAQ X