summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/branches/sca-java-2.0-M5/modules/implementation-widget
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--sca-java-2.x/branches/sca-java-2.0-M5/modules/implementation-widget-runtime/META-INF/MANIFEST.MF1
-rw-r--r--sca-java-2.x/branches/sca-java-2.0-M5/modules/implementation-widget-runtime/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProvider.java17
-rw-r--r--sca-java-2.x/branches/sca-java-2.0-M5/modules/implementation-widget-runtime/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProviderFactory.java19
-rw-r--r--sca-java-2.x/branches/sca-java-2.0-M5/modules/implementation-widget/META-INF/MANIFEST.MF3
-rw-r--r--sca-java-2.x/branches/sca-java-2.0-M5/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/javascript/WidgetImplementationJavascriptProvider.java34
5 files changed, 65 insertions, 9 deletions
diff --git a/sca-java-2.x/branches/sca-java-2.0-M5/modules/implementation-widget-runtime/META-INF/MANIFEST.MF b/sca-java-2.x/branches/sca-java-2.0-M5/modules/implementation-widget-runtime/META-INF/MANIFEST.MF
index 54fc5e918d..fd792c336f 100644
--- a/sca-java-2.x/branches/sca-java-2.0-M5/modules/implementation-widget-runtime/META-INF/MANIFEST.MF
+++ b/sca-java-2.x/branches/sca-java-2.0-M5/modules/implementation-widget-runtime/META-INF/MANIFEST.MF
@@ -19,6 +19,7 @@ Import-Package: javax.servlet,
org.apache.tuscany.sca.core;version="2.0.0",
org.apache.tuscany.sca.host.http;version="2.0.0",
org.apache.tuscany.sca.implementation.widget;version="2.0.0",
+ org.apache.tuscany.sca.implementation.widget.javascript;version="2.0.0",
org.apache.tuscany.sca.implementation.widget.provider;version="2.0.0",
org.apache.tuscany.sca.interfacedef;version="2.0.0",
org.apache.tuscany.sca.invocation;version="2.0.0",
diff --git a/sca-java-2.x/branches/sca-java-2.0-M5/modules/implementation-widget-runtime/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProvider.java b/sca-java-2.x/branches/sca-java-2.0-M5/modules/implementation-widget-runtime/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProvider.java
index 96b1561d5c..28f041b919 100644
--- a/sca-java-2.x/branches/sca-java-2.0-M5/modules/implementation-widget-runtime/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProvider.java
+++ b/sca-java-2.x/branches/sca-java-2.0-M5/modules/implementation-widget-runtime/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProvider.java
@@ -28,6 +28,7 @@ import org.apache.tuscany.sca.assembly.Binding;
import org.apache.tuscany.sca.assembly.ComponentService;
import org.apache.tuscany.sca.host.http.ServletHost;
import org.apache.tuscany.sca.implementation.widget.WidgetImplementation;
+import org.apache.tuscany.sca.implementation.widget.javascript.WidgetImplementationJavascriptProvider;
import org.apache.tuscany.sca.interfacedef.Operation;
import org.apache.tuscany.sca.invocation.Invoker;
import org.apache.tuscany.sca.provider.ImplementationProvider;
@@ -46,6 +47,7 @@ class WidgetImplementationProvider implements ImplementationProvider {
private RuntimeComponent component;
+ private WidgetImplementationJavascriptProvider javascriptProvider;
private ComponentJavaScriptGenerator javaScriptGenerator;
private ServletHost servletHost;
@@ -59,9 +61,11 @@ class WidgetImplementationProvider implements ImplementationProvider {
* Constructs a new resource implementation provider.
*/
WidgetImplementationProvider(RuntimeComponent component,
- WidgetImplementation implementation,
+ WidgetImplementation implementation,
+ WidgetImplementationJavascriptProvider javascriptProvider,
ComponentJavaScriptGenerator javaScriptGenerator,
ServletHost servletHost) {
+
this.component = component;
this.javaScriptGenerator = javaScriptGenerator;
@@ -86,7 +90,6 @@ class WidgetImplementationProvider implements ImplementationProvider {
public void start() {
String baseURI = getBaseURI();
- // get the ScaDomainScriptServlet, if it doesn't yet exist create one
// this uses removeServletMapping / addServletMapping as there is no getServletMapping facility
scriptURI = URI.create(baseURI + "/" + this.widgetName + ".js").toString();
Servlet servlet = servletHost.getServletMapping(scriptURI);
@@ -95,6 +98,12 @@ class WidgetImplementationProvider implements ImplementationProvider {
widgetScriptServlet = new WidgetComponentScriptServlet(this.component, javaScriptGenerator);
servletHost.addServletMapping(scriptURI, widgetScriptServlet);
}
+
+ // If added to the class path, start dojo provider
+ if(javascriptProvider != null) {
+ javascriptProvider.start();
+ }
+
}
public void stop() {
@@ -104,6 +113,10 @@ class WidgetImplementationProvider implements ImplementationProvider {
// Remove the Servlet mapping
servletHost.removeServletMapping(scriptURI);
}
+
+ if(javascriptProvider != null) {
+ javascriptProvider.stop();
+ }
}
diff --git a/sca-java-2.x/branches/sca-java-2.0-M5/modules/implementation-widget-runtime/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProviderFactory.java b/sca-java-2.x/branches/sca-java-2.0-M5/modules/implementation-widget-runtime/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProviderFactory.java
index dddc0a41ed..9c140f0913 100644
--- a/sca-java-2.x/branches/sca-java-2.0-M5/modules/implementation-widget-runtime/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProviderFactory.java
+++ b/sca-java-2.x/branches/sca-java-2.0-M5/modules/implementation-widget-runtime/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProviderFactory.java
@@ -19,9 +19,11 @@
package org.apache.tuscany.sca.implementation.widget.provider;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.core.UtilityExtensionPoint;
import org.apache.tuscany.sca.host.http.ServletHost;
import org.apache.tuscany.sca.host.http.ServletHostHelper;
import org.apache.tuscany.sca.implementation.widget.WidgetImplementation;
+import org.apache.tuscany.sca.implementation.widget.javascript.WidgetImplementationJavascriptProvider;
import org.apache.tuscany.sca.provider.ImplementationProvider;
import org.apache.tuscany.sca.provider.ImplementationProviderFactory;
import org.apache.tuscany.sca.runtime.RuntimeComponent;
@@ -35,21 +37,26 @@ import org.apache.tuscany.sca.web.javascript.ComponentJavaScriptGeneratorExtensi
*/
public class WidgetImplementationProviderFactory implements ImplementationProviderFactory<WidgetImplementation> {
private ServletHost servletHost;
- private ComponentJavaScriptGenerator javaScriptGenerator;
+
+ private WidgetImplementationJavascriptProvider javascriptProvider;
+ private ComponentJavaScriptGenerator javascriptGenerator;
/**
* Constructs a resource implementation.
*/
- public WidgetImplementationProviderFactory(ExtensionPointRegistry extensionPoints) {
- this.servletHost = ServletHostHelper.getServletHost(extensionPoints);
+ public WidgetImplementationProviderFactory(ExtensionPointRegistry registry) {
+ this.servletHost = ServletHostHelper.getServletHost(registry);
+
+ UtilityExtensionPoint utilities = registry.getExtensionPoint(UtilityExtensionPoint.class);
+ javascriptProvider = utilities.getUtility(WidgetImplementationJavascriptProvider.class);
- ComponentJavaScriptGeneratorExtensionPoint javascriptGeneratorExtensionPoint = extensionPoints.getExtensionPoint(ComponentJavaScriptGeneratorExtensionPoint.class);
- javaScriptGenerator = javascriptGeneratorExtensionPoint.getComponentJavaScriptGenerators().get(0);
+ ComponentJavaScriptGeneratorExtensionPoint javascriptGeneratorExtensionPoint = registry.getExtensionPoint(ComponentJavaScriptGeneratorExtensionPoint.class);
+ javascriptGenerator = javascriptGeneratorExtensionPoint.getComponentJavaScriptGenerators().get(0);
}
public ImplementationProvider createImplementationProvider(RuntimeComponent component, WidgetImplementation implementation) {
- return new WidgetImplementationProvider(component, implementation, javaScriptGenerator, servletHost);
+ return new WidgetImplementationProvider(component, implementation, javascriptProvider, javascriptGenerator, servletHost);
}
public Class<WidgetImplementation> getModelType() {
diff --git a/sca-java-2.x/branches/sca-java-2.0-M5/modules/implementation-widget/META-INF/MANIFEST.MF b/sca-java-2.x/branches/sca-java-2.0-M5/modules/implementation-widget/META-INF/MANIFEST.MF
index 84a8c8380a..fcc1ede5d2 100644
--- a/sca-java-2.x/branches/sca-java-2.0-M5/modules/implementation-widget/META-INF/MANIFEST.MF
+++ b/sca-java-2.x/branches/sca-java-2.0-M5/modules/implementation-widget/META-INF/MANIFEST.MF
@@ -6,7 +6,8 @@ Export-Package: org.apache.tuscany.sca.implementation.widget;version="2.0.0";
org.apache.tuscany.sca.contribution.resolver,
org.apache.tuscany.sca.contribution.processor,
org.apache.tuscany.sca.core,
- javax.xml.namespace"
+ javax.xml.namespace",
+ org.apache.tuscany.sca.implementation.widget.javascript;version="2.0.0"
SCA-Version: 1.1
Bundle-Name: Apache Tuscany SCA Widget Implementation Model
Bundle-Vendor: The Apache Software Foundation
diff --git a/sca-java-2.x/branches/sca-java-2.0-M5/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/javascript/WidgetImplementationJavascriptProvider.java b/sca-java-2.x/branches/sca-java-2.0-M5/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/javascript/WidgetImplementationJavascriptProvider.java
new file mode 100644
index 0000000000..55cf7dbf0e
--- /dev/null
+++ b/sca-java-2.x/branches/sca-java-2.0-M5/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/javascript/WidgetImplementationJavascriptProvider.java
@@ -0,0 +1,34 @@
+/*
+ * 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.implementation.widget.javascript;
+
+import org.apache.tuscany.sca.core.ModuleActivator;
+
+
+/**
+ * A widget javascript provider which
+ * provides dojo and tuscany dojo extensions
+ * to an application using implementation.widget
+ *
+ * @version $Rev$ $Date$
+ */
+public interface WidgetImplementationJavascriptProvider extends ModuleActivator {
+
+}