You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by an...@apache.org on 2008/08/12 13:11:43 UTC
svn commit: r685119 - in
/tuscany/java/sca/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web:
./ runtime/
Author: antelder
Date: Tue Aug 12 04:11:42 2008
New Revision: 685119
URL: http://svn.apache.org/viewvc?rev=685119&view=rev
Log:
Update to add and use the ComponentContext to the app context
Modified:
tuscany/java/sca/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/ComponentContextServlet.java
tuscany/java/sca/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/DefaultContextScriptProcessorExtensionPoint.java
tuscany/java/sca/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/runtime/WebImplementationProviderFactory.java
Modified: tuscany/java/sca/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/ComponentContextServlet.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/ComponentContextServlet.java?rev=685119&r1=685118&r2=685119&view=diff
==============================================================================
--- tuscany/java/sca/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/ComponentContextServlet.java (original)
+++ tuscany/java/sca/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/ComponentContextServlet.java Tue Aug 12 04:11:42 2008
@@ -23,8 +23,11 @@
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
+import java.util.HashMap;
+import java.util.Map;
import javax.servlet.ServletConfig;
+import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
@@ -45,10 +48,18 @@
protected static final String FOOTER = "/** --- Apache Tuscany componentContext.js EOF --- */\n";
public static final String COMPONENT_CONTEXT_SCRIPT_URI = "org.apache.tuscany.sca.componentContext.js";
+
+ protected transient Map<String, Object> attributes = new HashMap<String, Object>();
+ protected transient ServletContext servletContext;
@Override
public void init(ServletConfig servletConfig) throws ServletException {
-
+ this.servletContext = servletConfig.getServletContext();
+ if (attributes.size() > 0) {
+ for (String name : attributes.keySet()) {
+ servletContext.setAttribute(name, attributes.get(name));
+ }
+ }
}
@Override
@@ -103,4 +114,19 @@
// TODO: support properties
}
+ /**
+ * Set an attribute on the ServletContext
+ */
+ public void setAttribute(String name, Object value) {
+ if (servletContext != null) {
+ servletContext.setAttribute(name, value);
+ } else {
+ attributes.put(name, value);
+ }
+ }
+
+ public void addContextScriptProcessor(ContextScriptProcessor csp) {
+ // TODO Auto-generated method stub
+
+ }
}
Modified: tuscany/java/sca/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/DefaultContextScriptProcessorExtensionPoint.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/DefaultContextScriptProcessorExtensionPoint.java?rev=685119&r1=685118&r2=685119&view=diff
==============================================================================
--- tuscany/java/sca/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/DefaultContextScriptProcessorExtensionPoint.java (original)
+++ tuscany/java/sca/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/DefaultContextScriptProcessorExtensionPoint.java Tue Aug 12 04:11:42 2008
@@ -19,11 +19,33 @@
package org.apache.tuscany.sca.implementation.web;
+import java.util.ArrayList;
+import java.util.List;
+
public class DefaultContextScriptProcessorExtensionPoint implements ContextScriptProcessorExtensionPoint {
+ protected ComponentContextServlet componentContextServlet;
+ protected List<ContextScriptProcessor> tempCSPHolder = new ArrayList<ContextScriptProcessor>();
+
+ public DefaultContextScriptProcessorExtensionPoint() {
+ }
+
public void addContextScriptProcessor(ContextScriptProcessor csp) {
- WebSingleton.INSTANCE.addContextScriptProcessor(csp);
+ if (componentContextServlet != null) {
+ componentContextServlet.addContextScriptProcessor(csp);
+ } else {
+ tempCSPHolder.add(csp);
+ }
+ }
+
+ public void setComponentContextServlet(ComponentContextServlet servlet) {
+ componentContextServlet = servlet;
+ if (tempCSPHolder.size() > 0) {
+ for (ContextScriptProcessor csp : tempCSPHolder) {
+ componentContextServlet.addContextScriptProcessor(csp);
+ }
+ }
}
}
Modified: tuscany/java/sca/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/runtime/WebImplementationProviderFactory.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/runtime/WebImplementationProviderFactory.java?rev=685119&r1=685118&r2=685119&view=diff
==============================================================================
--- tuscany/java/sca/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/runtime/WebImplementationProviderFactory.java (original)
+++ tuscany/java/sca/modules/implementation-web-runtime/src/main/java/org/apache/tuscany/sca/implementation/web/runtime/WebImplementationProviderFactory.java Tue Aug 12 04:11:42 2008
@@ -18,8 +18,15 @@
*/
package org.apache.tuscany.sca.implementation.web.runtime;
+import java.util.List;
+
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.host.http.ServletHost;
+import org.apache.tuscany.sca.host.http.ServletHostExtensionPoint;
import org.apache.tuscany.sca.host.webapp.WebAppServletHost;
+import org.apache.tuscany.sca.implementation.web.ComponentContextServlet;
+import org.apache.tuscany.sca.implementation.web.ContextScriptProcessorExtensionPoint;
+import org.apache.tuscany.sca.implementation.web.DefaultContextScriptProcessorExtensionPoint;
import org.apache.tuscany.sca.implementation.web.WebImplementation;
import org.apache.tuscany.sca.interfacedef.Operation;
import org.apache.tuscany.sca.invocation.Invoker;
@@ -29,11 +36,26 @@
import org.apache.tuscany.sca.runtime.RuntimeComponentService;
public class WebImplementationProviderFactory implements ImplementationProviderFactory<WebImplementation> {
+ private ServletHost servletHost;
+ private ComponentContextServlet contextServlet;
+
public WebImplementationProviderFactory(ExtensionPointRegistry extensionPoints) {
+ ServletHostExtensionPoint servletHosts = extensionPoints.getExtensionPoint(ServletHostExtensionPoint.class);
+ List<ServletHost> hosts = servletHosts.getServletHosts();
+ if (!hosts.isEmpty()) {
+ this.servletHost = hosts.get(0);
+ }
+
+ contextServlet = new ComponentContextServlet();
+
+ DefaultContextScriptProcessorExtensionPoint dcspep = (DefaultContextScriptProcessorExtensionPoint)extensionPoints.getExtensionPoint(ContextScriptProcessorExtensionPoint.class);
+ dcspep.setComponentContextServlet(contextServlet);
}
public ImplementationProvider createImplementationProvider(RuntimeComponent component, WebImplementation implementation) {
+ servletHost.addServletMapping("org.osoa.sca.componentContext.js", contextServlet);
+ contextServlet.setAttribute("org.osoa.sca.ComponentContext", new ComponentContextProxy(component));
WebAppServletHost.getInstance().setAttribute("org.osoa.sca.ComponentContext", new ComponentContextProxy(component));
return new ImplementationProvider() {