diff options
Diffstat (limited to 'branches/sca-java-2.0-M4/modules/host-http/src/main/java/org/apache/tuscany/sca')
6 files changed, 0 insertions, 630 deletions
diff --git a/branches/sca-java-2.0-M4/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/DefaultResourceServlet.java b/branches/sca-java-2.0-M4/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/DefaultResourceServlet.java deleted file mode 100644 index 3de0b9f5a7..0000000000 --- a/branches/sca-java-2.0-M4/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/DefaultResourceServlet.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * 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.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.net.URL; -import java.net.URLDecoder; - -import javax.servlet.Servlet; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -/** - * A minimal implementation of a Servlet that serves documents in a document root - * directory. - * - * A Servlet host implementation is not required to use this implementation and can map - * the URI and document root to a more complete and more efficient implementation of - * a resource Servlet, for example the Tomcat or Jetty default Servlets. - * - * @version $Rev$ $Date$ - */ -public class DefaultResourceServlet extends HttpServlet implements Servlet { - private static final long serialVersionUID = 2865466417329430610L; - - private String documentRoot; - - /** - * Constructs a new ResourceServlet - * @param documentRoot the document root - */ - public DefaultResourceServlet(String documentRoot) { - this.documentRoot = documentRoot; - } - - /** - * Returns the document root. - * @return the document root - */ - public String getDocumentRoot() { - return documentRoot; - } - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - - // Determine the resource path - String path = URLDecoder.decode(request.getRequestURI().substring(request.getServletPath().length()), "UTF-8"); - if (path.startsWith("/")) { - path = path.substring(1); - } - URL url = new URL(documentRoot + '/' + path); - - // Write the resource - InputStream is = url.openStream(); - OutputStream os = response.getOutputStream(); - byte[] buffer = new byte[2048]; - for (;;) { - int n = is.read(buffer); - if (n <= 0) - break; - os.write(buffer, 0, n); - } - } -} diff --git a/branches/sca-java-2.0-M4/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/DefaultServletHostExtensionPoint.java b/branches/sca-java-2.0-M4/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/DefaultServletHostExtensionPoint.java deleted file mode 100644 index d91485cbb5..0000000000 --- a/branches/sca-java-2.0-M4/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/DefaultServletHostExtensionPoint.java +++ /dev/null @@ -1,198 +0,0 @@ -/* - * 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.io.IOException; -import java.lang.reflect.Constructor; -import java.net.URL; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -import javax.servlet.RequestDispatcher; -import javax.servlet.Servlet; - -import org.apache.tuscany.sca.core.ExtensionPointRegistry; -import org.apache.tuscany.sca.core.LifeCycleListener; -import org.apache.tuscany.sca.extensibility.ServiceDeclaration; -import org.apache.tuscany.sca.extensibility.ServiceDiscovery; - -/** - * Default implementation of a Servlet host extension point. - * - * @version $Rev$ $Date$ - */ -public class DefaultServletHostExtensionPoint implements ServletHostExtensionPoint, LifeCycleListener { - - private List<ServletHost> servletHosts = new ArrayList<ServletHost>(); - private boolean loaded; - - private ExtensionPointRegistry registry; - - public DefaultServletHostExtensionPoint(ExtensionPointRegistry registry) { - this.registry = registry; - } - - public void addServletHost(ServletHost servletHost) { - servletHosts.add(servletHost); - if (servletHost instanceof LifeCycleListener) { - ((LifeCycleListener)servletHost).start(); - } - } - - public void removeServletHost(ServletHost servletHost) { - servletHosts.remove(servletHost); - if (servletHost instanceof LifeCycleListener) { - ((LifeCycleListener)servletHost).stop(); - } - } - - public List<ServletHost> getServletHosts() { - loadServletHosts(); - return servletHosts; - } - - private synchronized void loadServletHosts() { - if (loaded) - return; - - // Get the databinding service declarations - Collection<ServiceDeclaration> sds; - try { - sds = ServiceDiscovery.getInstance().getServiceDeclarations(ServletHost.class, true); - } 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); - } - - loaded = true; - } - - /** - * A data binding facade allowing data bindings to be lazily loaded and - * initialized. - */ - public class LazyServletHost implements ServletHost, LifeCycleListener { - private ServiceDeclaration sd; - private ServletHost host; - - /** - * @param sd - */ - public LazyServletHost(ServiceDeclaration sd) { - super(); - this.sd = sd; - } - - public synchronized ServletHost getServletHost() { - if (host == null) { - try { - Class<?> cls = sd.loadClass(); - Constructor<?> ctor = null; - try { - ctor = cls.getConstructor(ExtensionPointRegistry.class); - host = (ServletHost)ctor.newInstance(registry); - } catch (NoSuchMethodException e) { - ctor = cls.getConstructor(); - host = (ServletHost)ctor.newInstance(); - } - if(host instanceof LifeCycleListener) { - ((LifeCycleListener) host).start(); - } - } catch (Throwable e) { - throw new IllegalStateException(e); - } - } - return host; - } - - public void addServletMapping(String uri, Servlet servlet) throws ServletMappingException { - getServletHost().addServletMapping(uri, servlet); - } - - public String getContextPath() { - return getServletHost().getContextPath(); - } - - public int getDefaultPort() { - return getServletHost().getDefaultPort(); - } - - public RequestDispatcher getRequestDispatcher(String uri) throws ServletMappingException { - return getServletHost().getRequestDispatcher(uri); - } - - public Servlet getServletMapping(String uri) throws ServletMappingException { - return getServletHost().getServletMapping(uri); - } - - public URL getURLMapping(String uri) { - return getServletHost().getURLMapping(uri); - } - - public Servlet removeServletMapping(String uri) throws ServletMappingException { - return getServletHost().removeServletMapping(uri); - } - - public void setAttribute(String name, Object value) { - getServletHost().setAttribute(name, value); - } - - public void setContextPath(String path) { - getServletHost().setContextPath(path); - } - - public void setDefaultPort(int port) { - getServletHost().setDefaultPort(port); - } - - public String getName() { - return sd.getAttributes().get("name"); - } - - public void start() { - } - - public void stop() { - if (host instanceof LifeCycleListener) { - ((LifeCycleListener)host).stop(); - } - } - } - - public void start() { - } - - public void stop() { - for (ServletHost host : servletHosts) { - if (host instanceof LifeCycleListener) { - ((LifeCycleListener)host).stop(); - } - } - servletHosts.clear(); - registry = null; - } -} diff --git a/branches/sca-java-2.0-M4/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/ExtensibleServletHost.java b/branches/sca-java-2.0-M4/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/ExtensibleServletHost.java deleted file mode 100644 index 4dfa1dd8a3..0000000000 --- a/branches/sca-java-2.0-M4/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/ExtensibleServletHost.java +++ /dev/null @@ -1,131 +0,0 @@ -/* - * 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 javax.servlet.RequestDispatcher; -import javax.servlet.Servlet; - -/** - * Default implementation of an extensible Servlet host. - * - * @version $Rev$ $Date$ - */ -public class ExtensibleServletHost implements ServletHost { - - private ServletHostExtensionPoint servletHosts; - - public ExtensibleServletHost(ServletHostExtensionPoint servletHosts) { - this.servletHosts = servletHosts; - } - - public void setDefaultPort(int port) { - if (servletHosts.getServletHosts().isEmpty()) { - throw new ServletMappingException("No servlet host available"); - } - - for (ServletHost servletHost: servletHosts.getServletHosts()) { - servletHost.setDefaultPort(port); - } - } - - private ServletHost getDefaultServletHost() { - return servletHosts.getServletHosts().get(0); - } - - public int getDefaultPort() { - if (servletHosts.getServletHosts().isEmpty()) { - throw new ServletMappingException("No servlet host available"); - } - - return getDefaultServletHost().getDefaultPort(); - } - - public void addServletMapping(String uri, Servlet servlet) throws ServletMappingException { - if (servletHosts.getServletHosts().isEmpty()) { - throw new ServletMappingException("No servlet host available"); - } - - // TODO implement selection of the correct Servlet host based on the mapping - // For now just select the first one - getDefaultServletHost().addServletMapping(uri, servlet); - } - - public Servlet getServletMapping(String uri) throws ServletMappingException { - if (servletHosts.getServletHosts().isEmpty()) { - throw new ServletMappingException("No servlet host available"); - } - - // TODO implement selection of the correct Servlet host based on the mapping - // For now just select the first one - return getDefaultServletHost().getServletMapping(uri); - } - - public Servlet removeServletMapping(String uri) throws ServletMappingException { - if (servletHosts.getServletHosts().isEmpty()) { - throw new ServletMappingException("No servlet host available"); - } - - // TODO implement selection of the correct Servlet host based on the mapping - // For now just select the first one - return getDefaultServletHost().removeServletMapping(uri); - } - - public RequestDispatcher getRequestDispatcher(String uri) throws ServletMappingException { - if (servletHosts.getServletHosts().isEmpty()) { - throw new ServletMappingException("No servlet host available"); - } - - // TODO implement selection of the correct Servlet host based on the mapping - // For now just select the first one - return getDefaultServletHost().getRequestDispatcher(uri); - } - - public String getContextPath() { - if (servletHosts.getServletHosts().isEmpty()) { - throw new ServletMappingException("No servlet host available"); - } - - // TODO implement selection of the correct Servlet host based on the mapping - // For now just select the first one - return getDefaultServletHost().getContextPath(); - } - - public URL getURLMapping(String uri) { - if (servletHosts.getServletHosts().isEmpty()) { - throw new ServletMappingException("No servlet host available"); - } - - return getDefaultServletHost().getURLMapping(uri); - } - - public void setContextPath(String path) { - getDefaultServletHost().setContextPath(path); - } - - public void setAttribute(String name, Object value) { - getDefaultServletHost().setAttribute(name, value); - } - - public String getName() { - return getDefaultServletHost().getName(); - } -} diff --git a/branches/sca-java-2.0-M4/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/ServletHost.java b/branches/sca-java-2.0-M4/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/ServletHost.java deleted file mode 100644 index dffc1e73d4..0000000000 --- a/branches/sca-java-2.0-M4/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/ServletHost.java +++ /dev/null @@ -1,120 +0,0 @@ -/* - * 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 javax.servlet.RequestDispatcher; -import javax.servlet.Servlet; - -/** - * Interface implemented by host environments that allow Servlets to be - * registered. - * <p/> - * This interface allows a system service to register a Servlet - * to handle inbound requests. - * - * @version $Rev$ $Date$ - */ -public interface ServletHost { - - /** - * Sets the default port for the server. - * - * @param port the default port - */ - void setDefaultPort(int port); - - /** - * Returns the default port for the server. - * - * @return the default port - */ - int getDefaultPort(); - - /** - * Add a mapping for an instance of a Servlet. This requests that the - * Servlet container direct all requests to the designated mapping to the - * supplied Servlet instance. - * - * @param uri the URI-mapping for the Servlet - * @param servlet the Servlet that should be invoked - * @throws ServletMappingException - */ - void addServletMapping(String uri, Servlet servlet) throws ServletMappingException; - - /** - * Remove a Servlet mapping. This directs the Servlet container not to direct - * any more requests to a previously registered Servlet. - * - * @param uri the URI-mapping for the Servlet - * @return the Servlet that was registered to the mapping, null if nothing - * was registered to the mapping - * @throws ServletMappingException - */ - Servlet removeServletMapping(String uri) throws ServletMappingException; - - /** - * Returns the Servlet mapped to the given URI. - * - * @param uri the URI-mapping for the Servlet - * @return the Servlet registered with the mapping - * @throws ServletMappingException - */ - Servlet getServletMapping(String uri) throws ServletMappingException; - - /** - * Returns a Servlet request dispatcher for the Servlet mapped to the specified URI. - * - * @param uri the URI mapped to a Servlet - * @return a RequestDispatcher that can be used to dispatch requests to - * that Servlet - * @throws ServletMappingException - */ - RequestDispatcher getRequestDispatcher(String uri) throws ServletMappingException; - - /** - * Returns the portion of the request URI that indicates the context of the request - * - * @return a String specifying the portion of the request URI that indicates the context of the request - */ - String getContextPath(); - - /** - * Sets the portion of the request URI that indicates the context of the request - * - * @param path the context path - */ - void setContextPath(String path); - - /** - * Returns the complete URL mapped to the specified URI. - * @return the URL mapped to the specified URI - */ - URL getURLMapping(String uri); - - /** - * Set an attribute in the application ServletContext - * @param name the name of the attribute - * @param value the attribute value - */ - void setAttribute(String name, Object value); - - String getName(); -} diff --git a/branches/sca-java-2.0-M4/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/ServletHostExtensionPoint.java b/branches/sca-java-2.0-M4/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/ServletHostExtensionPoint.java deleted file mode 100644 index fbd085ba2b..0000000000 --- a/branches/sca-java-2.0-M4/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/ServletHostExtensionPoint.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * 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.util.List; - -/** - * An extension point for Servlet hosts. - * - * @version $Rev$ $Date$ - */ -public interface ServletHostExtensionPoint { - - /** - * Adds a Servlet host extension. - * - * @param servletHost - */ - void addServletHost(ServletHost servletHost); - - /** - * Removes a Servlet host extension. - * - * @param servletHost - */ - void removeServletHost(ServletHost servletHost); - - /** - * Returns a list of Servlet host extensions. - * - * @return - */ - List<ServletHost> getServletHosts(); - -} diff --git a/branches/sca-java-2.0-M4/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/ServletMappingException.java b/branches/sca-java-2.0-M4/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/ServletMappingException.java deleted file mode 100644 index ae66c44c3e..0000000000 --- a/branches/sca-java-2.0-M4/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/ServletMappingException.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * 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; - -/** - * Indicates an exception while registering a Servlet mapping. - * - * @version $Rev$ $Date$ - */ -public class ServletMappingException extends RuntimeException { - private static final long serialVersionUID = 1L; - - public ServletMappingException() { - super(); - } - - public ServletMappingException(String message) { - super(message); - } - - public ServletMappingException(String message, Throwable cause) { - super(message, cause); - } - - public ServletMappingException(Throwable cause) { - super(cause); - } -} |