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 2007/02/26 23:53:29 UTC
svn commit: r512056 - in
/incubator/tuscany/branches/sca-java-integration/sca:
extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/
extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/mock/
ex...
Author: antelder
Date: Mon Feb 26 14:53:28 2007
New Revision: 512056
URL: http://svn.apache.org/viewvc?view=rev&rev=512056
Log:
Start at supporting script component properties without requiring a .componentType side file (also add a few missing ASL headers)
Added:
incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworldDyn.componentType (with props)
incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworldDyn.js (with props)
incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworldDyn.py (with props)
incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworldDyn.rb
Modified:
incubator/tuscany/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptComponentBuilder.java
incubator/tuscany/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptComponentType.java
incubator/tuscany/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptInstanceFactory.java
incubator/tuscany/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/mock/MockBSFEngine.java
incubator/tuscany/branches/sca-java-integration/sca/extensions/script/databinding.e4x/src/main/java/org/apache/tuscany/extensions/script/databinding/e4x/E4X2Object.java
incubator/tuscany/branches/sca-java-integration/sca/extensions/script/databinding.e4x/src/main/java/org/apache/tuscany/extensions/script/databinding/e4x/E4XDataBinding.java
incubator/tuscany/branches/sca-java-integration/sca/extensions/script/databinding.e4x/src/main/java/org/apache/tuscany/extensions/script/databinding/e4x/Object2E4X.java
incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/META-INF/sca/properties.composite
incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/calculator/CalculatorImpl.componentType
incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/calculator/DivideImpl.componentType
incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/helloworld/helloworld.componentType
incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworld.componentType
incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworld.js
incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/references/helloworldProxy.componentType
incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/xml/helloworld.componentType
incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/xml/helloworldXML.componentType
incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/xml/helloworldXMLProxy.componentType
incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/test/java/helloworld/PropertiesTestCase.java
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java
incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentType.java
Modified: incubator/tuscany/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptComponentBuilder.java?view=diff&rev=512056&r1=512055&r2=512056
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptComponentBuilder.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptComponentBuilder.java Mon Feb 26 14:53:28 2007
@@ -54,7 +54,7 @@
// if its not a Java interface assume WSDL and want XML databinding
ServiceContract contract = service.getServiceContract();
if (!(contract instanceof JavaServiceContract)) {
- service.getServiceContract().setDataBinding("org.mozilla.javascript.xml.XMLObject");
+ service.getServiceContract().setDataBinding("org.mozilla.javascript.xmlimpl.XML");
}
}
Modified: incubator/tuscany/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptComponentType.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptComponentType.java?view=diff&rev=512056&r1=512055&r2=512056
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptComponentType.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptComponentType.java Mon Feb 26 14:53:28 2007
@@ -18,6 +18,8 @@
*/
package org.apache.tuscany.container.script;
+import javax.xml.namespace.QName;
+
import org.apache.tuscany.spi.model.ComponentType;
import org.apache.tuscany.spi.model.Property;
import org.apache.tuscany.spi.model.ReferenceDefinition;
@@ -25,8 +27,8 @@
import org.apache.tuscany.spi.model.ServiceDefinition;
/**
- * A componentType for script components
- * TODO: need lifecycle methods init/destroy
+ * A componentType for script components TODO: need lifecycle methods
+ * init/destroy
*/
public class ScriptComponentType extends ComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> {
@@ -34,4 +36,12 @@
this.implementationScope = Scope.COMPOSITE;
}
+ @Override
+ public Property getProperty(String name) {
+ Property p = super.getProperty(name);
+ if (p == null) {
+ p = new Property<Object>(name, new QName("http://www.w3.org/2001/XMLSchema", "any"), null);
+ }
+ return p;
+ }
}
Modified: incubator/tuscany/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptInstanceFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptInstanceFactory.java?view=diff&rev=512056&r1=512055&r2=512056
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptInstanceFactory.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/extensions/script/container.bsf/src/main/java/org/apache/tuscany/container/script/ScriptInstanceFactory.java Mon Feb 26 14:53:28 2007
@@ -41,10 +41,7 @@
private Map<String, ObjectFactory> contextObjects;
private Map<String, Class> contextTypes;
- public ScriptInstanceFactory(String resourceName,
- String className,
- String scriptSource,
- ClassLoader classLoader) {
+ public ScriptInstanceFactory(String resourceName, String className, String scriptSource, ClassLoader classLoader) {
this.resourceName = resourceName;
this.classLoader = classLoader;
this.className = className;
@@ -54,17 +51,18 @@
}
/**
- * Create a new invokeable instance of the script
- * <p/>
- * objects to add to scope of the script instance
- *
+ * Create a new invokeable instance of the script <p/> objects to add to
+ * scope of the script instance
+ *
* @return a RhinoScriptInstance
*/
- //public ScriptInstanceImpl createInstance(List<Class<?>> serviceBindings, Map<String, Object> context) {
+ // public ScriptInstanceImpl createInstance(List<Class<?>> serviceBindings,
+ // Map<String, Object> context) {
public ScriptInstance getInstance() throws ObjectCreationException {
try {
- //TODO: this uses a new manager and recompiles the scrip each time, may be able to optimize
+ // TODO: this uses a new manager and recompiles the scrip each time,
+ // may be able to optimize
// but need to be careful about instance scoping
BSFManager bsfManager = new BSFManager();
@@ -86,6 +84,19 @@
String scriptLanguage = BSFManager.getLangFromFilename(resourceName);
BSFEngine bsfEngine = bsfManager.loadScriptingEngine(scriptLanguage);
bsfEngine.exec(resourceName, 0, 0, scriptSource);
+
+ // register any context objects (SCA properties and references)
+ for (Map.Entry<String, ObjectFactory> entry : contextObjects.entrySet()) {
+ Object value = entry.getValue().getInstance();
+ Class type = contextTypes.get(entry.getKey());
+ if (type == null) {
+ type = value.getClass();
+ }
+ // TODO: Hack to bypass bug in BSF javascript engine
+ if (!("javascript".equals(scriptLanguage)) || (value instanceof Number) || (value instanceof String) || (value instanceof Boolean)) {
+ bsfManager.declareBean(entry.getKey(), value, type);
+ }
+ }
// if there's a className then get the class object
Object clazz = null;
Modified: incubator/tuscany/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/mock/MockBSFEngine.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/mock/MockBSFEngine.java?view=diff&rev=512056&r1=512055&r2=512056
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/mock/MockBSFEngine.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/extensions/script/container.bsf/src/test/java/org/apache/tuscany/container/script/mock/MockBSFEngine.java Mon Feb 26 14:53:28 2007
@@ -1,5 +1,6 @@
package org.apache.tuscany.container.script.mock;
+import org.apache.bsf.BSFDeclaredBean;
import org.apache.bsf.BSFException;
import org.apache.bsf.util.BSFEngineImpl;
@@ -24,4 +25,6 @@
return null;
}
+ public void declareBean(BSFDeclaredBean bean) throws BSFException {
+ }
}
Modified: incubator/tuscany/branches/sca-java-integration/sca/extensions/script/databinding.e4x/src/main/java/org/apache/tuscany/extensions/script/databinding/e4x/E4X2Object.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/extensions/script/databinding.e4x/src/main/java/org/apache/tuscany/extensions/script/databinding/e4x/E4X2Object.java?view=diff&rev=512056&r1=512055&r2=512056
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/extensions/script/databinding.e4x/src/main/java/org/apache/tuscany/extensions/script/databinding/e4x/E4X2Object.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/extensions/script/databinding.e4x/src/main/java/org/apache/tuscany/extensions/script/databinding/e4x/E4X2Object.java Mon Feb 26 14:53:28 2007
@@ -20,7 +20,6 @@
import org.apache.tuscany.spi.databinding.Transformer;
import org.apache.tuscany.spi.databinding.extension.SimpleType2JavaTransformer;
-import org.mozilla.javascript.xml.XMLObject;
import org.mozilla.javascript.xmlimpl.XML;
import org.osoa.sca.annotations.Service;
@@ -42,6 +41,6 @@
}
public Class getSourceType() {
- return XMLObject.class;
+ return XML.class;
}
}
Modified: incubator/tuscany/branches/sca-java-integration/sca/extensions/script/databinding.e4x/src/main/java/org/apache/tuscany/extensions/script/databinding/e4x/E4XDataBinding.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/extensions/script/databinding.e4x/src/main/java/org/apache/tuscany/extensions/script/databinding/e4x/E4XDataBinding.java?view=diff&rev=512056&r1=512055&r2=512056
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/extensions/script/databinding.e4x/src/main/java/org/apache/tuscany/extensions/script/databinding/e4x/E4XDataBinding.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/extensions/script/databinding.e4x/src/main/java/org/apache/tuscany/extensions/script/databinding/e4x/E4XDataBinding.java Mon Feb 26 14:53:28 2007
@@ -22,7 +22,7 @@
import org.apache.tuscany.spi.databinding.DataBinding;
import org.apache.tuscany.spi.databinding.WrapperHandler;
import org.apache.tuscany.spi.databinding.extension.DataBindingExtension;
-import org.mozilla.javascript.xml.XMLObject;
+import org.mozilla.javascript.xmlimpl.XML;
import org.osoa.sca.annotations.Service;
/**
@@ -33,11 +33,11 @@
@Service(DataBinding.class)
public class E4XDataBinding extends DataBindingExtension {
- public static final String NAME = XMLObject.class.getName();
+ public static final String NAME = XML.class.getName();
public static final String[] ALIASES = new String[] {"e4x"};
public E4XDataBinding() {
- super(NAME, ALIASES, XMLObject.class);
+ super(NAME, ALIASES, XML.class);
}
/**
Modified: incubator/tuscany/branches/sca-java-integration/sca/extensions/script/databinding.e4x/src/main/java/org/apache/tuscany/extensions/script/databinding/e4x/Object2E4X.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/extensions/script/databinding.e4x/src/main/java/org/apache/tuscany/extensions/script/databinding/e4x/Object2E4X.java?view=diff&rev=512056&r1=512055&r2=512056
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/extensions/script/databinding.e4x/src/main/java/org/apache/tuscany/extensions/script/databinding/e4x/Object2E4X.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/extensions/script/databinding.e4x/src/main/java/org/apache/tuscany/extensions/script/databinding/e4x/Object2E4X.java Mon Feb 26 14:53:28 2007
@@ -26,7 +26,6 @@
import org.apache.tuscany.spi.databinding.TransformationContext;
import org.apache.tuscany.spi.databinding.Transformer;
import org.apache.tuscany.spi.databinding.extension.Java2SimpleTypeTransformer;
-import org.mozilla.javascript.xml.XMLObject;
import org.mozilla.javascript.xmlimpl.XML;
import org.osoa.sca.annotations.Service;
@@ -52,7 +51,7 @@
@Override
public Class getTargetType() {
- return XMLObject.class;
+ return XML.class;
}
}
Modified: incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/META-INF/sca/properties.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/META-INF/sca/properties.composite?view=diff&rev=512056&r1=512055&r2=512056
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/META-INF/sca/properties.composite (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/META-INF/sca/properties.composite Mon Feb 26 14:53:28 2007
@@ -18,7 +18,8 @@
* under the License.
-->
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
-
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+
name="ScriptItests">
<component name="HelloWorldJSDefaultComponent">
@@ -30,6 +31,15 @@
<property name="GREETING">Namaskaar</property>
</component>
+ <component name="HelloWorldJSDynDefaultComponent">
+ <implementation.script script="properties/helloworldDyn.js"/>
+ </component>
+
+ <component name="HelloWorldJSDynOverrideComponent">
+ <implementation.script script="properties/helloworldDyn.js"/>
+ <property name="GREETING">Namaste</property>
+ </component>
+
<component name="HelloWorldRubyDefaultComponent">
<implementation.script script="properties/helloworld.rb"/>
</component>
@@ -39,6 +49,15 @@
<property name="GREETING">Namaskaar</property>
</component>
+ <component name="HelloWorldRubyDynDefaultComponent">
+ <implementation.script script="properties/helloworldDyn.rb"/>
+ </component>
+
+ <component name="HelloWorldRubyDynOverrideComponent">
+ <implementation.script script="properties/helloworldDyn.rb"/>
+ <property name="GREETING">Namaste</property>
+ </component>
+
<component name="HelloWorldPythonDefaultComponent">
<implementation.script script="properties/helloworld.py"/>
</component>
@@ -46,6 +65,15 @@
<component name="HelloWorldPythonOverrideComponent">
<implementation.script script="properties/helloworld.py"/>
<property name="GREETING">Namaskaar</property>
+ </component>
+
+ <component name="HelloWorldPythonDynDefaultComponent">
+ <implementation.script script="properties/helloworldDyn.py"/>
+ </component>
+
+ <component name="HelloWorldPythonDynOverrideComponent">
+ <implementation.script script="properties/helloworldDyn.py"/>
+ <property name="GREETING">Namaste</property>
</component>
</composite>
Modified: incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/calculator/CalculatorImpl.componentType
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/calculator/CalculatorImpl.componentType?view=diff&rev=512056&r1=512055&r2=512056
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/calculator/CalculatorImpl.componentType (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/calculator/CalculatorImpl.componentType Mon Feb 26 14:53:28 2007
@@ -1,4 +1,22 @@
<?xml version="1.0" encoding="ASCII"?>
+<!--
+ * 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.
+-->
<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:wsdli="http://www.w3.org/2006/01/wsdl-instance">
<service name="CalculatorService">
Modified: incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/calculator/DivideImpl.componentType
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/calculator/DivideImpl.componentType?view=diff&rev=512056&r1=512055&r2=512056
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/calculator/DivideImpl.componentType (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/calculator/DivideImpl.componentType Mon Feb 26 14:53:28 2007
@@ -1,4 +1,22 @@
<?xml version="1.0" encoding="ASCII"?>
+<!--
+ * 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.
+-->
<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:wsdli="http://www.w3.org/2006/01/wsdl-instance">
<service name="DivideService">
Modified: incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/helloworld/helloworld.componentType
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/helloworld/helloworld.componentType?view=diff&rev=512056&r1=512055&r2=512056
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/helloworld/helloworld.componentType (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/helloworld/helloworld.componentType Mon Feb 26 14:53:28 2007
@@ -1,4 +1,22 @@
<?xml version="1.0" encoding="ASCII"?>
+<!--
+ * 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.
+-->
<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:wsdli="http://www.w3.org/2006/01/wsdl-instance">
<service name="HelloWorldService">
Modified: incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworld.componentType
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworld.componentType?view=diff&rev=512056&r1=512055&r2=512056
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworld.componentType (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworld.componentType Mon Feb 26 14:53:28 2007
@@ -1,4 +1,22 @@
<?xml version="1.0" encoding="ASCII"?>
+<!--
+ * 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.
+-->
<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:wsdli="http://www.w3.org/2006/01/wsdl-instance">
<service name="HelloWorldService">
Modified: incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworld.js
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworld.js?view=diff&rev=512056&r1=512055&r2=512056
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworld.js (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworld.js Mon Feb 26 14:53:28 2007
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-
+
function getGreetings(s) {
return "js" + GREETING + " " + s;
}
Added: incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworldDyn.componentType
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworldDyn.componentType?view=auto&rev=512056
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworldDyn.componentType (added)
+++ incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworldDyn.componentType Mon Feb 26 14:53:28 2007
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--
+ * 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.
+-->
+<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:wsdli="http://www.w3.org/2006/01/wsdl-instance">
+
+ <service name="HelloWorldService">
+ <interface.java class="helloworld.HelloWorldService" />
+ </service>
+
+</componentType>
+
\ No newline at end of file
Propchange: incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworldDyn.componentType
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworldDyn.componentType
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange: incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworldDyn.componentType
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added: incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworldDyn.js
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworldDyn.js?view=auto&rev=512056
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworldDyn.js (added)
+++ incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworldDyn.js Mon Feb 26 14:53:28 2007
@@ -0,0 +1,24 @@
+/*
+ * 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.
+ */
+
+var GREETING = "Yo!";
+
+function getGreetings(s) {
+ return "js" + GREETING + " " + s;
+}
\ No newline at end of file
Propchange: incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworldDyn.js
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworldDyn.py
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworldDyn.py?view=auto&rev=512056
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworldDyn.py (added)
+++ incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworldDyn.py Mon Feb 26 14:53:28 2007
@@ -0,0 +1,21 @@
+# 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.
+
+GREETING = "Yo!"
+
+def getGreetings(s):
+ return "py" + GREETING + " " + s
\ No newline at end of file
Propchange: incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworldDyn.py
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworldDyn.rb
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworldDyn.rb?view=auto&rev=512056
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworldDyn.rb (added)
+++ incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/properties/helloworldDyn.rb Mon Feb 26 14:53:28 2007
@@ -0,0 +1,23 @@
+# 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.
+
+$GREETING = "Yo!"
+
+def getGreetings(s)
+ return "rb" + $GREETING + " " + s
+end
+
Modified: incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/references/helloworldProxy.componentType
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/references/helloworldProxy.componentType?view=diff&rev=512056&r1=512055&r2=512056
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/references/helloworldProxy.componentType (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/references/helloworldProxy.componentType Mon Feb 26 14:53:28 2007
@@ -1,4 +1,22 @@
<?xml version="1.0" encoding="ASCII"?>
+<!--
+ * 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.
+-->
<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:wsdli="http://www.w3.org/2006/01/wsdl-instance">
<service name="HelloWorldService">
Modified: incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/xml/helloworld.componentType
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/xml/helloworld.componentType?view=diff&rev=512056&r1=512055&r2=512056
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/xml/helloworld.componentType (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/xml/helloworld.componentType Mon Feb 26 14:53:28 2007
@@ -1,4 +1,22 @@
<?xml version="1.0" encoding="ASCII"?>
+<!--
+ * 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.
+-->
<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:wsdli="http://www.w3.org/2006/01/wsdl-instance">
<service name="HelloWorldService">
Modified: incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/xml/helloworldXML.componentType
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/xml/helloworldXML.componentType?view=diff&rev=512056&r1=512055&r2=512056
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/xml/helloworldXML.componentType (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/xml/helloworldXML.componentType Mon Feb 26 14:53:28 2007
@@ -1,4 +1,22 @@
<?xml version="1.0" encoding="ASCII"?>
+<!--
+ * 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.
+-->
<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:wsdli="http://www.w3.org/2006/01/wsdl-instance">
<service name="HelloWorldService">
Modified: incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/xml/helloworldXMLProxy.componentType
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/xml/helloworldXMLProxy.componentType?view=diff&rev=512056&r1=512055&r2=512056
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/xml/helloworldXMLProxy.componentType (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/main/resources/xml/helloworldXMLProxy.componentType Mon Feb 26 14:53:28 2007
@@ -1,4 +1,22 @@
<?xml version="1.0" encoding="ASCII"?>
+<!--
+ * 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.
+-->
<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:wsdli="http://www.w3.org/2006/01/wsdl-instance">
<service name="HelloWorldService">
Modified: incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/test/java/helloworld/PropertiesTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/test/java/helloworld/PropertiesTestCase.java?view=diff&rev=512056&r1=512055&r2=512056
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/test/java/helloworld/PropertiesTestCase.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/extensions/script/itests/src/test/java/helloworld/PropertiesTestCase.java Mon Feb 26 14:53:28 2007
@@ -22,6 +22,8 @@
import junit.framework.Assert;
import org.apache.tuscany.test.SCATestCase;
+import org.mozilla.javascript.Context;
+import org.mozilla.javascript.ContextFactory;
import org.osoa.sca.CompositeContext;
import org.osoa.sca.CurrentCompositeContext;
@@ -30,7 +32,7 @@
*/
public class PropertiesTestCase extends SCATestCase {
- private CompositeContext compositeContext;
+ private CompositeContext compositeContext;
public void testJavaScriptDefault() throws Exception {
HelloWorldService helloWorldService =
@@ -46,6 +48,20 @@
Assert.assertEquals("jsNamaskaar Petra", msg);
}
+ public void testJavaScriptDynDefault() throws Exception {
+ HelloWorldService helloWorldService =
+ compositeContext.locateService(HelloWorldService.class, "HelloWorldJSDynDefaultComponent");
+ String msg = helloWorldService.getGreetings("Petra");
+ Assert.assertEquals("jsYo! Petra", msg);
+ }
+
+ public void testJavaScriptDynOverride() throws Exception {
+ HelloWorldService helloWorldService =
+ compositeContext.locateService(HelloWorldService.class, "HelloWorldJSDynOverrideComponent");
+ String msg = helloWorldService.getGreetings("Petra");
+ Assert.assertEquals("jsNamaste Petra", msg);
+ }
+
public void testPythonDefault() throws Exception {
HelloWorldService helloWorldService =
compositeContext.locateService(HelloWorldService.class, "HelloWorldPythonDefaultComponent");
@@ -59,6 +75,20 @@
Assert.assertEquals("pyNamaskaar Petra", msg);
}
+ public void testPythonDynDefault() throws Exception {
+ HelloWorldService helloWorldService =
+ compositeContext.locateService(HelloWorldService.class, "HelloWorldPythonDynDefaultComponent");
+ String msg = helloWorldService.getGreetings("Petra");
+ Assert.assertEquals("pyYo! Petra", msg);
+ }
+
+ public void testPythonDynOverride() throws Exception {
+ HelloWorldService helloWorldService =
+ compositeContext.locateService(HelloWorldService.class, "HelloWorldPythonDynOverrideComponent");
+ String msg = helloWorldService.getGreetings("Petra");
+ Assert.assertEquals("pyNamaste Petra", msg);
+ }
+
public void testRubyDefault() throws Exception {
HelloWorldService helloWorldService =
compositeContext.locateService(HelloWorldService.class, "HelloWorldRubyDefaultComponent");
@@ -70,6 +100,19 @@
compositeContext.locateService(HelloWorldService.class, "HelloWorldRubyOverrideComponent");
String msg = helloWorldService.getGreetings("Petra");
Assert.assertEquals("rbNamaskaar Petra", msg);
+ }
+
+ public void testRubyDynDefault() throws Exception {
+ HelloWorldService helloWorldService =
+ compositeContext.locateService(HelloWorldService.class, "HelloWorldRubyDynDefaultComponent");
+ String msg = helloWorldService.getGreetings("Petra");
+ Assert.assertEquals("rbYo! Petra", msg);
+ }
+ public void testRubyDynOverride() throws Exception {
+ HelloWorldService helloWorldService =
+ compositeContext.locateService(HelloWorldService.class, "HelloWorldRubyDynOverrideComponent");
+ String msg = helloWorldService.getGreetings("Petra");
+ Assert.assertEquals("rbNamaste Petra", msg);
}
@Override
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java?view=diff&rev=512056&r1=512055&r2=512056
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java Mon Feb 26 14:53:28 2007
@@ -192,7 +192,7 @@
String name = reader.getAttributeValue(null, PROPERTY_NAME_ATTR);
Implementation<?> implementation = componentDefinition.getImplementation();
ComponentType<?, ?, ?> componentType = implementation.getComponentType();
- Property<Type> property = (Property<Type>) componentType.getProperties().get(name);
+ Property<Type> property = componentType.getProperty(name);
if (property == null) {
throw new UndefinedPropertyException(name);
}
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentType.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentType.java?view=diff&rev=512056&r1=512055&r2=512056
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentType.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentType.java Mon Feb 26 14:53:28 2007
@@ -175,4 +175,14 @@
public void add(P property) {
properties.put(property.getName(), property);
}
+
+ /**
+ * Get a specific property that can be used to configure the implementation.
+ *
+ * @param name the name of the property
+ * @return the property that can be used to configure the implementation or null if no such property exists
+ */
+ public Property getProperty(String name) {
+ return properties.get(name);
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org