Author: antelder
Date: Tue Mar 28 04:36:49 2006
New Revision: 389490
URL: http://svn.apache.org/viewcvs?rev=389490&view=rev
Log:
Add E4X support to JavaScript component types by adding a style="e4x" parameter
to the JavaScript SCDL
(probably not the best way to do it but it was the easiest for now)
Modified:
incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/assembly/JavaScriptImplementation.java
incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/assembly/impl/JavaScriptImplementationImpl.java
incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/builder/JavaScriptContextFactoryBuilder.java
incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/loader/JavaScriptSCDLModelLoader.java
incubator/tuscany/java/sca/container.js/src/main/resources/model/sca-implementation-js.xsd
Modified:
incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/assembly/JavaScriptImplementation.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/assembly/JavaScriptImplementation.java?rev=389490&r1=389489&r2=389490&view=diff
==============================================================================
---
incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/assembly/JavaScriptImplementation.java
(original)
+++
incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/assembly/JavaScriptImplementation.java
Tue Mar 28 04:36:49 2006
@@ -28,4 +28,8 @@
public String getScriptFile();
public void setScriptFile(String fn);
+
+ public String getStyle();
+
+ public void setStyle(String style);
}
Modified:
incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/assembly/impl/JavaScriptImplementationImpl.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/assembly/impl/JavaScriptImplementationImpl.java?rev=389490&r1=389489&r2=389490&view=diff
==============================================================================
---
incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/assembly/impl/JavaScriptImplementationImpl.java
(original)
+++
incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/assembly/impl/JavaScriptImplementationImpl.java
Tue Mar 28 04:36:49 2006
@@ -36,6 +36,8 @@
private String scriptFile;
+ private String style;
+
private String scriptCode;
private ResourceLoader resourceLoader;
@@ -80,6 +82,14 @@
scriptFile = fn;
}
+ public String getStyle() {
+ return this.style;
+ }
+
+ public void setStyle(String style) {
+ this.style = style;
+ }
+
public String getScript() throws ModelInitException {
if (scriptCode != null) {
return scriptCode;
@@ -126,6 +136,5 @@
return modelContext.getAssemblyFactory().createComponentType();
}
}
-
-
+
}
Modified:
incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/builder/JavaScriptContextFactoryBuilder.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/builder/JavaScriptContextFactoryBuilder.java?rev=389490&r1=389489&r2=389490&view=diff
==============================================================================
---
incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/builder/JavaScriptContextFactoryBuilder.java
(original)
+++
incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/builder/JavaScriptContextFactoryBuilder.java
Tue Mar 28 04:36:49 2006
@@ -25,6 +25,7 @@
import org.apache.tuscany.container.js.assembly.JavaScriptImplementation;
import
org.apache.tuscany.container.js.assembly.impl.JavaScriptImplementationImpl;
import org.apache.tuscany.container.js.config.JavaScriptContextFactory;
+import org.apache.tuscany.container.js.rhino.RhinoE4XScript;
import org.apache.tuscany.container.js.rhino.RhinoScript;
import org.apache.tuscany.core.builder.BuilderConfigException;
import org.apache.tuscany.core.builder.BuilderException;
@@ -52,6 +53,8 @@
import org.apache.tuscany.model.assembly.SimpleComponent;
import org.osoa.sca.annotations.Init;
+import commonj.sdo.helper.TypeHelper;
+
/**
* Builds [EMAIL PROTECTED]
org.apache.tuscany.container.js.config.JavaScriptContextFactory}s from a
JavaScript
* component type
@@ -145,7 +148,13 @@
}
ClassLoader cl = ((JavaScriptImplementationImpl)
impl).getResourceLoader().getClassLoader();
- RhinoScript invoker = new RhinoScript(component.getName(), script,
defaultProperties, cl);
+ RhinoScript invoker;
+ if ("e4x".equalsIgnoreCase(impl.getStyle())) { // TODO is constant
"e4x" somewhere?
+ TypeHelper typeHelper =
component.getAggregate().getAssemblyModelContext().getTypeHelper();
+ invoker = new RhinoE4XScript(component.getName(), script,
defaultProperties, cl, typeHelper);
+ } else {
+ invoker = new RhinoScript(component.getName(), script,
defaultProperties, cl);
+ }
Map<String, Object> properties = new HashMap<String, Object>();
List<ConfiguredProperty> configuredProperties =
component.getConfiguredProperties();
Modified:
incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/loader/JavaScriptSCDLModelLoader.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/loader/JavaScriptSCDLModelLoader.java?rev=389490&r1=389489&r2=389490&view=diff
==============================================================================
---
incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/loader/JavaScriptSCDLModelLoader.java
(original)
+++
incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/loader/JavaScriptSCDLModelLoader.java
Tue Mar 28 04:36:49 2006
@@ -86,6 +86,7 @@
org.apache.tuscany.container.js.scdl.JavaScriptImplementation
scdlImplementation=(org.apache.tuscany.container.js.scdl.JavaScriptImplementation)object;
JavaScriptImplementation
implementation=jsFactory.createJavaScriptImplementation();
implementation.setScriptFile(scdlImplementation.getScriptFile());
+
implementation.setStyle(scdlImplementation.getStyle().getLiteral());
return implementation;
} else
return null;
Modified:
incubator/tuscany/java/sca/container.js/src/main/resources/model/sca-implementation-js.xsd
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.js/src/main/resources/model/sca-implementation-js.xsd?rev=389490&r1=389489&r2=389490&view=diff
==============================================================================
---
incubator/tuscany/java/sca/container.js/src/main/resources/model/sca-implementation-js.xsd
(original)
+++
incubator/tuscany/java/sca/container.js/src/main/resources/model/sca-implementation-js.xsd
Tue Mar 28 04:36:49 2006
@@ -33,10 +33,18 @@
<sequence>
<any maxOccurs="unbounded" minOccurs="0"
namespace="##other" processContents="lax"/>
</sequence>
+ <attribute name="style" type="js:Style" default="rpc"
use="optional"/>
<attribute name="scriptFile" type="NCName" use="required"/>
<anyAttribute namespace="##any" processContents="lax"/>
</extension>
</complexContent>
</complexType>
+
+ <simpleType name="Style">
+ <restriction base="string">
+ <enumeration value="rpc"/>
+ <enumeration value="e4x"/>
+ </restriction>
+ </simpleType>
</schema>