Author: antelder
Date: Fri Nov 30 01:48:31 2007
New Revision: 599758
URL: http://svn.apache.org/viewvc?rev=599758&view=rev
Log:
Simplify by reusing code in host-webapp
Added:
incubator/tuscany/java/sca/modules/runtime-tomcat/src/main/java/org/apache/tuscany/sca/runtime/tomcat/TuscanyServlet.java
(with props)
Removed:
incubator/tuscany/java/sca/modules/runtime-tomcat/src/main/java/org/apache/tuscany/sca/runtime/tomcat/TomcatModuleActivator.java
incubator/tuscany/java/sca/modules/runtime-tomcat/src/main/java/org/apache/tuscany/sca/runtime/tomcat/TomcatServletHost.java
incubator/tuscany/java/sca/modules/runtime-tomcat/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator
Modified:
incubator/tuscany/java/sca/modules/runtime-tomcat/pom.xml
incubator/tuscany/java/sca/modules/runtime-tomcat/src/main/java/org/apache/tuscany/sca/runtime/tomcat/TuscanyHost.java
Modified: incubator/tuscany/java/sca/modules/runtime-tomcat/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/runtime-tomcat/pom.xml?rev=599758&r1=599757&r2=599758&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/runtime-tomcat/pom.xml (original)
+++ incubator/tuscany/java/sca/modules/runtime-tomcat/pom.xml Fri Nov 30
01:48:31 2007
@@ -78,5 +78,11 @@
<version>1.1-incubating-SNAPSHOT</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-host-webapp</artifactId>
+ <version>1.1-incubating-SNAPSHOT</version>
+ </dependency>
+
</dependencies>
</project>
Modified:
incubator/tuscany/java/sca/modules/runtime-tomcat/src/main/java/org/apache/tuscany/sca/runtime/tomcat/TuscanyHost.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/runtime-tomcat/src/main/java/org/apache/tuscany/sca/runtime/tomcat/TuscanyHost.java?rev=599758&r1=599757&r2=599758&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/runtime-tomcat/src/main/java/org/apache/tuscany/sca/runtime/tomcat/TuscanyHost.java
(original)
+++
incubator/tuscany/java/sca/modules/runtime-tomcat/src/main/java/org/apache/tuscany/sca/runtime/tomcat/TuscanyHost.java
Fri Nov 30 01:48:31 2007
@@ -20,17 +20,15 @@
package org.apache.tuscany.sca.runtime.tomcat;
import java.io.File;
-import java.io.IOException;
-import java.io.PrintWriter;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Map;
-import javax.servlet.Servlet;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletContext;
import org.apache.catalina.Container;
-import org.apache.catalina.Context;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.Wrapper;
import org.apache.catalina.core.StandardContext;
@@ -55,6 +53,8 @@
private static final String REPO = "../sca-contributions";
protected Launcher launcher;
+
+ private String contextPath = "/tuscany";
public synchronized void start() throws LifecycleException {
startRuntime();
@@ -69,8 +69,6 @@
private void startRuntime() {
System.out.println("XXXXXXXX TomcatHost.startRuntime");
- TomcatServletHost.getInstance().setTuscanyHost(this);
-
addTuscany();
launcher = new Launcher(new File(REPO));
@@ -84,41 +82,18 @@
private void addTuscany() {
StandardContext tc = new TuscanyContext();
- tc.setPath("/tuscany");
+ tc.setPath(contextPath);
tc.setDocBase("tuscany");
super.addChild(tc);
- }
-
- public void registerMapping(String mapping, Servlet servlet) {
- Context ctx = map(mapping);
- if (ctx == null) {
- throw new UnsupportedOperationException("Cannot find context for
mapping " + mapping);
- }
- String contextPath = ctx.getPath();
-
- mapping = mapping.substring(contextPath.length());
- Wrapper wrapper = new TuscanyWrapper(servlet);
- wrapper.setName(mapping);
- ctx.addChild(wrapper);
- wrapper.addMapping(mapping);
- ctx.getMapper().addWrapper(mapping, wrapper, false);
- }
-
- public Servlet unregisterMapping(String mapping) {
- Context ctx = map(mapping);
- if (ctx == null) {
- throw new UnsupportedOperationException("Cannot find context for
mapping " + mapping);
- }
- String contextPath = ctx.getPath();
-
- mapping = mapping.substring(contextPath.length());
- TuscanyWrapper wrapper = (TuscanyWrapper) ctx.findChild(mapping);
- ctx.getMapper().removeWrapper(mapping);
- ctx.removeChild(wrapper);
-
- return wrapper.getServlet();
+ TuscanyServlet s = new TuscanyServlet();
+ s.init(new MockServletConfig(contextPath));
+ Wrapper wrapper = new TuscanyWrapper(s);
+ wrapper.setName("TuscanyServlet");
+ tc.addChild(wrapper);
+ tc.addServletMapping("/*", "TuscanyServlet", true);
}
+
private void stopRuntime() {
System.out.println("XXXXXXXX TomcatHost.stopRuntime");
if (launcher != null) {
@@ -138,12 +113,30 @@
}
-class TestServlet extends HttpServlet {
- public void doGet(HttpServletRequest request,
- HttpServletResponse response)
- throws ServletException, IOException {
- PrintWriter out = response.getWriter();
- out.println("hi!");
+class MockServletConfig implements ServletConfig {
+
+ Map<String, String> initParams;
+
+ public MockServletConfig(String contextPath) {
+ initParams = new HashMap<String, String>();
+ initParams.put("contextPath", contextPath);
+ }
+
+ public String getInitParameter(String initParam) {
+ return initParams.get(initParam);
+ }
+
+ @SuppressWarnings("unchecked")
+ public Enumeration getInitParameterNames() {
+ return Collections.enumeration(initParams.keySet());
+ }
+
+ public ServletContext getServletContext() {
+ return null;
+ }
+
+ public String getServletName() {
+ return null;
}
}
Added:
incubator/tuscany/java/sca/modules/runtime-tomcat/src/main/java/org/apache/tuscany/sca/runtime/tomcat/TuscanyServlet.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/runtime-tomcat/src/main/java/org/apache/tuscany/sca/runtime/tomcat/TuscanyServlet.java?rev=599758&view=auto
==============================================================================
---
incubator/tuscany/java/sca/modules/runtime-tomcat/src/main/java/org/apache/tuscany/sca/runtime/tomcat/TuscanyServlet.java
(added)
+++
incubator/tuscany/java/sca/modules/runtime-tomcat/src/main/java/org/apache/tuscany/sca/runtime/tomcat/TuscanyServlet.java
Fri Nov 30 01:48:31 2007
@@ -0,0 +1,63 @@
+/*
+ * 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.runtime.tomcat;
+
+import java.io.IOException;
+
+import javax.servlet.RequestDispatcher;
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.tuscany.sca.host.webapp.WebAppServletHost;
+
+/**
+ * A servlet that forwards requests to the servlets registered with the Tuscany
+ * ServletHost.
+ *
+ * TODO: Copy of host-webapp TuscanyServlet. Can be removed once host-webapp
TuscanyServlet
+ * moved over to latest SCADomain API.
+ */
+public class TuscanyServlet extends HttpServlet {
+ private static final long serialVersionUID = 1L;
+
+ private transient WebAppServletHost servletHost;
+
+ @Override
+ public void init(ServletConfig config) {
+ servletHost = WebAppServletHost.getInstance();
+ servletHost.initContextPath(config);
+ }
+
+ @Override
+ public void service(ServletRequest req, ServletResponse res) throws
ServletException, IOException {
+ String path = ((HttpServletRequest)req).getPathInfo();
+ RequestDispatcher dispatcher = servletHost.getRequestDispatcher(path);
+ if (dispatcher == null) {
+ throw new IllegalStateException("No servlet registered for path: "
+ path);
+ }
+
+ dispatcher.forward(req, res);
+ }
+
+}
Propchange:
incubator/tuscany/java/sca/modules/runtime-tomcat/src/main/java/org/apache/tuscany/sca/runtime/tomcat/TuscanyServlet.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/tuscany/java/sca/modules/runtime-tomcat/src/main/java/org/apache/tuscany/sca/runtime/tomcat/TuscanyServlet.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]