Author: antelder
Date: Sat May 13 03:15:11 2006
New Revision: 406057
URL: http://svn.apache.org/viewcvs?rev=406057&view=rev
Log:
Fixes for TUSCANY-82 and TUSCANY-221
Modified:
incubator/tuscany/java/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/builder/JavaScriptContextFactoryBuilder.java
incubator/tuscany/java/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/config/JavaScriptContextFactory.java
incubator/tuscany/java/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/rhino/E4XDataBinding.java
incubator/tuscany/java/sca/containers/container.rhino/src/test/java/org/apache/tuscany/container/rhino/rhino/RhinoE4XScriptTestCase.java
Modified:
incubator/tuscany/java/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/builder/JavaScriptContextFactoryBuilder.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/builder/JavaScriptContextFactoryBuilder.java?rev=406057&r1=406056&r2=406057&view=diff
==============================================================================
---
incubator/tuscany/java/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/builder/JavaScriptContextFactoryBuilder.java
(original)
+++
incubator/tuscany/java/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/builder/JavaScriptContextFactoryBuilder.java
Sat May 13 03:15:11 2006
@@ -39,6 +39,8 @@
import org.apache.tuscany.model.assembly.ServiceContract;
import org.apache.tuscany.model.types.wsdl.WSDLServiceContract;
+import commonj.sdo.helper.TypeHelper;
+
/**
* Builds [EMAIL PROTECTED]
org.apache.tuscany.container.rhino.config.JavaScriptContextFactory}s from a
JavaScript component type
*
@@ -101,7 +103,9 @@
* Create the data binding for the component initialized for each
operation in the service
*/
protected E4XDataBinding createDataBinding(JavaScriptImplementation
jsImplementation) {
- E4XDataBinding dataBinding = new
E4XDataBinding(jsImplementation.getTypeHelper());
+ ClassLoader classLoader =
jsImplementation.getResourceLoader().getClassLoader();
+ TypeHelper typeHelper = jsImplementation.getTypeHelper();
+ E4XDataBinding dataBinding = new E4XDataBinding(classLoader,
typeHelper);
for (Service service :
jsImplementation.getComponentType().getServices()) {
ServiceContract sc = service.getServiceContract();
if (sc instanceof WSDLServiceContract) {
Modified:
incubator/tuscany/java/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/config/JavaScriptContextFactory.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/config/JavaScriptContextFactory.java?rev=406057&r1=406056&r2=406057&view=diff
==============================================================================
---
incubator/tuscany/java/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/config/JavaScriptContextFactory.java
(original)
+++
incubator/tuscany/java/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/config/JavaScriptContextFactory.java
Sat May 13 03:15:11 2006
@@ -25,10 +25,11 @@
import org.apache.tuscany.container.rhino.rhino.RhinoScript;
import org.apache.tuscany.core.builder.ContextCreationException;
import org.apache.tuscany.core.builder.ContextFactory;
-import org.apache.tuscany.core.context.CompositeContext;
+import org.apache.tuscany.core.builder.ContextResolver;
import org.apache.tuscany.core.context.AtomicContext;
-import org.apache.tuscany.core.wire.TargetWireFactory;
+import org.apache.tuscany.core.context.CompositeContext;
import org.apache.tuscany.core.wire.SourceWireFactory;
+import org.apache.tuscany.core.wire.TargetWireFactory;
import org.apache.tuscany.model.assembly.Scope;
/**
@@ -36,12 +37,16 @@
*
* @version $Rev$ $Date$
*/
-public class JavaScriptContextFactory implements ContextFactory<AtomicContext>
{
+public class JavaScriptContextFactory implements
ContextFactory<AtomicContext>, ContextResolver {
private Scope scope;
private String name;
+ private Map<String, TargetWireFactory> targetProxyFactories = new
HashMap<String, TargetWireFactory>();
+
+ private List<SourceWireFactory> sourceProxyFactories = new
ArrayList<SourceWireFactory>();
+
private Map<String, Class> services;
private Map<String, Object> properties;
@@ -49,9 +54,8 @@
private RhinoScript invoker;
private CompositeContext parentContext;
-
- public JavaScriptContextFactory(String name, Scope scope, Map<String,
Class> services,
- Map<String, Object> properties, RhinoScript invoker) {
+
+ public JavaScriptContextFactory(String name, Scope scope, Map<String,
Class> services, Map<String, Object> properties, RhinoScript invoker) {
this.name = name;
this.scope = scope;
this.services = services;
@@ -60,8 +64,7 @@
}
public AtomicContext createContext() throws ContextCreationException {
- return new JavaScriptComponentContext(name, services, properties,
sourceProxyFactories, targetProxyFactories, invoker
- .copy());
+ return new JavaScriptComponentContext(name, services, properties,
sourceProxyFactories, targetProxyFactories, invoker.copy());
}
public Scope getScope() {
@@ -73,11 +76,9 @@
}
public void addProperty(String propertyName, Object value) {
-
+ properties.put(propertyName, value);
}
- private Map<String, TargetWireFactory> targetProxyFactories = new
HashMap<String, TargetWireFactory>();
-
public void addTargetWireFactory(String serviceName, TargetWireFactory
factory) {
targetProxyFactories.put(serviceName, factory);
}
@@ -90,14 +91,12 @@
return targetProxyFactories;
}
- private List<SourceWireFactory> sourceProxyFactories = new
ArrayList<SourceWireFactory>();
-
public void addSourceWireFactory(String referenceName, SourceWireFactory
factory) {
sourceProxyFactories.add(factory);
}
- public void addSourceWireFactories(String referenceName, Class
referenceInterface, List<SourceWireFactory> factory, boolean multiplicity) {
- //TODO implement
+ public void addSourceWireFactories(String referenceName, Class
referenceInterface, List<SourceWireFactory> factories, boolean multiplicity) {
+ sourceProxyFactories.addAll(factories);
}
public List<SourceWireFactory> getSourceWireFactories() {
@@ -108,5 +107,8 @@
parentContext = parent;
}
+ public CompositeContext getCurrentContext() {
+ return parentContext;
+ }
}
Modified:
incubator/tuscany/java/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/rhino/E4XDataBinding.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/rhino/E4XDataBinding.java?rev=406057&r1=406056&r2=406057&view=diff
==============================================================================
---
incubator/tuscany/java/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/rhino/E4XDataBinding.java
(original)
+++
incubator/tuscany/java/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/rhino/E4XDataBinding.java
Sat May 13 03:15:11 2006
@@ -37,13 +37,16 @@
*/
public class E4XDataBinding {
+ private ClassLoader classLoader;
+
private TypeHelper typeHelper;
private Map<String, QName> function2ElementMap;
private static final boolean IS_WRAPPED = true;
- public E4XDataBinding(TypeHelper typeHelper) {
+ public E4XDataBinding(ClassLoader classLoader, TypeHelper typeHelper) {
+ this.classLoader = classLoader;
this.typeHelper = typeHelper;
this.function2ElementMap = new HashMap<String, QName>();
}
@@ -56,7 +59,7 @@
*/
public Object[] toObjects(Scriptable e4xXML) {
byte[] xmlBytes = e4xXML.toString().getBytes();
- Object[] os = SDOXMLHelper.toObjects(typeHelper, xmlBytes, IS_WRAPPED);
+ Object[] os = SDOXMLHelper.toObjects(classLoader, typeHelper,
xmlBytes, IS_WRAPPED);
return os;
}
@@ -70,7 +73,7 @@
*/
public Scriptable toE4X(String functionName, Object[] os, Scriptable
scope) {
QName elementQN = function2ElementMap.get(functionName);
- byte[] xmlBytes = SDOXMLHelper.toXMLBytes(typeHelper, os, elementQN,
IS_WRAPPED);
+ byte[] xmlBytes = SDOXMLHelper.toXMLBytes(classLoader, typeHelper, os,
elementQN, IS_WRAPPED);
XmlObject xmlObject;
try {
Modified:
incubator/tuscany/java/sca/containers/container.rhino/src/test/java/org/apache/tuscany/container/rhino/rhino/RhinoE4XScriptTestCase.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/containers/container.rhino/src/test/java/org/apache/tuscany/container/rhino/rhino/RhinoE4XScriptTestCase.java?rev=406057&r1=406056&r2=406057&view=diff
==============================================================================
---
incubator/tuscany/java/sca/containers/container.rhino/src/test/java/org/apache/tuscany/container/rhino/rhino/RhinoE4XScriptTestCase.java
(original)
+++
incubator/tuscany/java/sca/containers/container.rhino/src/test/java/org/apache/tuscany/container/rhino/rhino/RhinoE4XScriptTestCase.java
Sat May 13 03:15:11 2006
@@ -48,7 +48,7 @@
URL url = getClass().getResource("helloworld.wsdl");
xsdHelper.define(url.openStream(), null);
- dataBinding = new E4XDataBinding(th);
+ dataBinding = new E4XDataBinding(getClass().getClassLoader(),th);
dataBinding.addElementQName("getGreetings", new
QName("http://helloworld.samples.tuscany.apache.org", "getGreetings"));
}