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]

Reply via email to