You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jb...@apache.org on 2006/10/06 06:26:11 UTC
svn commit: r453493 - in /incubator/tuscany/java:
samples/sca/bigbank/src/test/java/bigbank/ samples/sca/calculator-ws/
samples/sca/calculator-ws/src/
samples/sca/calculator-ws/src/main/webapp/WEB-INF/
samples/sca/calculator/src/test/java/calculator/ s...
Author: jboynes
Date: Thu Oct 5 21:26:07 2006
New Revision: 453493
URL: http://svn.apache.org/viewvc?view=rev&rev=453493
Log:
have SCATestCase use an explict URL for the application SCDL location
add a method to find the URL of application SCDL relative to some class from the production classes under test
update the test cases to find the application SCDL relative to a production class
Added:
incubator/tuscany/java/samples/sca/calculator-ws/
- copied from r453401, incubator/tuscany/java/samples/sca/webapp/
incubator/tuscany/java/samples/sca/calculator-ws/LICENSE.txt
- copied unchanged from r453491, incubator/tuscany/java/samples/sca/webapp/LICENSE.txt
incubator/tuscany/java/samples/sca/calculator-ws/NOTICE.txt
- copied unchanged from r453491, incubator/tuscany/java/samples/sca/webapp/NOTICE.txt
incubator/tuscany/java/samples/sca/calculator-ws/pom.xml
- copied, changed from r453491, incubator/tuscany/java/samples/sca/webapp/pom.xml
incubator/tuscany/java/samples/sca/calculator-ws/src/
- copied from r453491, incubator/tuscany/java/samples/sca/webapp/src/
incubator/tuscany/java/samples/sca/calculator-ws/src/main/webapp/WEB-INF/calculator.wsdl (with props)
incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/main/resources/META-INF/sca/default.scdl
- copied, changed from r453457, incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/main/resources/META-INF/sca/extension-default.scdl
incubator/tuscany/java/sca/test/src/test/java/org/apache/tuscany/test/SCATestCaseTestCase.java (with props)
Removed:
incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/main/resources/META-INF/sca/extension-default.scdl
Modified:
incubator/tuscany/java/samples/sca/bigbank/src/test/java/bigbank/BigBankTestCase.java
incubator/tuscany/java/samples/sca/calculator-ws/src/main/webapp/WEB-INF/default.scdl
incubator/tuscany/java/samples/sca/calculator/src/test/java/calculator/CalculatorTestCase.java
incubator/tuscany/java/samples/sca/echo.binding/src/test/java/echo/BootstrapTestCase.java
incubator/tuscany/java/samples/sca/echo.databinding/src/test/java/echo/DataBindingIntegrationTestCase.java
incubator/tuscany/java/samples/sca/local.wire.cdi/src/test/java/localwire/cdi/LocalWireTestCase.java
incubator/tuscany/java/samples/sca/local.wire/src/test/java/localwire/LocalWireTestCase.java
incubator/tuscany/java/samples/sca/supplychain/src/test/java/supplychain/SupplyChainClientTestCase.java
incubator/tuscany/java/sca/services/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/function/HelloWorldTestCase.java
incubator/tuscany/java/sca/services/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/function/ScopeTestCase.java
incubator/tuscany/java/sca/services/containers/container.ruby/src/test/java/org/apache/tuscany/container/ruby/function/HelloWorldTestCase.java
incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/SCATestCase.java
Modified: incubator/tuscany/java/samples/sca/bigbank/src/test/java/bigbank/BigBankTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/samples/sca/bigbank/src/test/java/bigbank/BigBankTestCase.java?view=diff&rev=453493&r1=453492&r2=453493
==============================================================================
--- incubator/tuscany/java/samples/sca/bigbank/src/test/java/bigbank/BigBankTestCase.java (original)
+++ incubator/tuscany/java/samples/sca/bigbank/src/test/java/bigbank/BigBankTestCase.java Thu Oct 5 21:26:07 2006
@@ -29,6 +29,7 @@
AccountService accountService;
protected void setUp() throws Exception {
+ setApplicationSCDL(AccountService.class, "META-INF/sca/default.scdl");
super.setUp();
CompositeContext context = CurrentCompositeContext.getContext();
Copied: incubator/tuscany/java/samples/sca/calculator-ws/pom.xml (from r453491, incubator/tuscany/java/samples/sca/webapp/pom.xml)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/samples/sca/calculator-ws/pom.xml?view=diff&rev=453493&p1=incubator/tuscany/java/samples/sca/webapp/pom.xml&r1=453491&p2=incubator/tuscany/java/samples/sca/calculator-ws/pom.xml&r2=453493
==============================================================================
--- incubator/tuscany/java/samples/sca/webapp/pom.xml (original)
+++ incubator/tuscany/java/samples/sca/calculator-ws/pom.xml Thu Oct 5 21:26:07 2006
@@ -24,7 +24,7 @@
<version>1.0-incubator-M2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
- <artifactId>sample-webapp</artifactId>
+ <artifactId>sample-calculator-ws</artifactId>
<packaging>war</packaging>
<name>Apache Tuscany Simple WebApp Sample</name>
<description>A sample WebApplication showing how to include a Tuscany runtime.</description>
@@ -43,7 +43,7 @@
</dependency>
</dependencies>
<build>
- <finalName>webapp</finalName>
+ <finalName>calculator</finalName>
<plugins>
<plugin>
<groupId>org.apache.tuscany.sca.plugins</groupId>
@@ -56,6 +56,15 @@
</goals>
</execution>
</executions>
+ <configuration>
+ <extensions>
+ <dependency>
+ <groupId>org.apache.tuscany.sca.services.idl</groupId>
+ <artifactId>wsdl</artifactId>
+ <version>${tuscanyVersion}</version>
+ </dependency>
+ </extensions>
+ </configuration>
</plugin>
</plugins>
</build>
Added: incubator/tuscany/java/samples/sca/calculator-ws/src/main/webapp/WEB-INF/calculator.wsdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/samples/sca/calculator-ws/src/main/webapp/WEB-INF/calculator.wsdl?view=auto&rev=453493
==============================================================================
--- incubator/tuscany/java/samples/sca/calculator-ws/src/main/webapp/WEB-INF/calculator.wsdl (added)
+++ incubator/tuscany/java/samples/sca/calculator-ws/src/main/webapp/WEB-INF/calculator.wsdl Thu Oct 5 21:26:07 2006
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<wsdl:definitions targetNamespace="http://example.com/Calculator"
+ xmlns:tns="http://example.com/Calculator"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ name="calculator">
+
+ <wsdl:types>
+ <schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://example.com/Calculator"
+ elementFormDefault="qualified">
+
+ <element name="value" type="double"/>
+
+ <element name="valuePair">
+ <complexType>
+ <sequence>
+ <element name="first" type="double"/>
+ <element name="second" type="double"/>
+ </sequence>
+ </complexType>
+ </element>
+ </schema>
+ </wsdl:types>
+
+ <wsdl:message name="request">
+ <wsdl:part element="tns:valuePair" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="response">
+ <wsdl:part element="tns:value" name="parameters"/>
+ </wsdl:message>
+
+ <wsdl:portType name="CalculatorService">
+ <wsdl:operation name="add">
+ <wsdl:input message="tns:request"/>
+ <wsdl:output message="tns:response"/>
+ </wsdl:operation>
+ </wsdl:portType>
+</wsdl:definitions>
\ No newline at end of file
Propchange: incubator/tuscany/java/samples/sca/calculator-ws/src/main/webapp/WEB-INF/calculator.wsdl
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/samples/sca/calculator-ws/src/main/webapp/WEB-INF/calculator.wsdl
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/samples/sca/calculator-ws/src/main/webapp/WEB-INF/default.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/samples/sca/calculator-ws/src/main/webapp/WEB-INF/default.scdl?view=diff&rev=453493&r1=453491&r2=453493
==============================================================================
--- incubator/tuscany/java/samples/sca/calculator-ws/src/main/webapp/WEB-INF/default.scdl (original)
+++ incubator/tuscany/java/samples/sca/calculator-ws/src/main/webapp/WEB-INF/default.scdl Thu Oct 5 21:26:07 2006
@@ -18,9 +18,18 @@
* under the License.
-->
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:wsdli="http://www.w3.org/2006/01/wsdl-instance"
name="CalculatorComposite">
+ <service name="Calculator">
+ <interface.wsdl interface="http://example.com/Calculator#wsdl.interface(CalculatorService)"
+ wsdli:wsdlLocation="http://example.com/Calculator calculator.wsdl"/>
+ <reference>CalculatorServiceComponent</reference>
+ <binding.ws endpoint=""
+ wsdli:wsdlLocation="http://example.com/Calculator calculator.wsdl"/>
+ </service>
+
<component name="CalculatorServiceComponent">
- <implementation.composite name="CalculatorComposite" jarLocation="lib/sample-calculator-1.0-incubator-M2-SNAPSHOT.jar"/>
+ <implementation.composite name="CalculatorComposite" jarLocation="lib/sample-calculator-1.0-incubator-M2-SNAPSHOT.jar"/>
</component>
</composite>
Modified: incubator/tuscany/java/samples/sca/calculator/src/test/java/calculator/CalculatorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/samples/sca/calculator/src/test/java/calculator/CalculatorTestCase.java?view=diff&rev=453493&r1=453492&r2=453493
==============================================================================
--- incubator/tuscany/java/samples/sca/calculator/src/test/java/calculator/CalculatorTestCase.java (original)
+++ incubator/tuscany/java/samples/sca/calculator/src/test/java/calculator/CalculatorTestCase.java Thu Oct 5 21:26:07 2006
@@ -31,6 +31,7 @@
private CalculatorService calculatorService;
protected void setUp() throws Exception {
+ setApplicationSCDL(CalculatorService.class, "META-INF/sca/default.scdl");
super.setUp();
CompositeContext context = CurrentCompositeContext.getContext();
Modified: incubator/tuscany/java/samples/sca/echo.binding/src/test/java/echo/BootstrapTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/samples/sca/echo.binding/src/test/java/echo/BootstrapTestCase.java?view=diff&rev=453493&r1=453492&r2=453493
==============================================================================
--- incubator/tuscany/java/samples/sca/echo.binding/src/test/java/echo/BootstrapTestCase.java (original)
+++ incubator/tuscany/java/samples/sca/echo.binding/src/test/java/echo/BootstrapTestCase.java Thu Oct 5 21:26:07 2006
@@ -37,6 +37,7 @@
}
protected void setUp() throws Exception {
+ setApplicationSCDL(Client.class, "META-INF/sca/default.scdl");
addExtension("echo.binding", getClass().getClassLoader().getResource("META-INF/sca/echo.system.scdl"));
super.setUp();
CompositeContext context = CurrentCompositeContext.getContext();
Modified: incubator/tuscany/java/samples/sca/echo.databinding/src/test/java/echo/DataBindingIntegrationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/samples/sca/echo.databinding/src/test/java/echo/DataBindingIntegrationTestCase.java?view=diff&rev=453493&r1=453492&r2=453493
==============================================================================
--- incubator/tuscany/java/samples/sca/echo.databinding/src/test/java/echo/DataBindingIntegrationTestCase.java (original)
+++ incubator/tuscany/java/samples/sca/echo.databinding/src/test/java/echo/DataBindingIntegrationTestCase.java Thu Oct 5 21:26:07 2006
@@ -36,6 +36,7 @@
}
protected void setUp() throws Exception {
+ setApplicationSCDL(getClass(), "META-INF/sca/default.scdl");
addExtension("echo.binding", getClass().getClassLoader().getResource("META-INF/sca/echo.system.scdl"));
addExtension("idl.wsdl", getClass().getClassLoader().getResource("META-INF/tuscany/test-interface-wsdl.scdl"));
addExtension("databinding.axiom", getClass().getClassLoader().getResource("META-INF/tuscany/test-databinding-axiom.scdl"));
Modified: incubator/tuscany/java/samples/sca/local.wire.cdi/src/test/java/localwire/cdi/LocalWireTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/samples/sca/local.wire.cdi/src/test/java/localwire/cdi/LocalWireTestCase.java?view=diff&rev=453493&r1=453492&r2=453493
==============================================================================
--- incubator/tuscany/java/samples/sca/local.wire.cdi/src/test/java/localwire/cdi/LocalWireTestCase.java (original)
+++ incubator/tuscany/java/samples/sca/local.wire.cdi/src/test/java/localwire/cdi/LocalWireTestCase.java Thu Oct 5 21:26:07 2006
@@ -35,4 +35,9 @@
assertNotNull(source);
assertEquals("Echoing: Ciao", source.invoke("Ciao"));
}
+
+ protected void setUp() throws Exception {
+ setApplicationSCDL(LocalWireClient.class, "META-INF/sca/default.scdl");
+ super.setUp();
+ }
}
Modified: incubator/tuscany/java/samples/sca/local.wire/src/test/java/localwire/LocalWireTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/samples/sca/local.wire/src/test/java/localwire/LocalWireTestCase.java?view=diff&rev=453493&r1=453492&r2=453493
==============================================================================
--- incubator/tuscany/java/samples/sca/local.wire/src/test/java/localwire/LocalWireTestCase.java (original)
+++ incubator/tuscany/java/samples/sca/local.wire/src/test/java/localwire/LocalWireTestCase.java Thu Oct 5 21:26:07 2006
@@ -35,4 +35,9 @@
assertNotNull(source);
assertEquals("Echoing: Ciao", source.invoke("Ciao"));
}
+
+ protected void setUp() throws Exception {
+ setApplicationSCDL(LocalWireClient.class, "META-INF/sca/default.scdl");
+ super.setUp();
+ }
}
Modified: incubator/tuscany/java/samples/sca/supplychain/src/test/java/supplychain/SupplyChainClientTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/samples/sca/supplychain/src/test/java/supplychain/SupplyChainClientTestCase.java?view=diff&rev=453493&r1=453492&r2=453493
==============================================================================
--- incubator/tuscany/java/samples/sca/supplychain/src/test/java/supplychain/SupplyChainClientTestCase.java (original)
+++ incubator/tuscany/java/samples/sca/supplychain/src/test/java/supplychain/SupplyChainClientTestCase.java Thu Oct 5 21:26:07 2006
@@ -32,6 +32,7 @@
private Customer customer;
protected void setUp() throws Exception {
+ setApplicationSCDL(SupplyChainClient.class, "META-INF/sca/default.scdl");
super.setUp();
CompositeContext context = CurrentCompositeContext.getContext();
Modified: incubator/tuscany/java/sca/services/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/function/HelloWorldTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/function/HelloWorldTestCase.java?view=diff&rev=453493&r1=453492&r2=453493
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/function/HelloWorldTestCase.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/function/HelloWorldTestCase.java Thu Oct 5 21:26:07 2006
@@ -43,7 +43,7 @@
protected void setUp() throws Exception {
URL base = getClass().getResource("/META-INF/sca/js.system.scdl");
addExtension("JavaScriptContainer", new URL(base, "default.scdl"));
- setApplicationSCDL("org/apache/tuscany/container/javascript/function/helloworld.scdl");
+ setApplicationSCDL(getClass().getResource("helloworld.scdl"));
super.setUp();
context = CurrentCompositeContext.getContext();
Modified: incubator/tuscany/java/sca/services/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/function/ScopeTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/function/ScopeTestCase.java?view=diff&rev=453493&r1=453492&r2=453493
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/function/ScopeTestCase.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/function/ScopeTestCase.java Thu Oct 5 21:26:07 2006
@@ -36,7 +36,7 @@
protected void setUp() throws Exception {
URL base = getClass().getResource("/META-INF/sca/js.system.scdl");
addExtension("JavaScriptContainer", new URL(base, "default.scdl"));
- setApplicationSCDL("org/apache/tuscany/container/javascript/function/scopeTest.scdl");
+ setApplicationSCDL(getClass().getResource("scopeTest.scdl"));
super.setUp();
context = CurrentCompositeContext.getContext();
Modified: incubator/tuscany/java/sca/services/containers/container.ruby/src/test/java/org/apache/tuscany/container/ruby/function/HelloWorldTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.ruby/src/test/java/org/apache/tuscany/container/ruby/function/HelloWorldTestCase.java?view=diff&rev=453493&r1=453492&r2=453493
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.ruby/src/test/java/org/apache/tuscany/container/ruby/function/HelloWorldTestCase.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.ruby/src/test/java/org/apache/tuscany/container/ruby/function/HelloWorldTestCase.java Thu Oct 5 21:26:07 2006
@@ -18,6 +18,8 @@
*/
package org.apache.tuscany.container.ruby.function;
+import java.net.URL;
+
import helloworld.HelloWorldService;
import org.apache.tuscany.test.SCATestCase;
@@ -36,8 +38,9 @@
private HelloWorldService e4xHelloWorldService;
protected void setUp() throws Exception {
- addExtension("JavaScriptContainer", getClass().getClassLoader().getResource("META-INF/sca/default.scdl"));
- setApplicationSCDL("org/apache/tuscany/container/ruby/function/helloworld.scdl");
+ URL base = getClass().getResource("/org/apache/tuscany/container/ruby/RubyComponent.class");
+ addExtension("RubyContainer", new URL(base, "../../../../../META-INF/sca/default.scdl"));
+ setApplicationSCDL(getClass().getResource("helloworld.scdl"));
super.setUp();
CompositeContext context = CurrentCompositeContext.getContext();
Copied: incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/main/resources/META-INF/sca/default.scdl (from r453457, incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/main/resources/META-INF/sca/extension-default.scdl)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/main/resources/META-INF/sca/default.scdl?view=diff&rev=453493&p1=incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/main/resources/META-INF/sca/extension-default.scdl&r1=453457&p2=incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/main/resources/META-INF/sca/default.scdl&r2=453493
==============================================================================
(empty)
Modified: incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/SCATestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/SCATestCase.java?view=diff&rev=453493&r1=453492&r2=453493
==============================================================================
--- incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/SCATestCase.java (original)
+++ incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/SCATestCase.java Thu Oct 5 21:26:07 2006
@@ -18,33 +18,34 @@
*/
package org.apache.tuscany.test;
+import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.HashMap;
import java.util.Map;
-import org.apache.tuscany.spi.component.Component;
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.deployer.Deployer;
-import org.apache.tuscany.spi.loader.LoaderException;
-import org.apache.tuscany.spi.model.ComponentDefinition;
-
import junit.framework.TestCase;
+
import org.apache.tuscany.core.implementation.system.model.SystemCompositeImplementation;
import org.apache.tuscany.core.launcher.CompositeContextImpl;
import org.apache.tuscany.core.launcher.LauncherImpl;
import org.apache.tuscany.core.monitor.NullMonitorFactory;
+import org.apache.tuscany.spi.component.Component;
+import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.deployer.Deployer;
+import org.apache.tuscany.spi.loader.LoaderException;
+import org.apache.tuscany.spi.model.ComponentDefinition;
/**
* Base class for JUnit tests that want to run in an SCA client environment.
*
* @version $Rev$ $Date$
*/
-public class SCATestCase extends TestCase {
+public abstract class SCATestCase extends TestCase {
protected CompositeComponent component;
private CompositeContextImpl context;
private Map<String, URL> extensions = new HashMap<String, URL>();
- private String applicationSCDL = LauncherImpl.METAINF_APPLICATION_SCDL_PATH;
+ private URL applicationSCDL;
protected void setUp() throws Exception {
super.setUp();
@@ -52,17 +53,16 @@
LauncherImpl launcher = new LauncherImpl();
launcher.setApplicationLoader(cl);
CompositeComponent composite = launcher.bootRuntime(cl.getResource(LauncherImpl.METAINF_SYSTEM_SCDL_PATH),
- new NullMonitorFactory());
+ new NullMonitorFactory());
for (String extensionName : extensions.keySet()) {
deployExtension(composite, extensionName, extensions.get(extensionName));
}
- URL applicationScdlURL = cl.getResource(applicationSCDL);
- if (applicationScdlURL == null) {
+ if (applicationSCDL == null) {
throw new RuntimeException("application SCDL not found: " + applicationSCDL);
}
- component = launcher.bootApplication("application", applicationScdlURL);
+ component = launcher.bootApplication("application", applicationSCDL);
component.start();
context = new CompositeContextImpl(component);
context.start();
@@ -71,11 +71,24 @@
/**
* A TestCase can use this to overide the default SCDL location of "META-INF/sca/default.scdl"
*/
- protected void setApplicationSCDL(String applicationSCDL) {
+ protected void setApplicationSCDL(URL applicationSCDL) {
this.applicationSCDL = applicationSCDL;
}
/**
+ * Set the application scdl based on the classpath entry for a class.
+ * Normally this will be a class in the production code associated with this test case.
+ *
+ * @param aClass a Class from which to determine the resource base url
+ * @param path location of the application SCDL relative to the base class
+ * @throws MalformedURLException if the path is malformed
+ */
+ protected void setApplicationSCDL(Class<?> aClass, String path) throws MalformedURLException {
+ URL root = getRoot(aClass);
+ setApplicationSCDL(new URL(root, path));
+ }
+
+ /**
* A TestCase can use this to add the SCDL location of an extention to be deployed to the runtime
*/
protected void addExtension(String extensionName, URL extentionSCDL) {
@@ -89,13 +102,31 @@
implementation.setClassLoader(new URLClassLoader(new URL[]{scdlURL}, getClass().getClassLoader()));
ComponentDefinition<SystemCompositeImplementation> definition =
- new ComponentDefinition<SystemCompositeImplementation>(extensionName,
- implementation);
+ new ComponentDefinition<SystemCompositeImplementation>(extensionName, implementation);
Deployer deployer = (Deployer) composite.getSystemChild("deployer").getServiceInstance();
Component component = deployer.deploy(composite, definition);
component.start();
+ }
+
+
+ protected static URL getRoot(Class<?> aClass) {
+ String name = aClass.getName();
+ String classPath = "/" + name.replace('.', '/') + ".class";
+ URL classURL = aClass.getResource(classPath);
+ assert classURL != null;
+ StringBuilder prefix = new StringBuilder();
+ for (int i = 0; i < name.length(); i++) {
+ if (name.charAt(i) == '.') {
+ prefix.append("../");
+ }
+ }
+ try {
+ return new URL(classURL, prefix.toString());
+ } catch (MalformedURLException e) {
+ throw new AssertionError();
+ }
}
protected void tearDown() throws Exception {
Added: incubator/tuscany/java/sca/test/src/test/java/org/apache/tuscany/test/SCATestCaseTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/test/src/test/java/org/apache/tuscany/test/SCATestCaseTestCase.java?view=auto&rev=453493
==============================================================================
--- incubator/tuscany/java/sca/test/src/test/java/org/apache/tuscany/test/SCATestCaseTestCase.java (added)
+++ incubator/tuscany/java/sca/test/src/test/java/org/apache/tuscany/test/SCATestCaseTestCase.java Thu Oct 5 21:26:07 2006
@@ -0,0 +1,35 @@
+/*
+ * 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.test;
+
+import java.net.URL;
+import java.net.MalformedURLException;
+
+import junit.framework.TestCase;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class SCATestCaseTestCase extends TestCase {
+ public void testGetRoot() throws MalformedURLException {
+ URL classUrl = getClass().getResource("SCATestCaseTestCase.class");
+ URL root = SCATestCase.getRoot(getClass());
+ assertEquals(classUrl, new URL(root, "org/apache/tuscany/test/SCATestCaseTestCase.class"));
+ }
+}
Propchange: incubator/tuscany/java/sca/test/src/test/java/org/apache/tuscany/test/SCATestCaseTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/test/src/test/java/org/apache/tuscany/test/SCATestCaseTestCase.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org