Author: jsdelfino
Date: Mon Mar 3 08:59:02 2008
New Revision: 633170
URL: http://svn.apache.org/viewvc?rev=633170&view=rev
Log:
Added a test case showing that contribution import cycles cause a StackOverflow
instead of correctly reporting that a model could not be found.
Added:
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/java/test/ContributionCycleTestCaseFIXME.java
(with props)
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/resources/contribution-cycle-export/
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/resources/contribution-cycle-export/META-INF/
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/resources/contribution-cycle-export/META-INF/sca-contribution.xml
(with props)
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/resources/contribution-cycle-export/hello.composite
(with props)
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/resources/contribution-cycle-import/
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/resources/contribution-cycle-import/META-INF/
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/resources/contribution-cycle-import/META-INF/sca-contribution.xml
(with props)
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/resources/contribution-cycle-import/helloworld_one.composite
(with props)
Modified:
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/java/test/ContributionTestCase.java
Added:
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/java/test/ContributionCycleTestCaseFIXME.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/contribution-multiple/src/test/java/test/ContributionCycleTestCaseFIXME.java?rev=633170&view=auto
==============================================================================
---
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/java/test/ContributionCycleTestCaseFIXME.java
(added)
+++
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/java/test/ContributionCycleTestCaseFIXME.java
Mon Mar 3 08:59:02 2008
@@ -0,0 +1,121 @@
+/*
+ * 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 test;
+
+import helloworld.HelloWorldService;
+
+import java.io.IOException;
+import java.net.URL;
+
+import org.apache.tuscany.sca.assembly.Composite;
+import org.apache.tuscany.sca.contribution.Contribution;
+import org.apache.tuscany.sca.contribution.service.ContributionService;
+import org.apache.tuscany.sca.host.embedded.impl.EmbeddedSCADomain;
+
+import junit.framework.TestCase;
+
+/**
+ * Test multiple contributions scenario
+ *
+ * FIXME This test case causes a StackOverflowException instead of
+ * reporting an error when a composite is not found, as there's a
+ * dependency cycle in the test contributions and the model resolvers
+ * do not handle import cycles properly.
+ *
+ */
+public class ContributionCycleTestCaseFIXME extends TestCase {
+
+ private String helloContribution_dir =
"target/test-classes/contribution-cycle-export";
+ private String helloWorldContribution_one_dir =
"target/test-classes/contribution-cycle-import";
+
+ private ClassLoader cl;
+ private EmbeddedSCADomain domain;
+ private Contribution helloContribution;
+ private Contribution helloWorldContribution_one;
+
+ protected void setUp() throws Exception {
+ URL helloContribution_URL = new
java.io.File(helloContribution_dir).toURI().toURL();
+ URL helloWorldContribution_one_URL = new
java.io.File(helloWorldContribution_one_dir).toURI().toURL();
+
+ // Create a test embedded SCA domain
+ cl = getClass().getClassLoader();
+ domain = new EmbeddedSCADomain(cl, "http://localhost");
+
+ // Start the domain
+ domain.start();
+
+ // Contribute the SCA contribution
+ ContributionService contributionService =
domain.getContributionService();
+
+ helloContribution =
+
contributionService.contribute("http://contribution-multiple/helloworld",
helloContribution_URL, false);
+
+ for (Composite deployable : helloContribution.getDeployables()) {
+ domain.getDomainComposite().getIncludes().add(deployable);
+ domain.buildComposite(deployable);
+ }
+ for (Composite deployable : helloContribution.getDeployables()) {
+ domain.getCompositeActivator().activate(deployable);
+ domain.getCompositeActivator().start(deployable);
+ }
+
+ helloWorldContribution_one =
+
contributionService.contribute("http://contribution-multiple/helloworld_one",
helloWorldContribution_one_URL, false);
+ for (Composite deployable :
helloWorldContribution_one.getDeployables()) {
+ domain.getDomainComposite().getIncludes().add(deployable);
+ domain.buildComposite(deployable);
+ }
+
+ for (Composite deployable :
helloWorldContribution_one.getDeployables()) {
+ domain.getCompositeActivator().activate(deployable);
+ domain.getCompositeActivator().start(deployable);
+ }
+
+ }
+
+ public void testServiceCall() throws IOException {
+ HelloWorldService helloWorldService_one =
+ domain.getService(HelloWorldService.class,
"HelloWorldServiceComponent_one/HelloWorldService");
+ assertNotNull(helloWorldService_one);
+
+ assertEquals("Hello Smith",
helloWorldService_one.getGreetings("Smith"));
+
+ }
+
+ public void tearDown() throws Exception {
+ ContributionService contributionService =
domain.getContributionService();
+
+ // Remove the contribution from the in-memory repository
+ contributionService.remove("http://contribution-multiple/helloworld");
+
contributionService.remove("http://contribution-multiple/helloworld_one");
+
+ // Stop Components from my composite
+ for (Composite deployable :
helloWorldContribution_one.getDeployables()) {
+ domain.getCompositeActivator().stop(deployable);
+ domain.getCompositeActivator().deactivate(deployable);
+ }
+ for (Composite deployable : helloContribution.getDeployables()) {
+ domain.getCompositeActivator().stop(deployable);
+ domain.getCompositeActivator().deactivate(deployable);
+ }
+ // domain.stop();
+ domain.close();
+ }
+
+}
Propchange:
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/java/test/ContributionCycleTestCaseFIXME.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/java/test/ContributionCycleTestCaseFIXME.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified:
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/java/test/ContributionTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/contribution-multiple/src/test/java/test/ContributionTestCase.java?rev=633170&r1=633169&r2=633170&view=diff
==============================================================================
---
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/java/test/ContributionTestCase.java
(original)
+++
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/java/test/ContributionTestCase.java
Mon Mar 3 08:59:02 2008
@@ -45,8 +45,8 @@
private Contribution helloWorldContribution_one;
protected void setUp() throws Exception {
- URL helloContribution_URL = new
java.io.File(helloContribution_dir).toURL();
- URL helloWorldContribution_one_URL = new
java.io.File(helloWorldContribution_one_dir).toURL();
+ URL helloContribution_URL = new
java.io.File(helloContribution_dir).toURI().toURL();
+ URL helloWorldContribution_one_URL = new
java.io.File(helloWorldContribution_one_dir).toURI().toURL();
// Create a test embedded SCA domain
cl = getClass().getClassLoader();
Added:
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/resources/contribution-cycle-export/META-INF/sca-contribution.xml
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/contribution-multiple/src/test/resources/contribution-cycle-export/META-INF/sca-contribution.xml?rev=633170&view=auto
==============================================================================
---
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/resources/contribution-cycle-export/META-INF/sca-contribution.xml
(added)
+++
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/resources/contribution-cycle-export/META-INF/sca-contribution.xml
Mon Mar 3 08:59:02 2008
@@ -0,0 +1,26 @@
+<?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.
+-->
+<contribution xmlns="http://www.osoa.org/xmlns/sca/1.0"
+ targetNamespace="http://hello"
+ xmlns:hello="http://hello">
+ <deployable composite="hello:hello"/>
+ <export namespace="http://hello"/>
+ <import namespace="http://hello"/>
+</contribution>
\ No newline at end of file
Propchange:
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/resources/contribution-cycle-export/META-INF/sca-contribution.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/resources/contribution-cycle-export/META-INF/sca-contribution.xml
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added:
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/resources/contribution-cycle-export/hello.composite
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/contribution-multiple/src/test/resources/contribution-cycle-export/hello.composite?rev=633170&view=auto
==============================================================================
---
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/resources/contribution-cycle-export/hello.composite
(added)
+++
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/resources/contribution-cycle-export/hello.composite
Mon Mar 3 08:59:02 2008
@@ -0,0 +1,31 @@
+<?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.
+-->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
+ targetNamespace="http://hello"
+ xmlns:hello="http://hello"
+ name="hello">
+
+ <service name="HelloService" promote="HelloServiceComponent"/>
+
+ <component name="HelloServiceComponent">
+ <implementation.java class="hello.HelloImpl" />
+ </component>
+
+</composite>
Propchange:
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/resources/contribution-cycle-export/hello.composite
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/resources/contribution-cycle-export/hello.composite
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added:
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/resources/contribution-cycle-import/META-INF/sca-contribution.xml
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/contribution-multiple/src/test/resources/contribution-cycle-import/META-INF/sca-contribution.xml?rev=633170&view=auto
==============================================================================
---
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/resources/contribution-cycle-import/META-INF/sca-contribution.xml
(added)
+++
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/resources/contribution-cycle-import/META-INF/sca-contribution.xml
Mon Mar 3 08:59:02 2008
@@ -0,0 +1,26 @@
+<?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.
+-->
+<contribution xmlns="http://www.osoa.org/xmlns/sca/1.0"
+ targetNamespace="http://helloworld"
+ xmlns:helloworld="http://helloworld"
+ xmlns:hello="http://hello">
+ <deployable composite="helloworld:helloworld_one"/>
+ <import namespace="http://hello"/>
+</contribution>
\ No newline at end of file
Propchange:
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/resources/contribution-cycle-import/META-INF/sca-contribution.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/resources/contribution-cycle-import/META-INF/sca-contribution.xml
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added:
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/resources/contribution-cycle-import/helloworld_one.composite
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/contribution-multiple/src/test/resources/contribution-cycle-import/helloworld_one.composite?rev=633170&view=auto
==============================================================================
---
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/resources/contribution-cycle-import/helloworld_one.composite
(added)
+++
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/resources/contribution-cycle-import/helloworld_one.composite
Mon Mar 3 08:59:02 2008
@@ -0,0 +1,35 @@
+<?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.
+-->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
+ targetNamespace="http://helloworld"
+ xmlns:helloworld="http://helloworld"
+ xmlns:hello="http://hello"
+ name="helloworld_one">
+
+ <component name="SourceHelloServiceComponent_one">
+ <implementation.composite name="hello:helloexport"/>
+ </component>
+
+ <component name="HelloWorldServiceComponent_one">
+ <implementation.java class="helloworld.HelloWorldImpl" />
+ <reference name="helloServiceRef"
target="SourceHelloServiceComponent_one/HelloService"/>
+ </component>
+
+</composite>
Propchange:
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/resources/contribution-cycle-import/helloworld_one.composite
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/tuscany/java/sca/itest/contribution-multiple/src/test/resources/contribution-cycle-import/helloworld_one.composite
------------------------------------------------------------------------------
svn:keywords = Rev Date
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]