Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Licensed to the Apache Software Foundation (ASF) under one
   * or more contributor license agreements.  See the NOTICE file
   * distributed with this work for additional information
   * regarding copyright ownership.  The ASF licenses this file
   * to you under the Apache License, Version 2.0 (the
   * "License"); you may not use this file except in compliance
   * with the License.  You may obtain a copy of the License at
   * 
  *   http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  * KIND, either express or implied.  See the License for the
  * specific language governing permissions and limitations
  * under the License.    
  */
 
 package org.apache.tuscany.sca.host.http;
 
 import java.net.URL;
 import java.util.List;
 
 import  javax.servlet.RequestDispatcher;
 import  javax.servlet.Servlet;
 import  javax.servlet.ServletContext;
 
Default implementation of a Servlet host extension point.

Version:
$Rev: 980218 $ $Date: 2010-07-29 00:01:41 +0300 (Thu, 29 Jul 2010) $
 
 
     private List<ServletHostservletHosts = new ArrayList<ServletHost>();
     private boolean loaded;
     private boolean webApp;
 
     private ExtensionPointRegistry registry;
 
         this. = registry;
     }
 
     public void addServletHost(ServletHost servletHost) {
         .add(servletHost);
         if (servletHost instanceof LifeCycleListener) {
             ((LifeCycleListener)servletHost).start();
         }
     }
 
     public void removeServletHost(ServletHost servletHost) {
         .remove(servletHost);
         if (servletHost instanceof LifeCycleListener) {
             ((LifeCycleListener)servletHost).stop();
         }
     }
 
     public List<ServletHostgetServletHosts() {
         loadServletHosts();
         return ;
     }
 
     private synchronized void loadServletHosts() {
         if ()
             return;
 
         // Get the databinding service declarations
         Collection<ServiceDeclarationsds;
         try {
             sds = .getServiceDiscovery().getServiceDeclarations(ServletHost.classtrue);
         } catch (IOException e) {
             throw new IllegalStateException(e);
         }
 
         // Load data bindings
         for (ServiceDeclaration sd : sds) {
             // Create a data binding wrapper and register it
             ServletHost servletHost = new LazyServletHost(sd);
             addServletHost(servletHost);
         }
 
          = true;
     }

    
A data binding facade allowing data bindings to be lazily loaded and initialized.
 
     public class LazyServletHost implements ServletHostLifeCycleListener {
        private ServiceDeclaration sd;
        private ServletHost host;

        

Parameters:
sd
        public LazyServletHost(ServiceDeclaration sd) {
            super();
            this. = sd;
        }
        public synchronized ServletHost getServletHost() {
            if ( == null) {
                try {
                     = ServiceHelper.newInstance();
                    ServiceHelper.start();
                } catch (Throwable e) {
                    throw new IllegalStateException(e);
                }
            }
            return ;
        }
        public String addServletMapping(String uri, Servlet servletthrows ServletMappingException {
            return getServletHost().addServletMapping(uriservlet);
        }
        
        public String addServletMapping(String uri, Servlet servletSecurityContext securityContextthrows ServletMappingException {
            return getServletHost().addServletMapping(uriservletsecurityContext);
        }        
        public String getContextPath() {
            return getServletHost().getContextPath();
        }
        public int getDefaultPort() {
            return getServletHost().getDefaultPort();
        }
        public RequestDispatcher getRequestDispatcher(String urithrows ServletMappingException {
            return getServletHost().getRequestDispatcher(uri);
        }
        public Servlet getServletMapping(String urithrows ServletMappingException {
            return getServletHost().getServletMapping(uri);
        }
        public URL getURLMapping(String uriSecurityContext securityContext) {
            return getServletHost().getURLMapping(urisecurityContext);
        }
        public Servlet removeServletMapping(String urithrows ServletMappingException {
            return getServletHost().removeServletMapping(uri);
        }
        public void setAttribute(String nameObject value) {
            getServletHost().setAttribute(namevalue);
        }
        public void setContextPath(String path) {
            getServletHost().setContextPath(path);
        }
        public void setDefaultPort(int port) {
            getServletHost().setDefaultPort(port);
        }
        
        public String getName() {
            return .getAttributes().get("name");
        }
        public void start() {
        }
        public void stop() {
            ServiceHelper.stop();
        }
        @Override
        public ServletContext getServletContext() {
            return getServletHost().getServletContext();
        }
    }
    public void start() {
    }
    public void stop() {
        ServiceHelper.stop();
        .clear();
         = null;
    }
    public boolean isWebApp() {
        return ;
    }
    public void setWebApp(boolean webApp) {
        this. = webApp;
    }
New to GrepCode? Check out our FAQ X