summaryrefslogtreecommitdiffstats
path: root/branches/sca-java-1.2/modules/implementation-widget/src/main/java/org
diff options
context:
space:
mode:
Diffstat (limited to 'branches/sca-java-1.2/modules/implementation-widget/src/main/java/org')
-rw-r--r--branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/Widget.java34
-rw-r--r--branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementation.java129
-rw-r--r--branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationFactory.java45
-rw-r--r--branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationIntrospector.java140
-rw-r--r--branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationProcessor.java128
-rw-r--r--branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationInvoker.java238
-rw-r--r--branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProvider.java65
-rw-r--r--branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProviderFactory.java45
-rw-r--r--branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetProxyHelper.java44
9 files changed, 0 insertions, 868 deletions
diff --git a/branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/Widget.java b/branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/Widget.java
deleted file mode 100644
index 204ac24caf..0000000000
--- a/branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/Widget.java
+++ /dev/null
@@ -1,34 +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.implementation.widget;
-
-import java.io.InputStream;
-
-import org.apache.tuscany.sca.implementation.data.collection.Collection;
-
-/**
- * The service interface of widget implementations. This is not an API for application
- * developers. Application developers should use the data collection API to invoke
- * widget components.
- *
- * @version $Rev$ $Date$
- */
-public interface Widget extends Collection<String, InputStream> {
-}
diff --git a/branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementation.java b/branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementation.java
deleted file mode 100644
index 7bb852ae0c..0000000000
--- a/branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementation.java
+++ /dev/null
@@ -1,129 +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.implementation.widget;
-
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.tuscany.sca.assembly.AssemblyFactory;
-import org.apache.tuscany.sca.assembly.ConstrainingType;
-import org.apache.tuscany.sca.assembly.Implementation;
-import org.apache.tuscany.sca.assembly.Property;
-import org.apache.tuscany.sca.assembly.Reference;
-import org.apache.tuscany.sca.assembly.Service;
-import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceContract;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
-
-
-/**
- * The model representing a widget implementation in an SCA assembly model.
- *
- * @version $Rev$ $Date$
- */
-public class WidgetImplementation implements Implementation {
- private Service widgetService;
- private List<Reference> references = new ArrayList<Reference>();
- private List<Property> properties = new ArrayList<Property>();
-
- private String location;
- private URL url;
- private boolean unresolved;
-
- /**
- * Constructs a new resource implementation.
- */
- WidgetImplementation(AssemblyFactory assemblyFactory,
- JavaInterfaceFactory javaFactory) {
-
- // Resource implementation always provide a single service exposing
- // the Resource interface, and have no references and properties
- widgetService = assemblyFactory.createService();
- widgetService.setName("Widget");
-
- // Create the Java interface contract for the Resource service
- JavaInterface javaInterface;
- try {
- javaInterface = javaFactory.createJavaInterface(Widget.class);
- } catch (InvalidInterfaceException e) {
- throw new IllegalArgumentException(e);
- }
- JavaInterfaceContract interfaceContract = javaFactory.createJavaInterfaceContract();
- interfaceContract.setInterface(javaInterface);
- widgetService.setInterfaceContract(interfaceContract);
- }
-
- public String getLocation() {
- return location;
- }
-
- public void setLocation(String location) {
- this.location = location;
- }
-
- public URL getLocationURL() {
- return url;
- }
-
- public void setLocationURL(URL url) {
- this.url = url;
- }
-
- public ConstrainingType getConstrainingType() {
- // The resource implementation does not support constrainingTypes
- return null;
- }
-
- public List<Property> getProperties() {
- return properties;
- }
-
- public List<Service> getServices() {
- // The resource implementation does not support services
- return Collections.singletonList(widgetService);
- }
-
- public List<Reference> getReferences() {
- return references;
- }
-
- public String getURI() {
- return location;
- }
-
- public void setConstrainingType(ConstrainingType constrainingType) {
- // The resource implementation does not support constrainingTypes
- }
-
- public void setURI(String uri) {
- this.location = uri;
- }
-
-
- public boolean isUnresolved() {
- return unresolved;
- }
-
- public void setUnresolved(boolean unresolved) {
- this.unresolved = unresolved;
- }
-}
diff --git a/branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationFactory.java b/branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationFactory.java
deleted file mode 100644
index 2493b97f5c..0000000000
--- a/branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationFactory.java
+++ /dev/null
@@ -1,45 +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.implementation.widget;
-
-import org.apache.tuscany.sca.assembly.AssemblyFactory;
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
-
-/**
- * Factory for the widget implementation model.
- *
- * @version $Rev$ $Date$
- */
-public class WidgetImplementationFactory {
-
- private AssemblyFactory assemblyFactory;
- private JavaInterfaceFactory javaFactory;
-
- public WidgetImplementationFactory(ModelFactoryExtensionPoint modelFactories) {
- assemblyFactory = modelFactories.getFactory(AssemblyFactory.class);
- javaFactory = modelFactories.getFactory(JavaInterfaceFactory.class);
- }
-
- public WidgetImplementation createWidgetImplementation() {
- return new WidgetImplementation(assemblyFactory, javaFactory);
- }
-
-}
diff --git a/branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationIntrospector.java b/branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationIntrospector.java
deleted file mode 100644
index 2b946ff3ec..0000000000
--- a/branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationIntrospector.java
+++ /dev/null
@@ -1,140 +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.implementation.widget;
-
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.Scanner;
-
-import org.apache.tuscany.sca.assembly.AssemblyFactory;
-import org.apache.tuscany.sca.assembly.Property;
-import org.apache.tuscany.sca.assembly.Reference;
-
-
-class WidgetImplementationIntrospector {
- private static final String WEB_REFERENCE_ANNOTATION = "//@Reference";
- private static final String WEB_PROPERTY_ANNOTATION = "//@Property";
-
- private AssemblyFactory assemblyFactory;
- private WidgetImplementation widgetImplementation;
-
- WidgetImplementationIntrospector(AssemblyFactory assemblyFactory, WidgetImplementation widgetImplementation) {
- this.widgetImplementation = widgetImplementation;
- this.assemblyFactory = assemblyFactory;
- }
-
-
- /**
- * Introspect and populate a given widget implementation
- */
- public void introspectImplementation() {
- URL htmlWidget = widgetImplementation.getLocationURL();
-
- try {
- URLConnection connection = htmlWidget.openConnection();
- connection.setUseCaches(false);
- Scanner scanner = new Scanner(connection.getInputStream());
- while(scanner.hasNextLine()) {
- String line = scanner.nextLine();
- if(line.contains(WEB_PROPERTY_ANNOTATION)) {
- //process the next line, as it has the property info
- if (scanner.hasNextLine()) {
- Property property = processPropertyScript(scanner.nextLine());
- if (property != null) {
- widgetImplementation.getProperties().add(property);
- }
- }
-
- } else if(line.contains(WEB_REFERENCE_ANNOTATION)) {
- //process the next line, as it has the reference info
- if (scanner.hasNextLine()) {
- Reference reference = processReferenceScript(scanner.nextLine());
- if(reference != null){
- widgetImplementation.getReferences().add(reference);
- }
-
- }
- }
- }
-
- } catch(Exception e) {
-
- }
-
-
- }
-
-
- /**
- * Process Property declaration in JavaScript code
- * Supported ways:
- * //@Property
- * var locale = Property("locale");
- *
- * //@Property
- * locale = Property("locale");
- *
- * @param scriptContent
- * @return
- */
- private Property processPropertyScript(String scriptContent) {
- Property property = null;
- String propertyName = null;
-
- String tokens[] = scriptContent.split("=");
- tokens = tokens[0].split(" ");
- propertyName = tokens[tokens.length -1];
-
- if(propertyName != null) {
- property = assemblyFactory.createProperty();
- property.setName(propertyName);
- }
-
- return property;
- }
-
- /**
- * Process Reference declaration in JavaScript code
- * Supported ways :
- * //@Reference
- * var catalog = new Reference("catalog");
- *
- * //@Reference
- * catalog = new Reference("catalog");
- *
- * @param scriptContent
- * @return
- */
- private Reference processReferenceScript(String scriptContent) {
- Reference reference = null;
- String referenceName = null;
-
- String tokens[] = scriptContent.split("=");
- tokens = tokens[0].split(" ");
- referenceName = tokens[tokens.length -1];
-
- if(referenceName != null) {
- reference = assemblyFactory.createReference();
- reference.setName(referenceName);
- }
-
- return reference;
- }
-}
diff --git a/branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationProcessor.java b/branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationProcessor.java
deleted file mode 100644
index 5c442c1b37..0000000000
--- a/branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationProcessor.java
+++ /dev/null
@@ -1,128 +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.implementation.widget;
-
-import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
-
-import java.io.IOException;
-import java.net.URL;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import javax.xml.stream.XMLStreamWriter;
-
-import org.apache.tuscany.sca.assembly.AssemblyFactory;
-import org.apache.tuscany.sca.assembly.xml.Constants;
-import org.apache.tuscany.sca.contribution.Artifact;
-import org.apache.tuscany.sca.contribution.ContributionFactory;
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.contribution.service.ContributionReadException;
-import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
-import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
-
-
-/**
- * Implements a STAX artifact processor for Widget implementations.
- *
- * @version $Rev$ $Date$
- */
-public class WidgetImplementationProcessor implements StAXArtifactProcessor<WidgetImplementation> {
- private static final QName IMPLEMENTATION_WIDGET = new QName(Constants.SCA10_TUSCANY_NS, "implementation.widget");
-
- private AssemblyFactory assemblyFactory;
- private ContributionFactory contributionFactory;
- private WidgetImplementationFactory implementationFactory;
-
- public WidgetImplementationProcessor(ModelFactoryExtensionPoint modelFactories) {
- assemblyFactory = modelFactories.getFactory(AssemblyFactory.class);
- contributionFactory = modelFactories.getFactory(ContributionFactory.class);
- implementationFactory = new WidgetImplementationFactory(modelFactories);
- }
-
- public QName getArtifactType() {
- // Returns the qname of the XML element processed by this processor
- return IMPLEMENTATION_WIDGET;
- }
-
- public Class<WidgetImplementation> getModelType() {
- // Returns the type of model processed by this processor
- return WidgetImplementation.class;
- }
-
- public WidgetImplementation read(XMLStreamReader reader) throws ContributionReadException, XMLStreamException {
-
- // Read an <implementation.widget> element
-
- // Read the location attribute specifying the location of the resources
- String location = reader.getAttributeValue(null, "location");
-
- // Create an initialize the resource implementation model
- WidgetImplementation implementation = implementationFactory.createWidgetImplementation();
- implementation.setLocation(location);
- implementation.setUnresolved(true);
-
- // Skip to end element
- while (reader.hasNext()) {
- if (reader.next() == END_ELEMENT && IMPLEMENTATION_WIDGET.equals(reader.getName())) {
- break;
- }
- }
-
- return implementation;
- }
-
- public void resolve(WidgetImplementation implementation, ModelResolver resolver) throws ContributionResolveException {
-
- // Resolve the resource directory location
- Artifact artifact = contributionFactory.createArtifact();
- artifact.setURI(implementation.getLocation());
- Artifact resolved = resolver.resolveModel(Artifact.class, artifact);
- if (resolved.getLocation() != null) {
- try {
- implementation.setLocationURL(new URL(resolved.getLocation()));
- implementation.setUnresolved(false);
-
- //introspect implementation
- WidgetImplementationIntrospector widgetIntrospector = new WidgetImplementationIntrospector(assemblyFactory, implementation);
- widgetIntrospector.introspectImplementation();
-
- } catch (IOException e) {
- throw new ContributionResolveException(e);
- }
- }
- }
-
- public void write(WidgetImplementation implementation, XMLStreamWriter writer) throws ContributionWriteException, XMLStreamException {
-
- // Write <implementation.widget>
- writer.setPrefix("widget",IMPLEMENTATION_WIDGET.getNamespaceURI());
- writer.writeStartElement(IMPLEMENTATION_WIDGET.getNamespaceURI(), IMPLEMENTATION_WIDGET.getLocalPart());
- writer.writeNamespace("widget",IMPLEMENTATION_WIDGET.getNamespaceURI());
-
-
- if (implementation.getLocation() != null) {
- writer.writeAttribute("location", implementation.getLocation());
- }
-
- writer.writeEndElement();
- }
-}
diff --git a/branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationInvoker.java b/branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationInvoker.java
deleted file mode 100644
index 35a0325e3f..0000000000
--- a/branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationInvoker.java
+++ /dev/null
@@ -1,238 +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.implementation.widget.provider;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.PrintWriter;
-import java.net.MalformedURLException;
-import java.net.URI;
-import java.net.URL;
-
-import org.apache.tuscany.sca.assembly.Binding;
-import org.apache.tuscany.sca.assembly.ComponentProperty;
-import org.apache.tuscany.sca.assembly.ComponentReference;
-import org.apache.tuscany.sca.assembly.OptimizableBinding;
-import org.apache.tuscany.sca.invocation.Invoker;
-import org.apache.tuscany.sca.invocation.Message;
-import org.apache.tuscany.sca.runtime.RuntimeComponent;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-
-/**
- * Implements an invoker for resource component implementations.
- */
-class WidgetImplementationInvoker implements Invoker {
- private RuntimeComponent component;
- private String widgetName;
- private String widgetFolderURL;
- private String widgetLocationURL;
-
- WidgetImplementationInvoker(RuntimeComponent component, String widgetName, String widgetFolderURL, String widgetLocationURL) {
- this.component = component;
- this.widgetName = widgetName + ".js";
- this.widgetFolderURL = widgetFolderURL;
- this.widgetLocationURL = widgetLocationURL;
- }
-
- public Message invoke(Message msg) {
-
- // Get the resource id from the request message
- String id = (String)((Object[])msg.getBody())[0];
- try {
-
- if (id.length() == 0) {
-
- // Return an input stream for the widget resource
- URL url = new URL(widgetLocationURL);
- InputStream is = url.openStream();
- msg.setBody(is);
-
- } else if (id.equals(widgetName)) {
-
- // Generate Javascript header for use in the Widget
- InputStream is = generateWidgetCode();
- msg.setBody(is);
-
- } else {
-
- // Return an input stream for a resource inside the
- // widget folder
- URL url = new URL(widgetFolderURL +'/' + id);
- InputStream is = url.openStream();
- msg.setBody(is);
- }
- } catch (MalformedURLException e) {
-
- // Report exception as a fault
- msg.setFaultBody(e);
- } catch (IOException e) {
-
- // Report exception as a fault
- msg.setFaultBody(e);
- }
- return msg;
- }
-
- /**
- * This helper class concatenates the necessary javascript client code into a
- * single javascript per component
- */
- private InputStream generateWidgetCode() throws IOException {
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- PrintWriter pw = new PrintWriter(bos);
-
- pw.println();
- pw.println("/* Apache Tuscany SCA Widget header */");
- pw.println();
-
- for(ComponentReference reference : component.getReferences()) {
- for(Binding binding : reference.getBindings()) {
- String bindingProxyName = WidgetProxyHelper.getJavaScriptProxyFile(binding.getClass().getName());
- if(bindingProxyName != null) {
- generateJavaScriptBindingProxy(pw,bindingProxyName);
- }
- }
- }
-
- //process properties
- generateJavaScriptPropertyFunction(pw);
-
- //process references
- generateJavaScriptReferenceFunction(pw);
-
-
- pw.println();
- pw.println("/** End of Apache Tuscany SCA Widget */");
- pw.println();
- pw.flush();
- pw.close();
-
- return new ByteArrayInputStream(bos.toByteArray());
- }
-
- /**
- * Retrieve the binding proxy based on the bind name
- * and embedded the javascript into this js
- */
- private void generateJavaScriptBindingProxy(PrintWriter pw, String bindingProxyName) throws IOException {
- //FIXME: Handle the case where the javascript binding client is not found
- InputStream is = getClass().getClassLoader().getResourceAsStream(bindingProxyName);
- if (is != null) {
- int i;
- while ((i = is.read()) != -1) {
- pw.write(i);
- }
- }
-
- pw.println();
- pw.println();
- }
-
- /**
- * Generate JavaScript code to inject SCA Properties
- * @param pw
- * @throws IOException
- */
- private void generateJavaScriptPropertyFunction(PrintWriter pw) throws IOException {
-
- pw.println("var propertyMap = new String();");
- for(ComponentProperty property : component.getProperties()) {
- String propertyName = property.getName();
-
- pw.println("propertyMap." + propertyName + " = \"" + getPropertyValue(property) + "\"");
- }
-
- pw.println("function Property(name) {");
- pw.println(" return propertyMap[name];");
- pw.println("}");
- }
-
- /**
- * Convert property value to String
- * @param property
- * @return
- */
- private String getPropertyValue(ComponentProperty property) {
- Document doc = (Document)property.getValue();
- Element rootElement = doc.getDocumentElement();
-
- String value = null;
-
- //FIXME : Provide support for isMany and other property types
-
- if (rootElement.getChildNodes().getLength() > 0) {
- value = rootElement.getChildNodes().item(0).getTextContent();
- }
-
- return value;
- }
-
- /**
- * Generate JavaScript code to inject SCA References
- * @param pw
- * @throws IOException
- */
- private void generateJavaScriptReferenceFunction (PrintWriter pw) throws IOException {
-
- pw.println("var referenceMap = new Object();");
- for(ComponentReference reference : component.getReferences()) {
- String referenceName = reference.getName();
- Binding binding = reference.getBindings().get(0);
- if (binding != null) {
-
- String proxyClient = WidgetProxyHelper.getJavaScriptProxyClient(binding.getClass().getName());
- if(proxyClient != null) {
-
- //FIXME Eventually the binding URI should be initialized from the SCA domain
- // for now point to the target binding model directly, assuming that it's available
- // in the same node
- String targetURI = null;
- if (binding instanceof OptimizableBinding) {
- Binding targetBinding = ((OptimizableBinding)binding).getTargetBinding();
- if (targetBinding != null) {
- targetURI = URI.create(targetBinding.getURI()).getPath();
- }
- }
- if (targetURI == null) {
- targetURI = URI.create(binding.getURI()).getPath();
- if (!targetURI.startsWith("/")) {
- targetURI = "/" + targetURI;
- }
- }
-
- if(proxyClient.equals("JSONRpcClient")) {
- pw.println("referenceMap." + referenceName + " = new " + proxyClient + "(\"" + targetURI + "\").Service;");
- } else {
- pw.println("referenceMap." + referenceName + " = new " + proxyClient + "(\"" + targetURI + "\");");
- }
- }
- }
- }
-
- pw.println("function Reference(name) {");
- pw.println(" return referenceMap[name];");
- pw.println("}");
- }
-
-}
diff --git a/branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProvider.java b/branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProvider.java
deleted file mode 100644
index 49cf0eb3d2..0000000000
--- a/branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProvider.java
+++ /dev/null
@@ -1,65 +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.implementation.widget.provider;
-
-import org.apache.tuscany.sca.implementation.widget.WidgetImplementation;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.invocation.Invoker;
-import org.apache.tuscany.sca.provider.ImplementationProvider;
-import org.apache.tuscany.sca.runtime.RuntimeComponent;
-import org.apache.tuscany.sca.runtime.RuntimeComponentService;
-
-
-/**
- * The model representing a resource implementation in an SCA assembly model.
- */
-class WidgetImplementationProvider implements ImplementationProvider {
- private RuntimeComponent component;
- private String widgetLocationURL;
- private String widgetFolderURL;
- private String widgetName;
-
- /**
- * Constructs a new resource implementation provider.
- */
- WidgetImplementationProvider(RuntimeComponent component, WidgetImplementation implementation) {
- this.component = component;
- widgetLocationURL = implementation.getLocationURL().toString();
- int s = widgetLocationURL.lastIndexOf('/');
- widgetFolderURL = widgetLocationURL.substring(0, s);
- widgetName = widgetLocationURL.substring(s +1);
- widgetName = widgetName.substring(0, widgetName.lastIndexOf('.'));
- }
-
- public Invoker createInvoker(RuntimeComponentService service, Operation operation) {
- WidgetImplementationInvoker invoker = new WidgetImplementationInvoker(component, widgetName, widgetFolderURL, widgetLocationURL);
- return invoker;
- }
-
- public boolean supportsOneWayInvocation() {
- return false;
- }
-
- public void start() {
- }
-
- public void stop() {
- }
-
-}
diff --git a/branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProviderFactory.java b/branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProviderFactory.java
deleted file mode 100644
index 0b081fc77b..0000000000
--- a/branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProviderFactory.java
+++ /dev/null
@@ -1,45 +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.implementation.widget.provider;
-
-import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.implementation.widget.WidgetImplementation;
-import org.apache.tuscany.sca.provider.ImplementationProvider;
-import org.apache.tuscany.sca.provider.ImplementationProviderFactory;
-import org.apache.tuscany.sca.runtime.RuntimeComponent;
-
-/**
- * The model representing a resource implementation in an SCA assembly model.
- */
-public class WidgetImplementationProviderFactory implements ImplementationProviderFactory<WidgetImplementation> {
-
- /**
- * Constructs a resource implementation.
- */
- public WidgetImplementationProviderFactory(ExtensionPointRegistry extensionPoints) {
- }
-
- public ImplementationProvider createImplementationProvider(RuntimeComponent component, WidgetImplementation implementation) {
- return new WidgetImplementationProvider(component, implementation);
- }
-
- public Class<WidgetImplementation> getModelType() {
- return WidgetImplementation.class;
- }
-}
diff --git a/branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetProxyHelper.java b/branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetProxyHelper.java
deleted file mode 100644
index 75cb5ac3c7..0000000000
--- a/branches/sca-java-1.2/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetProxyHelper.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.implementation.widget.provider;
-
-import java.util.HashMap;
-import java.util.Map;
-
-class WidgetProxyHelper {
- private static Map<String, String> proxyFileRegistry = new HashMap<String, String>();
- private static Map<String, String> proxyClient = new HashMap<String, String>();
-
- static {
- proxyFileRegistry.put("org.apache.tuscany.sca.binding.atom.impl.AtomBindingImpl", "binding-atom.js");
- proxyClient.put("org.apache.tuscany.sca.binding.atom.impl.AtomBindingImpl", "AtomClient");
-
- proxyFileRegistry.put("org.apache.tuscany.sca.binding.jsonrpc.JSONRPCBinding", "binding-jsonrpc.js");
- proxyClient.put("org.apache.tuscany.sca.binding.jsonrpc.JSONRPCBinding", "JSONRpcClient");
- }
-
- static String getJavaScriptProxyFile(String bindingClass) {
- return proxyFileRegistry.get(bindingClass);
- }
-
- static String getJavaScriptProxyClient(String bindingClass) {
- return proxyClient.get(bindingClass);
- }
-}