You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2007/09/21 22:38:44 UTC

svn commit: r578261 - in /incubator/tuscany/java/sca: itest/osgi-implementation/src/main/java/callback/client/ itest/osgi-implementation/src/main/java/conversation/client/ itest/osgi-implementation/src/main/java/conversation/referenceclient/ itest/osgi...

Author: rfeng
Date: Fri Sep 21 13:38:38 2007
New Revision: 578261

URL: http://svn.apache.org/viewvc?rev=578261&view=rev
Log:
Apply the patch from Rajini Sivaram for TUSCANY-1757

Added:
    incubator/tuscany/java/sca/itest/osgi-implementation/src/main/resources/factory/ds/factory-ds-test.composite
      - copied unchanged from r578178, incubator/tuscany/java/sca/itest/osgi-implementation/src/main/resources/factory/factory-ds-test.composite
    incubator/tuscany/java/sca/itest/osgi-implementation/src/main/resources/interfaces/ds/interfaces-ds-test.composite
      - copied unchanged from r578178, incubator/tuscany/java/sca/itest/osgi-implementation/src/main/resources/interfaces/interfaces-ds-test.composite
    incubator/tuscany/java/sca/itest/osgi-implementation/src/main/resources/properties/ds/properties-ds-test.composite
      - copied unchanged from r578178, incubator/tuscany/java/sca/itest/osgi-implementation/src/main/resources/properties/properties-ds-test.composite
    incubator/tuscany/java/sca/itest/osgi-implementation/src/main/resources/properties/ds/properties2-ds-test.composite
      - copied unchanged from r578178, incubator/tuscany/java/sca/itest/osgi-implementation/src/main/resources/properties/properties2-ds-test.composite
    incubator/tuscany/java/sca/itest/osgi-implementation/src/main/resources/services/ds/services-ds-test.composite
      - copied unchanged from r578178, incubator/tuscany/java/sca/itest/osgi-implementation/src/main/resources/services/services-ds-test.composite
    incubator/tuscany/java/sca/itest/osgi-implementation/src/main/resources/version/ds/version-ds-test.composite
      - copied unchanged from r578178, incubator/tuscany/java/sca/itest/osgi-implementation/src/main/resources/version/version-ds-test.composite
    incubator/tuscany/java/sca/itest/osgi-implementation/src/main/resources/wiring/ds/wiring-ds-test1.composite
      - copied unchanged from r578178, incubator/tuscany/java/sca/itest/osgi-implementation/src/main/resources/wiring/wiring-ds-test1.composite
    incubator/tuscany/java/sca/itest/osgi-implementation/src/main/resources/wiring/ds/wiring-ds-test2.composite
      - copied unchanged from r578178, incubator/tuscany/java/sca/itest/osgi-implementation/src/main/resources/wiring/wiring-ds-test2.composite
Removed:
    incubator/tuscany/java/sca/itest/osgi-implementation/src/main/resources/factory/factory-ds-test.composite
    incubator/tuscany/java/sca/itest/osgi-implementation/src/main/resources/interfaces/interfaces-ds-test.composite
    incubator/tuscany/java/sca/itest/osgi-implementation/src/main/resources/properties/properties-ds-test.composite
    incubator/tuscany/java/sca/itest/osgi-implementation/src/main/resources/properties/properties2-ds-test.composite
    incubator/tuscany/java/sca/itest/osgi-implementation/src/main/resources/services/services-ds-test.composite
    incubator/tuscany/java/sca/itest/osgi-implementation/src/main/resources/version/version-ds-test.composite
    incubator/tuscany/java/sca/itest/osgi-implementation/src/main/resources/wiring/wiring-ds-test1.composite
    incubator/tuscany/java/sca/itest/osgi-implementation/src/main/resources/wiring/wiring-ds-test2.composite
Modified:
    incubator/tuscany/java/sca/itest/osgi-implementation/src/main/java/callback/client/JavaCallbackClientImpl.java
    incubator/tuscany/java/sca/itest/osgi-implementation/src/main/java/conversation/client/ConversationalClientStatefulImpl.java
    incubator/tuscany/java/sca/itest/osgi-implementation/src/main/java/conversation/client/ConversationalClientStatelessImpl.java
    incubator/tuscany/java/sca/itest/osgi-implementation/src/main/java/conversation/referenceclient/ConversationalReferenceClientImpl.java
    incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/callback/Callback1TestCase.java
    incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/callback/Callback2TestCase.java
    incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/callback/Callback3TestCase.java
    incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/callback/CallbackTestCase.java
    incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/conversation/ConversationTestCase.java
    incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/helloworld/passbyref/PassByRefTestCase.java
    incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/helloworld/ws/HelloWorldTestCase.java
    incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/SupplyChainTestCase.java
    incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/VersionedSupplyChainTestCase.java
    incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/factory/DSFactoryTestCase.java
    incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/factory/FactoryTestCase.java
    incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/interfaces/DSInterfacesTestCase.java
    incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/interfaces/InterfacesTestCase.java
    incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/properties/DSProperties2TestCase.java
    incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/properties/DSPropertiesTestCase.java
    incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/properties/Properties2TestCase.java
    incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/properties/PropertiesTestCase.java
    incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/services/DSServicesTestCase.java
    incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/services/ServicesTestCase.java
    incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/version/DSVersionTestCase.java
    incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/version/VersionTestCase.java
    incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/wiring/DSWiring1TestCase.java
    incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/wiring/DSWiring2TestCase.java
    incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/wiring/Wiring1TestCase.java
    incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/wiring/Wiring2TestCase.java
    incubator/tuscany/java/sca/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiClassReferenceModelResolver.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java
    incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaComponentContextProvider.java
    incubator/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/context/OSGiAnnotations.java
    incubator/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiImplementationProvider.java
    incubator/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiInstanceWrapper.java
    incubator/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiTargetInvoker.java
    incubator/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/xml/OSGiImplementation.java
    incubator/tuscany/java/sca/modules/implementation-osgi/src/test/java/org/apache/tuscany/sca/implementation/osgi/xml/OSGiReadImplTestCase.java
    incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/EquinoxRuntime.java
    incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/FelixRuntime.java
    incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/KnopflerfishRuntime.java
    incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/OSGiRuntime.java
    incubator/tuscany/java/sca/samples/osgi-supplychain/build.xml
    incubator/tuscany/java/sca/samples/osgi-supplychain/src/main/resources/supplychain.composite
    incubator/tuscany/java/sca/samples/osgi-supplychain/src/main/resources/supplychain.ds.composite

Modified: incubator/tuscany/java/sca/itest/osgi-implementation/src/main/java/callback/client/JavaCallbackClientImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-implementation/src/main/java/callback/client/JavaCallbackClientImpl.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-implementation/src/main/java/callback/client/JavaCallbackClientImpl.java (original)
+++ incubator/tuscany/java/sca/itest/osgi-implementation/src/main/java/callback/client/JavaCallbackClientImpl.java Fri Sep 21 13:38:38 2007
@@ -31,7 +31,9 @@
  */
 public class JavaCallbackClientImpl implements CallbackClient, CallbackCallback {
 
+	@Reference
     protected CallbackService callbackService;
+	
     private static String returnMessage = null;
     private static int callbackCount = 0;
     private static Object monitor = new Object();

Modified: incubator/tuscany/java/sca/itest/osgi-implementation/src/main/java/conversation/client/ConversationalClientStatefulImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-implementation/src/main/java/conversation/client/ConversationalClientStatefulImpl.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-implementation/src/main/java/conversation/client/ConversationalClientStatefulImpl.java (original)
+++ incubator/tuscany/java/sca/itest/osgi-implementation/src/main/java/conversation/client/ConversationalClientStatefulImpl.java Fri Sep 21 13:38:38 2007
@@ -24,7 +24,6 @@
 import org.osoa.sca.annotations.ConversationAttributes;
 import org.osoa.sca.annotations.Destroy;
 import org.osoa.sca.annotations.Init;
-import org.osoa.sca.annotations.Reference;
 import org.osoa.sca.annotations.Scope;
 import org.osoa.sca.annotations.Service;
 
@@ -80,7 +79,7 @@
         clientCount = callableReference.retrieveCount();
         callableReference.endConversation();
         
-        serviceReference.getConversation().end();
+        // serviceReference.getConversation().end();
         
         return clientCount;
     }	
@@ -97,7 +96,7 @@
         clientCount = callableReference.retrieveCount();
         callableReference.endConversation();
         
-        serviceReference.getConversation().end();
+        // serviceReference.getConversation().end();
         
         return clientCount;
     }    
@@ -240,6 +239,7 @@
     
     public String endConversation(){
         calls.append("endConversation,");
+        callbackCount = 0;
         return null;
     }
     

Modified: incubator/tuscany/java/sca/itest/osgi-implementation/src/main/java/conversation/client/ConversationalClientStatelessImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-implementation/src/main/java/conversation/client/ConversationalClientStatelessImpl.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-implementation/src/main/java/conversation/client/ConversationalClientStatelessImpl.java (original)
+++ incubator/tuscany/java/sca/itest/osgi-implementation/src/main/java/conversation/client/ConversationalClientStatelessImpl.java Fri Sep 21 13:38:38 2007
@@ -78,7 +78,7 @@
         clientCount = callableReference.retrieveCount();
         callableReference.endConversation();
         
-        serviceReference.getConversation().end();
+        // serviceReference.getConversation().end();
         
         return clientCount;
     }   
@@ -93,7 +93,7 @@
         clientCount = callableReference.retrieveCount();
         callableReference.endConversation();
         
-        serviceReference.getConversation().end();
+        // serviceReference.getConversation().end();
         
         return clientCount;
     }    
@@ -141,7 +141,7 @@
         clientCount = callableReference.retrieveCount();
         callableReference.endConversation();
         
-        serviceReference.getConversation().end();
+        // serviceReference.getConversation().end();
         
         return clientCount;
     }	

Modified: incubator/tuscany/java/sca/itest/osgi-implementation/src/main/java/conversation/referenceclient/ConversationalReferenceClientImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-implementation/src/main/java/conversation/referenceclient/ConversationalReferenceClientImpl.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-implementation/src/main/java/conversation/referenceclient/ConversationalReferenceClientImpl.java (original)
+++ incubator/tuscany/java/sca/itest/osgi-implementation/src/main/java/conversation/referenceclient/ConversationalReferenceClientImpl.java Fri Sep 21 13:38:38 2007
@@ -19,6 +19,7 @@
 package conversation.referenceclient;
 
 import org.osoa.sca.CallableReference;
+import org.osoa.sca.annotations.AllowsPassByReference;
 import org.osoa.sca.annotations.Service;
 
 import conversation.service.ConversationalService;
@@ -31,6 +32,7 @@
  */
 
 @Service(interfaces={ConversationalReferenceClient.class})
+@AllowsPassByReference
 public class ConversationalReferenceClientImpl implements ConversationalReferenceClient{
    
     public void incrementCount(CallableReference<ConversationalService> conversationalService){

Modified: incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/callback/Callback1TestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/callback/Callback1TestCase.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/callback/Callback1TestCase.java (original)
+++ incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/callback/Callback1TestCase.java Fri Sep 21 13:38:38 2007
@@ -23,7 +23,7 @@
 public class Callback1TestCase extends CallbackTestCase {
 
     public Callback1TestCase() {
-        super("callback/callback-test1.composite");
+        super("callback-test1.composite");
     }
     
    

Modified: incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/callback/Callback2TestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/callback/Callback2TestCase.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/callback/Callback2TestCase.java (original)
+++ incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/callback/Callback2TestCase.java Fri Sep 21 13:38:38 2007
@@ -20,10 +20,10 @@
 package callback;
 
 
-public abstract class Callback2TestCase extends CallbackTestCase {
+public class Callback2TestCase extends CallbackTestCase {
 
     public Callback2TestCase() {
-        super("callback/callback-test2.composite");
+        super("callback-test2.composite");
     }
     
 }

Modified: incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/callback/Callback3TestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/callback/Callback3TestCase.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/callback/Callback3TestCase.java (original)
+++ incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/callback/Callback3TestCase.java Fri Sep 21 13:38:38 2007
@@ -23,7 +23,7 @@
 public class Callback3TestCase extends CallbackTestCase {
 
     public Callback3TestCase() {
-        super("callback/callback-test3.composite");
+        super("callback-test3.composite");
     }
     
 }

Modified: incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/callback/CallbackTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/callback/CallbackTestCase.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/callback/CallbackTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/callback/CallbackTestCase.java Fri Sep 21 13:38:38 2007
@@ -19,43 +19,30 @@
 
 package callback;
 
-import junit.framework.TestCase;
-
-import org.apache.tuscany.sca.host.embedded.SCADomain;
 
 import callback.client.CallbackClient;
 
-import util.OSGiTestUtil;
+import test.OSGiTestCase;
 
-public abstract class CallbackTestCase extends TestCase {
+public abstract class CallbackTestCase extends OSGiTestCase {
 
-    private SCADomain scaDomain;
     private CallbackClient aCallbackClient;
     
     protected String compositeName;
     
    
     public CallbackTestCase(String compositeName) {
-        super();
-        this.compositeName = compositeName;
+        super(compositeName, "callback");
     }
 
    
 
     protected void setUp() throws Exception {
-        OSGiTestUtil.setUpOSGiTestRuntime();
-        
-        scaDomain = SCADomain.newInstance(compositeName);
+    	super.setUp();
         aCallbackClient = scaDomain.getService(CallbackClient.class, "CallbackClient");
     }
 
     
-    protected void tearDown() throws Exception {
-        scaDomain.close();
-        
-        OSGiTestUtil.shutdownOSGiRuntime();
-    }
-
     public void test() throws Exception {
         aCallbackClient.run(); 
     }

Modified: incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/conversation/ConversationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/conversation/ConversationTestCase.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/conversation/ConversationTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/conversation/ConversationTestCase.java Fri Sep 21 13:38:38 2007
@@ -21,42 +21,41 @@
 
 import junit.framework.Assert;
 
-import org.apache.tuscany.sca.host.embedded.SCADomain;
-import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
 import conversation.client.ConversationalClient;
 
-import util.OSGiTestUtil;
+import test.OSGiTestCase;
 
-public abstract class ConversationTestCase {
+public class ConversationTestCase  extends OSGiTestCase {
 
-    private SCADomain domain;
     private ConversationalClient conversationalStatelessClientStatelessService;
     private ConversationalClient conversationalStatelessClientStatefulService;
     private ConversationalClient conversationalStatefulClientStatelessService;
-    private ConversationalClient conversationalStatefulClientStatefulService;    
+    private ConversationalClient conversationalStatefulClientStatefulService; 
+    
+    public ConversationTestCase() {
+    	super("conversation-test.composite", "conversation");
+    }
 
     @Before
     public void setUp() throws Exception {
         
         try {
 
-            OSGiTestUtil.setUpOSGiTestRuntime();
-            
-            domain = SCADomain.newInstance("conversation/conversation-test.composite");
+        	super.setUp();
 
-            conversationalStatelessClientStatelessService = domain.getService(ConversationalClient.class,
+            conversationalStatelessClientStatelessService = scaDomain.getService(ConversationalClient.class,
                                    "ConversationalStatelessClientStatelessService/ConversationalClient");
 
-            conversationalStatelessClientStatefulService  = domain.getService(ConversationalClient.class,
+            conversationalStatelessClientStatefulService  = scaDomain.getService(ConversationalClient.class,
                                    "ConversationalStatelessClientStatefulService/ConversationalClient");
 
-            conversationalStatefulClientStatelessService  = domain.getService(ConversationalClient.class,
+            conversationalStatefulClientStatelessService  = scaDomain.getService(ConversationalClient.class,
                                    "ConversationalStatefulClientStatelessService/ConversationalClient");
 
-            conversationalStatefulClientStatefulService   = domain.getService(ConversationalClient.class,
+            conversationalStatefulClientStatefulService   = scaDomain.getService(ConversationalClient.class,
                                    "ConversationalStatefulClientStatefulService/ConversationalClient");
 
 
@@ -69,14 +68,7 @@
                
     }
 
-    @After
-    public void tearDown() throws Exception {
-        domain.close();
-        
-
-        OSGiTestUtil.shutdownOSGiRuntime();
-    }
-  
+    
     // stateless client stateful service tests
     // =======================================
     @Test
@@ -121,7 +113,7 @@
     }  
     
     /////@Test
-    public void testStatelessStatefulConversationHavingPassedReference() {
+    public void _testStatelessStatefulConversationHavingPassedReference() {
         int count = conversationalStatelessClientStatefulService.runConversationHavingPassedReference();
         Assert.assertEquals(3, count);
     }    
@@ -191,7 +183,7 @@
                 conversationalStatelessClientStatelessService.getCalls());        
     }
     /////@Test
-    public void testStatelessStatelessConversationHavingPassedReference() {
+    public void _testStatelessStatelessConversationHavingPassedReference() {
         int count = conversationalStatelessClientStatelessService.runConversationHavingPassedReference();
         Assert.assertEquals(3, count);
     }     
@@ -244,6 +236,7 @@
     @Test
     public void testStatefulStatefulConversationWithCallback() {
         int count = conversationalStatefulClientStatefulService.runConversationWithCallback();
+        //System.out.println("Calls: " + conversationalStatefulClientStatefulService.getCalls());
         Assert.assertEquals(4, count);
               
         Assert.assertEquals("init,runConversationWithCallback,initializeCount,incrementCount,retrieveCount,endConversation,destroy,init,", 
@@ -251,7 +244,7 @@
     }   
     
     /////@Test
-    public void testStatefulStatefulConversationHavingPassedReference() {
+    public void _testStatefulStatefulConversationHavingPassedReference() {
         int count = conversationalStatefulClientStatefulService.runConversationHavingPassedReference();
         Assert.assertEquals(3, count);
     } 
@@ -312,7 +305,7 @@
     }     
     
     /////@Test
-    public void testStatefulStatelessConversationHavingPassedReference() {
+    public void _testStatefulStatelessConversationHavingPassedReference() {
         int count = conversationalStatefulClientStatelessService.runConversationHavingPassedReference();
         Assert.assertEquals(3, count);
     }     

Modified: incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/helloworld/passbyref/PassByRefTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/helloworld/passbyref/PassByRefTestCase.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/helloworld/passbyref/PassByRefTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/helloworld/passbyref/PassByRefTestCase.java Fri Sep 21 13:38:38 2007
@@ -20,25 +20,23 @@
 package helloworld.passbyref;
 
 import helloworld.Greetings;
-import junit.framework.TestCase;
+import test.OSGiTestCase;
 
-import org.apache.tuscany.sca.host.embedded.SCADomain;
 
-import util.OSGiTestUtil;
+public class PassByRefTestCase extends OSGiTestCase {
 
-
-public abstract class PassByRefTestCase extends TestCase {
-
-    private SCADomain scaDomain;
     private Greetings greetingsJava;
     private Greetings greetingsOSGi;
     private String[] origNames = {"world"};
     private String[] names;
+    
+    public PassByRefTestCase() {
+    	super("passbyref-test.composite", "passbyref");
+    }
 
     protected void setUp() throws Exception {
-        OSGiTestUtil.setUpOSGiTestRuntime();
-        
-        scaDomain = SCADomain.newInstance("passbyref/passbyref-test.composite");
+
+    	super.setUp();
         greetingsJava = scaDomain.getService(Greetings.class, "JavaGreetingsComponent");
         greetingsOSGi = scaDomain.getService(Greetings.class, "OSGiGreetingsComponent");
         
@@ -46,10 +44,6 @@
         System.arraycopy(origNames, 0, names, 0, names.length);
     }
     
-    protected void tearDown() throws Exception {
-        scaDomain.close();
-        OSGiTestUtil.shutdownOSGiRuntime();
-    }
     
     public void test() throws Exception {
         

Modified: incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/helloworld/ws/HelloWorldTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/helloworld/ws/HelloWorldTestCase.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/helloworld/ws/HelloWorldTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/helloworld/ws/HelloWorldTestCase.java Fri Sep 21 13:38:38 2007
@@ -20,22 +20,22 @@
 package helloworld.ws;
 
 import helloworld.HelloWorld;
-import junit.framework.TestCase;
 
-import org.apache.tuscany.sca.host.embedded.SCADomain;
 
+import test.OSGiTestCase;
 import util.OSGiTestUtil;
 
 
-public class HelloWorldTestCase extends TestCase {
+public class HelloWorldTestCase extends OSGiTestCase {
 
-    private SCADomain scaDomain;
     private HelloWorld helloWorld;
+    
+    public HelloWorldTestCase() {
+    	super("ws-helloworld.composite", "ws");
+    }
 
     protected void setUp() throws Exception {
-        OSGiTestUtil.setUpOSGiTestRuntime();
-        
-        scaDomain = SCADomain.newInstance("ws/ws-helloworld.composite");
+        super.setUp();
         helloWorld = scaDomain.getService(HelloWorld.class, "HelloWorldComponent");
     }
     

Modified: incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/SupplyChainTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/SupplyChainTestCase.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/SupplyChainTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/SupplyChainTestCase.java Fri Sep 21 13:38:38 2007
@@ -18,44 +18,28 @@
  */
 package supplychain;
 
-import junit.framework.TestCase;
-
-import org.apache.tuscany.sca.host.embedded.SCADomain;
-
-
 import supplychain.customer.Customer;
-import util.OSGiTestUtil;
+import test.OSGiTestCase;
 
 /**
  * Test case for supplychain - it is invoked with different composite files to test 
  * various scenarios.
  */
-public abstract class SupplyChainTestCase extends TestCase {
+public abstract class SupplyChainTestCase extends OSGiTestCase {
 
-    private String compositeName;
-    private SCADomain scaDomain;
     public Customer customer;
     
-    public SupplyChainTestCase(String compositeName) {
-        super();
-        this.compositeName = compositeName;
+   
+    public SupplyChainTestCase(String compositeName, String contributionLocation) {
+        super(compositeName, contributionLocation);
     }
 
     protected void setUp() throws Exception {
 
-        OSGiTestUtil.setUpOSGiTestRuntime();
-        
-        scaDomain = SCADomain.newInstance(compositeName);
+    	super.setUp();
         customer = scaDomain.getService(Customer.class, "CustomerComponent");
     }
     
-    protected void tearDown() throws Exception {
-        scaDomain.close();
-        
-        OSGiTestUtil.shutdownOSGiRuntime();
-    }
-
-
     public void test() throws Exception {
         
         System.out.println("Main thread " + Thread.currentThread());

Modified: incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/VersionedSupplyChainTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/VersionedSupplyChainTestCase.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/VersionedSupplyChainTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/VersionedSupplyChainTestCase.java Fri Sep 21 13:38:38 2007
@@ -18,42 +18,31 @@
  */
 package supplychain;
 
-import junit.framework.TestCase;
-
-import org.apache.tuscany.sca.host.embedded.SCADomain;
-
 import supplychain.customer.Customer;
-import util.OSGiTestUtil;
+import test.OSGiTestCase;
 
 /**
  * OSGi test program - common code for versioned bundles
  */
-public abstract class VersionedSupplyChainTestCase extends TestCase {
+public abstract class VersionedSupplyChainTestCase extends OSGiTestCase {
     
-    private String compositeName;
-    private SCADomain scaDomain;
     private Customer customer1;
     private Customer customer2;
     
 
-    public VersionedSupplyChainTestCase(String compositeName) {
-        super();
-        this.compositeName = compositeName;
+    public VersionedSupplyChainTestCase(String compositeName, String contributionLocation) {
+        super(compositeName, contributionLocation);
     }
     
     protected void setUp() throws Exception {
         
-        OSGiTestUtil.setUpOSGiTestRuntime();
-
-        scaDomain = SCADomain.newInstance(compositeName);
+        super.setUp();
         customer1 = scaDomain.getService(Customer.class, "CustomerComponent1");
         customer2 = scaDomain.getService(Customer.class, "CustomerComponent2");
     }
     
     protected void tearDown() throws Exception {
-        scaDomain.close();
-        
-        OSGiTestUtil.shutdownOSGiRuntime();
+        super.tearDown();
         Thread.sleep(1000);
     }
    

Modified: incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/factory/DSFactoryTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/factory/DSFactoryTestCase.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/factory/DSFactoryTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/factory/DSFactoryTestCase.java Fri Sep 21 13:38:38 2007
@@ -25,7 +25,7 @@
 public class DSFactoryTestCase extends FactoryTestCase {
 
     public DSFactoryTestCase() {
-        super("factory/factory-ds-test.composite");
+        super("factory-ds-test.composite", "factory/ds");
     }
     
     

Modified: incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/factory/FactoryTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/factory/FactoryTestCase.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/factory/FactoryTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/factory/FactoryTestCase.java Fri Sep 21 13:38:38 2007
@@ -26,11 +26,11 @@
 public class FactoryTestCase extends SupplyChainTestCase {
 
     public FactoryTestCase() {
-        super("factory/factory-test.composite");
+        super("factory-test.composite", "factory");
     }
     
-    protected FactoryTestCase(String compositeName) {
-        super(compositeName);
+    protected FactoryTestCase(String compositeName, String contributionLocation) {
+        super(compositeName, contributionLocation);
     }
     
     

Modified: incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/interfaces/DSInterfacesTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/interfaces/DSInterfacesTestCase.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/interfaces/DSInterfacesTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/interfaces/DSInterfacesTestCase.java Fri Sep 21 13:38:38 2007
@@ -23,10 +23,10 @@
 /**
  * OSGi test program - declarative with components exposing multiple services with multiple interfaces
  */
-public abstract class DSInterfacesTestCase extends SupplyChainTestCase {
+public class DSInterfacesTestCase extends SupplyChainTestCase {
 
     public DSInterfacesTestCase() {
-        super("interfaces/interfaces-ds-test.composite");
+        super("interfaces-ds-test.composite", "interfaces/ds");
     }
    
 }

Modified: incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/interfaces/InterfacesTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/interfaces/InterfacesTestCase.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/interfaces/InterfacesTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/interfaces/InterfacesTestCase.java Fri Sep 21 13:38:38 2007
@@ -23,10 +23,10 @@
 /**
  * OSGi test program - procedural with components exposing multiple services with multiple interfaces
  */
-public abstract class InterfacesTestCase extends SupplyChainTestCase {
+public class InterfacesTestCase extends SupplyChainTestCase {
 
     public InterfacesTestCase() {
-        super("interfaces/interfaces-test.composite");
+        super("interfaces-test.composite", "interfaces");
     }
    
 }

Modified: incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/properties/DSProperties2TestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/properties/DSProperties2TestCase.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/properties/DSProperties2TestCase.java (original)
+++ incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/properties/DSProperties2TestCase.java Fri Sep 21 13:38:38 2007
@@ -25,7 +25,7 @@
 public class DSProperties2TestCase extends Properties2TestCase {
 
     public DSProperties2TestCase() {
-        super("properties/properties2-ds-test.composite");
+        super("properties2-ds-test.composite", "properties/ds");
     }
    
 }

Modified: incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/properties/DSPropertiesTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/properties/DSPropertiesTestCase.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/properties/DSPropertiesTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/properties/DSPropertiesTestCase.java Fri Sep 21 13:38:38 2007
@@ -25,7 +25,7 @@
 public class DSPropertiesTestCase extends PropertiesTestCase {
 
     public DSPropertiesTestCase() {
-        super("properties/properties-ds-test.composite");
+        super("properties-ds-test.composite", "properties/ds");
     }
    
 }

Modified: incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/properties/Properties2TestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/properties/Properties2TestCase.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/properties/Properties2TestCase.java (original)
+++ incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/properties/Properties2TestCase.java Fri Sep 21 13:38:38 2007
@@ -18,46 +18,32 @@
  */
 package supplychain.properties;
 
-import junit.framework.TestCase;
-
-import org.apache.tuscany.sca.host.embedded.SCADomain;
 
 import stockquote.StockQuote;
-import util.OSGiTestUtil;
+import test.OSGiTestCase;
 
 /**
  * OSGi test program - procedural with business properties
  */
-public class Properties2TestCase extends TestCase {
+public class Properties2TestCase extends OSGiTestCase {
     
 
-    private SCADomain scaDomain;
     private StockQuote stockQuoteServiceUSD;
     private StockQuote stockQuoteServiceEURO;
-    private String compositeName;
     
     public Properties2TestCase() {
-        super();
-        compositeName = "properties/properties2-test.composite";
+        super("properties2-test.composite", "properties");
     }
     
-    protected Properties2TestCase(String compositeName) {
-        super();
-        this.compositeName = compositeName;
+    protected Properties2TestCase(String compositeName, String contributionLocation) {
+        super(compositeName, contributionLocation);
     }
 
     protected void setUp() throws Exception {
         
-        OSGiTestUtil.setUpOSGiTestRuntime();
-        
-        scaDomain = SCADomain.newInstance(compositeName);
+        super.setUp();
         stockQuoteServiceUSD = scaDomain.getService(StockQuote.class, "USDStockQuoteComponent");
         stockQuoteServiceEURO = scaDomain.getService(StockQuote.class, "EUROStockQuoteComponent");
-    }
-    
-    protected void tearDown() throws Exception {
-        scaDomain.close();
-        OSGiTestUtil.shutdownOSGiRuntime();
     }
     
     public void test() throws Exception {

Modified: incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/properties/PropertiesTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/properties/PropertiesTestCase.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/properties/PropertiesTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/properties/PropertiesTestCase.java Fri Sep 21 13:38:38 2007
@@ -18,45 +18,30 @@
  */
 package supplychain.properties;
 
-import junit.framework.TestCase;
-
-import org.apache.tuscany.sca.host.embedded.SCADomain;
-
 import stockquote.StockQuote;
-import util.OSGiTestUtil;
+import test.OSGiTestCase;
 
 /**
  * OSGi test program - procedural with business properties
  */
-public class PropertiesTestCase extends TestCase {
+public class PropertiesTestCase extends OSGiTestCase {
     
 
-    private SCADomain scaDomain;
     private StockQuote stockQuoteService;
-    private String compositeName;
     
     public PropertiesTestCase() {
-        super();
-        compositeName = "properties/properties-test.composite";
+        super("properties-test.composite", "properties");
     }
     
-    protected PropertiesTestCase(String compositeName) {
-        super();
-        this.compositeName = compositeName;
+    protected PropertiesTestCase(String compositeName, String contributionLocation) {
+        super(compositeName, contributionLocation);
     }
 
     protected void setUp() throws Exception {
-        
-        OSGiTestUtil.setUpOSGiTestRuntime();
-        
-        scaDomain = SCADomain.newInstance(compositeName);
+        super.setUp();
         stockQuoteService = scaDomain.getService(StockQuote.class, "StockQuoteComponent");
     }
     
-    protected void tearDown() throws Exception {
-        scaDomain.close();
-        OSGiTestUtil.shutdownOSGiRuntime();
-    }
     
     public void test() throws Exception {
     

Modified: incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/services/DSServicesTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/services/DSServicesTestCase.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/services/DSServicesTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/services/DSServicesTestCase.java Fri Sep 21 13:38:38 2007
@@ -26,7 +26,7 @@
 public class DSServicesTestCase extends SupplyChainTestCase {
 
     public DSServicesTestCase() {
-        super("services/services-ds-test.composite");
+        super("services-ds-test.composite", "services/ds");
     }
    
 }

Modified: incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/services/ServicesTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/services/ServicesTestCase.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/services/ServicesTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/services/ServicesTestCase.java Fri Sep 21 13:38:38 2007
@@ -26,7 +26,7 @@
 public class ServicesTestCase extends SupplyChainTestCase {
 
     public ServicesTestCase() {
-        super("services/services-test.composite");
+        super("services-test.composite", "services");
     }
    
 }

Modified: incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/version/DSVersionTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/version/DSVersionTestCase.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/version/DSVersionTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/version/DSVersionTestCase.java Fri Sep 21 13:38:38 2007
@@ -26,7 +26,7 @@
 public class DSVersionTestCase extends VersionedSupplyChainTestCase {
     
     public DSVersionTestCase() {
-        super("version/version-ds-test.composite");
+        super("version-ds-test.composite", "version/ds");
     }
     
     

Modified: incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/version/VersionTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/version/VersionTestCase.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/version/VersionTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/version/VersionTestCase.java Fri Sep 21 13:38:38 2007
@@ -26,7 +26,7 @@
 public  class VersionTestCase extends VersionedSupplyChainTestCase {
     
     public VersionTestCase() {
-        super("version/version-test.composite");
+        super("version-test.composite", "version");
     }
     
     

Modified: incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/wiring/DSWiring1TestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/wiring/DSWiring1TestCase.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/wiring/DSWiring1TestCase.java (original)
+++ incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/wiring/DSWiring1TestCase.java Fri Sep 21 13:38:38 2007
@@ -26,7 +26,7 @@
 public class DSWiring1TestCase extends SupplyChainTestCase {
 
     public DSWiring1TestCase() {
-        super("wiring/wiring-ds-test1.composite");
+        super("wiring-ds-test1.composite", "wiring/ds");
     }
     
     

Modified: incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/wiring/DSWiring2TestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/wiring/DSWiring2TestCase.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/wiring/DSWiring2TestCase.java (original)
+++ incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/wiring/DSWiring2TestCase.java Fri Sep 21 13:38:38 2007
@@ -26,7 +26,7 @@
 public class DSWiring2TestCase extends SupplyChainTestCase {
 
     public DSWiring2TestCase() {
-        super("wiring/wiring-ds-test2.composite");
+        super("wiring-ds-test2.composite", "wiring/ds");
     }
     
     

Modified: incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/wiring/Wiring1TestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/wiring/Wiring1TestCase.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/wiring/Wiring1TestCase.java (original)
+++ incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/wiring/Wiring1TestCase.java Fri Sep 21 13:38:38 2007
@@ -26,7 +26,7 @@
 public class Wiring1TestCase extends SupplyChainTestCase {
 
     public Wiring1TestCase() {
-        super("wiring/wiring-test1.composite");
+        super("wiring-test1.composite", "wiring");
     }
    
 }

Modified: incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/wiring/Wiring2TestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/wiring/Wiring2TestCase.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/wiring/Wiring2TestCase.java (original)
+++ incubator/tuscany/java/sca/itest/osgi-implementation/src/test/java/supplychain/wiring/Wiring2TestCase.java Fri Sep 21 13:38:38 2007
@@ -26,7 +26,7 @@
 public class Wiring2TestCase extends SupplyChainTestCase {
 
     public Wiring2TestCase() {
-        super("wiring/wiring-test2.composite");
+        super("wiring-test2.composite", "wiring");
     }
    
 }

Modified: incubator/tuscany/java/sca/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiClassReferenceModelResolver.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiClassReferenceModelResolver.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiClassReferenceModelResolver.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiClassReferenceModelResolver.java Fri Sep 21 13:38:38 2007
@@ -125,7 +125,7 @@
 
         initialized = true;
         try {
-            bundle = OSGiRuntime.getRuntime().findBundle(contribution.getLocation());
+            bundle = OSGiRuntime.findInstalledBundle(contribution.getLocation());
         } catch (Exception e) {
         }
     }

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java Fri Sep 21 13:38:38 2007
@@ -267,7 +267,7 @@
             // so add another registration
             ScopeContainer<Object> scopeContainer = getConversationalScopeContainer(wire);
 
-            if (scopeContainer != null) {
+            if (scopeContainer != null && currentConversationID != null) {
                 scopeContainer.addWrapperReference(currentConversationID, conversation.getConversationID());
             }
         }

Modified: incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaComponentContextProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaComponentContextProvider.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaComponentContextProvider.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaComponentContextProvider.java Fri Sep 21 13:38:38 2007
@@ -28,11 +28,15 @@
 import java.util.List;
 import java.util.Map;
 
+import org.apache.tuscany.sca.assembly.Binding;
+import org.apache.tuscany.sca.assembly.Component;
 import org.apache.tuscany.sca.assembly.ComponentProperty;
 import org.apache.tuscany.sca.assembly.ComponentReference;
 import org.apache.tuscany.sca.assembly.ComponentService;
+import org.apache.tuscany.sca.assembly.Implementation;
 import org.apache.tuscany.sca.assembly.Multiplicity;
 import org.apache.tuscany.sca.assembly.Reference;
+import org.apache.tuscany.sca.assembly.OptimizableBinding;
 import org.apache.tuscany.sca.context.ComponentContextFactory;
 import org.apache.tuscany.sca.context.RequestContextFactory;
 import org.apache.tuscany.sca.core.context.InstanceWrapper;
@@ -42,7 +46,12 @@
 import org.apache.tuscany.sca.core.invocation.CallbackWireObjectFactory;
 import org.apache.tuscany.sca.core.invocation.ProxyFactory;
 import org.apache.tuscany.sca.core.invocation.WireObjectFactory;
+import org.apache.tuscany.sca.core.scope.Scope;
+import org.apache.tuscany.sca.core.scope.ScopeContainer;
+import org.apache.tuscany.sca.core.scope.ScopedRuntimeComponent;
+import org.apache.tuscany.sca.core.scope.TargetResolutionException;
 import org.apache.tuscany.sca.databinding.DataBindingExtensionPoint;
+import org.apache.tuscany.sca.implementation.java.JavaImplementation;
 import org.apache.tuscany.sca.implementation.java.impl.JavaElementImpl;
 import org.apache.tuscany.sca.implementation.java.impl.JavaResourceImpl;
 import org.apache.tuscany.sca.implementation.java.injection.ConversationIDObjectFactory;
@@ -51,6 +60,7 @@
 import org.apache.tuscany.sca.implementation.java.introspect.impl.JavaIntrospectionHelper;
 import org.apache.tuscany.sca.interfacedef.Operation;
 import org.apache.tuscany.sca.interfacedef.java.impl.JavaInterfaceUtil;
+import org.apache.tuscany.sca.invocation.InvocationChain;
 import org.apache.tuscany.sca.invocation.Invoker;
 import org.apache.tuscany.sca.runtime.RuntimeComponent;
 import org.apache.tuscany.sca.runtime.RuntimeComponentReference;
@@ -183,10 +193,11 @@
                                 JavaIntrospectionHelper.getBusinessInterface(baseType, callableRefType);
                             factory =
                                 new CallableReferenceObjectFactory(businessInterface, component,
-                                                                   (RuntimeComponentReference)wireList.get(i).getSource().getContract(),
-                                                                   wireList.get(i).getSource().getBinding());
+                                                                   (RuntimeComponentReference)wireList.get(i)
+                                                                       .getSource().getContract(), wireList.get(i)
+                                                                       .getSource().getBinding());
                         } else {
-                            factory = createWireFactory(baseType, wireList.get(i));
+                            factory = createObjectFactory(baseType, wireList.get(i));
                         }
                         factories.add(factory);
                     }
@@ -205,7 +216,7 @@
                                 new CallableReferenceObjectFactory(businessInterface, component,
                                                                    (RuntimeComponentReference)componentReference, null);
                         } else {
-                            factory = createWireFactory(element.getType(), wireList.get(0));
+                            factory = createObjectFactory(element.getType(), wireList.get(0));
                         }
                         instanceFactoryProvider.setObjectFactory(element, factory);
                     }
@@ -260,7 +271,56 @@
         return new JavaImplementationInvoker(operation, method, component);
     }
 
-    private <B> WireObjectFactory<B> createWireFactory(Class<B> interfaze, RuntimeWire wire) {
+    private static class OptimizedObjectFactory<T> implements ObjectFactory<T> {
+        private ScopeContainer scopeContainer;
+
+        public OptimizedObjectFactory(ScopeContainer scopeContainer) {
+            super();
+            this.scopeContainer = scopeContainer;
+        }
+
+        public T getInstance() throws ObjectCreationException {
+            try {
+                return (T)scopeContainer.getWrapper(null).getInstance();
+            } catch (TargetResolutionException e) {
+                throw new ObjectCreationException(e);
+            }
+        }
+
+    }
+
+    private <B> ObjectFactory<B> createObjectFactory(Class<B> interfaze, RuntimeWire wire) {
+        boolean conversational = wire.getSource().getInterfaceContract().getInterface().isConversational();
+        Binding binding = wire.getSource().getBinding();
+        // Check if it's wireable binding for optimization
+        if (!conversational && binding instanceof OptimizableBinding) {
+            OptimizableBinding optimizableBinding = (OptimizableBinding)binding;
+            Component component = optimizableBinding.getTargetComponent();
+            if (component != null) {
+                Implementation implementation = component.getImplementation();
+                // Check if the target component is java component
+                if (implementation instanceof JavaImplementation) {
+                    JavaImplementation javaImplementation = (JavaImplementation)implementation;
+                    if (interfaze.isAssignableFrom(javaImplementation.getJavaClass())) {
+                        ScopedRuntimeComponent scopedComponent = (ScopedRuntimeComponent)component;
+                        ScopeContainer scopeContainer = scopedComponent.getScopeContainer();
+                        Scope scope = scopeContainer.getScope();
+                        if (scope == Scope.COMPOSITE || scope == Scope.STATELESS || scope == Scope.SYSTEM) {
+                            boolean optimizable = true;
+                            for (InvocationChain chain : wire.getInvocationChains()) {
+                                if (chain.getHeadInvoker() != chain.getTailInvoker()) {
+                                    optimizable = false;
+                                    break;
+                                }
+                            }
+                            if (optimizable) {
+                                return new OptimizedObjectFactory<B>(scopeContainer);
+                            }
+                        }
+                    }
+                }
+            }
+        }
         return new WireObjectFactory<B>(interfaze, wire, proxyFactory);
     }
 

Modified: incubator/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/context/OSGiAnnotations.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/context/OSGiAnnotations.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/context/OSGiAnnotations.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/context/OSGiAnnotations.java Fri Sep 21 13:38:38 2007
@@ -203,17 +203,18 @@
 
     /*
      * Get the annotation corresponding to an instance
-     * Note that this can be null since annotations are processed from implementation
-     * classes in bundles only if the class names are provided in <implementation.osgi/>
      * 
      */
     private JavaImplementation getAnnotationInfo(Object instance) {
-        for (Class clazz : javaAnnotationInfo.keySet()) {
-            if (clazz.isInstance(instance)) {
-                return javaAnnotationInfo.get(clazz);
-            }
-        }
-        
+    	
+    	// The simplest case where the implementation class was listed under the
+    	// classes attribute of <implementation.osgi/>, or this is the second call
+    	// to this method for the implementation class.
+    	JavaImplementation javaImpl = javaAnnotationInfo.get(instance.getClass());
+    	if (javaImpl != null)
+    		return javaImpl;
+    	
+        // Process annotations from the instance class.
         try {
             return processAnnotations(instance.getClass());
         } catch (IntrospectionException e) {

Modified: incubator/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiImplementationProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiImplementationProvider.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiImplementationProvider.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiImplementationProvider.java Fri Sep 21 13:38:38 2007
@@ -1109,8 +1109,9 @@
                 component.setScopeContainer(null);
                 ScopeContainer scopeContainer = scopeRegistry.getScopeContainer(runtimeComponent);
 
-                if (oldScopeContainer.getLifecycleState() == ScopeContainer.RUNNING)
+                if (oldScopeContainer != null && oldScopeContainer.getLifecycleState() == ScopeContainer.RUNNING) {
                     scopeContainer.start();
+                }
                 
                 component.setScopeContainer(scopeContainer);
             }

Modified: incubator/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiInstanceWrapper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiInstanceWrapper.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiInstanceWrapper.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiInstanceWrapper.java Fri Sep 21 13:38:38 2007
@@ -23,6 +23,7 @@
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Method;
 import java.util.Hashtable;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Random;
 import java.util.jar.JarOutputStream;
@@ -34,6 +35,7 @@
 import org.apache.tuscany.sca.core.scope.TargetInitializationException;
 import org.apache.tuscany.sca.implementation.osgi.context.OSGiAnnotations;
 import org.apache.tuscany.sca.interfacedef.Interface;
+import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
 import org.apache.tuscany.sca.runtime.EndpointReference;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
@@ -76,11 +78,44 @@
     
     public synchronized T getInstance(ComponentService service) throws TargetInitializationException {
         
+    	// If an instance corresponding to this service has already been created, return the instance.
         if (instanceInfoList.get(service) != null)
             return instanceInfoList.get(service).osgiInstance;
+        
+        // There is no strict relation between service and callback instances. The instance semantics
+        // actually applies to the component instance in SCA. But for OSGi services, the callback
+        // is just another OSGi service, and could correspond to any of the service instances in 
+        // the component. To implement the SCA scope semantics for callbacks, OSGi callbacks
+        // should also be made on the service object which implements the callback. The following code
+        // finds the first possible callback instance based on the interfaces implemented by the service 
+        // objects in this component. Note that the interfaces are checked by name rather than using
+        // instanceof since the class seen by Tuscany could be from a different classloader from that
+        // used by the bundle.
+        if (service.isCallback()) {
+        	Iterator<InstanceInfo<T>> instances = instanceInfoList.values().iterator();
+        	while (instances.hasNext()) {
+        		InstanceInfo<T> instanceInfo = instances.next();
+        		Interface interfaze = service.getInterfaceContract().getInterface();
+        		if (interfaze instanceof JavaInterface && ((JavaInterface)interfaze).getJavaClass() != null) {
+        			String interfaceName = ((JavaInterface)interfaze).getJavaClass().getName();
+        			Class[] interfaces = instanceInfo.osgiInstance.getClass().getInterfaces();
+        			for (Class clazz : interfaces) {
+        				if (clazz.getName().equals(interfaceName)) {
+                			return instanceInfo.osgiInstance;
+        				}
+        			}
+        			
+        		}
+        		    
+        	}
+        }
 
         Bundle refBundle = provider.startBundle();
         
+        // For scopes other than composite, the service object is obtained using a dummy reference
+        // bundle to guarantee that a new instance is created each time. This combined with the Tuscany
+        // scope container code guarantee SCA scope semantics for OSGi components as long as service
+        // factories are used.
         if (!annotationProcessor.getScope().equals(Scope.COMPOSITE)) {
             refBundle = getDummyReferenceBundle();
         }
@@ -111,44 +146,7 @@
         return instanceInfo.osgiInstance;
     }
     
-    public synchronized T getCallbackInstance(EndpointReference from, Interface callbackInterface) 
-            throws TargetInitializationException {
-        
-        if (instanceInfoList.get(callbackInterface) != null)
-            return instanceInfoList.get(callbackInterface).osgiInstance;
-
-        Bundle refBundle = provider.startBundle();
-        
-        if (!annotationProcessor.getScope().equals(Scope.COMPOSITE)) {
-            refBundle = getDummyReferenceBundle();
-        }
-        
-        InstanceInfo<T> instanceInfo = new InstanceInfo<T>();
-        
-
-        instanceInfo.osgiServiceReference = provider.getOSGiServiceReference(from, callbackInterface);
-        
-        instanceInfo.refBundleContext = refBundle.getBundleContext();
-        instanceInfo.osgiInstance = getInstanceObject(instanceInfo);
-        
-       
-        try {
-            
-            if (!isInitialized(instanceInfo.osgiInstance)) {
-
-                annotationProcessor.injectProperties(instanceInfo.osgiInstance);
-                callLifecycleMethod(instanceInfo.osgiInstance, Init.class); 
-                instanceInfo.isFirstInstance = true;
-            }
-
-            instanceInfoList.put(callbackInterface, instanceInfo);
-            
-        } catch (Exception e) {
-            throw new TargetInitializationException(e);
-        }
-        
-        return instanceInfo.osgiInstance;
-    }
+    
     
     // This method is provided purely to implement InstanceWrapper interface, and is never called.
     public T getInstance() {

Modified: incubator/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiTargetInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiTargetInvoker.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiTargetInvoker.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiTargetInvoker.java Fri Sep 21 13:38:38 2007
@@ -136,13 +136,8 @@
                 removeTemporaryConversationalComponentAfterCall = true;
             }
             
-
-            if (service != null) {
-                instance = wrapper.getInstance(service);
-            } else {
-                instance = wrapper.getCallbackInstance(to, operation.getInterface());
-            }
-
+            instance = wrapper.getInstance(service);
+            
             Method m = JavaInterfaceUtil.findMethod(instance.getClass(), operation);
 
             Object ret = invokeMethod(instance, m, msg);

Modified: incubator/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/xml/OSGiImplementation.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/xml/OSGiImplementation.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/xml/OSGiImplementation.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/xml/OSGiImplementation.java Fri Sep 21 13:38:38 2007
@@ -115,6 +115,14 @@
         return serviceCallbackProperties.get(serviceName);
     }
 
+    /**
+     * Since OSGi implementation annotations may not be processed until much later, leave it to
+     * the OSGi invoker to decide whether pass-by-reference is allowed.
+     * @return
+     */
+    public boolean isAllowsPassByReference() {
+        return true;
+    }
     
     public Object getOSGiBundle() {
         return osgiBundle;

Modified: incubator/tuscany/java/sca/modules/implementation-osgi/src/test/java/org/apache/tuscany/sca/implementation/osgi/xml/OSGiReadImplTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-osgi/src/test/java/org/apache/tuscany/sca/implementation/osgi/xml/OSGiReadImplTestCase.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-osgi/src/test/java/org/apache/tuscany/sca/implementation/osgi/xml/OSGiReadImplTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-osgi/src/test/java/org/apache/tuscany/sca/implementation/osgi/xml/OSGiReadImplTestCase.java Fri Sep 21 13:38:38 2007
@@ -85,7 +85,7 @@
         osgiProcessor = new OSGiImplementationProcessor(modelFactories);
         staxProcessors.addArtifactProcessor(osgiProcessor);
 
-        OSGiTestBundles.createBundle("target/OSGiTestService.jar", OSGiTestInterface.class, OSGiTestImpl.class);
+        OSGiTestBundles.createBundle("target/test-classes/OSGiTestService.jar", OSGiTestInterface.class, OSGiTestImpl.class);
 
     }
 

Modified: incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/EquinoxRuntime.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/EquinoxRuntime.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/EquinoxRuntime.java (original)
+++ incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/EquinoxRuntime.java Fri Sep 21 13:38:38 2007
@@ -93,6 +93,7 @@
                 // Ignore errors.
             }
         }
+        super.shutdown();
     }
 
 

Modified: incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/FelixRuntime.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/FelixRuntime.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/FelixRuntime.java (original)
+++ incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/FelixRuntime.java Fri Sep 21 13:38:38 2007
@@ -62,7 +62,7 @@
         
     }
     
-    private BundleContext startRuntime() throws Exception {
+    protected BundleContext startRuntime() throws Exception {
         
         if (bundleContext != null)
             return bundleContext;
@@ -183,6 +183,7 @@
             }            
             felix = null;
         }
+        super.shutdown();
     }
     
     @Override

Modified: incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/KnopflerfishRuntime.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/KnopflerfishRuntime.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/KnopflerfishRuntime.java (original)
+++ incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/KnopflerfishRuntime.java Fri Sep 21 13:38:38 2007
@@ -58,7 +58,7 @@
     //        the classpath which contains framework.jar. The entries in init.xargs starting with
     //        -install are assumed to be single-line entries with full bundle location.
     //
-    private BundleContext startRuntime() throws Exception {
+    protected BundleContext startRuntime() throws Exception {
         
         if (bundleContext != null)
             return bundleContext;
@@ -146,6 +146,7 @@
             }
             framework = null;
         }
+        super.shutdown();
         
     }
     

Modified: incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/OSGiRuntime.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/OSGiRuntime.java?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/OSGiRuntime.java (original)
+++ incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/OSGiRuntime.java Fri Sep 21 13:38:38 2007
@@ -30,18 +30,19 @@
 
 public abstract class OSGiRuntime {
     private static final Logger logger = Logger.getLogger(OSGiRuntime.class.getName());
-    private BundleContext bundleContext;
 
     public abstract BundleContext getBundleContext();
 
-    protected abstract void shutdown() throws Exception;
-
     public abstract boolean supportsBundleFragments();
-
-    private PackageAdmin packageAdmin;
-
+    
+    protected abstract BundleContext startRuntime() throws Exception;
+       
     private static OSGiRuntime instance;
-
+    
+    private BundleContext bundleContext;
+    
+    private PackageAdmin packageAdmin;
+    
     /**
      * System property org.apache.tuscany.implementation.osgi.runtime.OSGiRuntime can be set to the
      * name of the OSGiRuntime class (eg. EquinoxRuntime). If set, start this runtime and return the
@@ -52,26 +53,37 @@
      */
     public synchronized static OSGiRuntime getRuntime() throws Exception {
         if (instance != null) {
+        	
+        	if (instance.bundleContext == null) {
+        		instance.startRuntime();
+        		instance.initialize();
+        	}
             return instance;
         }
         String runtimeClassName = System.getProperty(OSGiRuntime.class.getName());
+        
+        if (instance != null)
+        	return instance;
 
         if (runtimeClassName != null) {
             try {
                 Class<?> runtimeClass = OSGiRuntime.class.getClassLoader().loadClass(runtimeClassName);
                 Method method = runtimeClass.getMethod("getInstance");
-                instance = (OSGiRuntime)method.invoke(null);
+                instance = (OSGiRuntime) method.invoke(null);
+                instance.initialize();
                 return instance;
-
+                
             } catch (Exception e) {
                 throw new BundleException("Could not start OSGi runtime " + runtimeClassName, e);
             }
         }
 
         try {
+            
             instance = EquinoxRuntime.getInstance();
+            instance.initialize();
             return instance;
-
+            
         } catch (ClassNotFoundException e) {
             // Ignore
         } catch (Throwable e) {
@@ -79,8 +91,11 @@
         }
 
         try {
+
             instance = FelixRuntime.getInstance();
+            instance.initialize();
             return instance;
+ 
         } catch (ClassNotFoundException e) {
             // Ignore
         } catch (Throwable e) {
@@ -88,8 +103,11 @@
         }
 
         try {
+       
             instance = KnopflerfishRuntime.getInstance();
+            instance.initialize();
             return instance;
+            
         } catch (ClassNotFoundException e) {
             // Ignore
         } catch (Throwable e) {
@@ -99,9 +117,16 @@
         throw new BundleException("Could not start OSGi runtime from the classpath");
     }
 
+
+    public void shutdown() throws Exception {
+    	
+    	bundleContext = null;
+    	packageAdmin = null;
+    }
+    
     private void initialize() {
-        if (bundleContext == null)
-            bundleContext = getBundleContext();
+    	
+        bundleContext = getBundleContext();
 
         if (bundleContext != null) {
 
@@ -117,8 +142,6 @@
 
     public Bundle findBundle(String bundleSymbolicName, String bundleVersion) {
 
-        initialize();
-
         if (bundleContext != null) {
             Bundle[] installedBundles = bundleContext.getBundles();
             for (Bundle bundle : installedBundles) {
@@ -130,11 +153,16 @@
         }
         return null;
     }
+    
+    public synchronized static Bundle findInstalledBundle(String bundleLocation) {
+    	if (instance != null) {
+    		return instance.findBundle(bundleLocation);
+    	}
+    	return null;
+    }
 
     public Bundle findBundle(String bundleLocation) {
 
-        initialize();
-
         if (bundleContext != null) {
             Bundle[] installedBundles = bundleContext.getBundles();
             for (Bundle bundle : installedBundles) {
@@ -147,8 +175,6 @@
     }
 
     public Bundle installBundle(String bundleLocation, InputStream inputStream) {
-
-        initialize();
 
         try {
             if (bundleContext != null) {

Modified: incubator/tuscany/java/sca/samples/osgi-supplychain/build.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/osgi-supplychain/build.xml?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/samples/osgi-supplychain/build.xml (original)
+++ incubator/tuscany/java/sca/samples/osgi-supplychain/build.xml Fri Sep 21 13:38:38 2007
@@ -37,11 +37,6 @@
         <copy todir="target/classes">
             <fileset dir="src/main/resources"/>
         </copy>
-        <jar destfile="target/${test.jar}" basedir="target/classes">
-            <manifest>
-                <attribute name="Main-Class" value="${test.class}" /> 
-            </manifest>
-        </jar>  
         <jar jarfile="target/classes/Customer.jar" manifest="target/classes/osgi/Customer.mf" >
             <fileset dir="target/classes" 
                      includes="supplychain/customer/Customer.class \
@@ -69,6 +64,39 @@
                                supplychain/OSGiBundleImpl.class \
                                supplychain/shipper/OSGiShipperImpl.class"
             />
+        </jar>  
+        <jar jarfile="target/classes/DSCustomer.jar" manifest="target/classes/osgi/ds/Customer.mf" >
+            <fileset dir="target/classes" 
+                     includes="supplychain/customer/Customer.class \
+                               osgi/ds/Customer.xml \
+                               supplychain/customer/OSGiCustomerComponentImpl.class"
+            />
+        </jar>  
+        <jar jarfile="target/classes/DSRetailer.jar" manifest="target/classes/osgi/ds/Retailer.mf" >
+            <fileset dir="target/classes" 
+                     includes="supplychain/retailer/Retailer.class \
+                               Vosgi/ds/Retailer.xml \
+                               supplychain/retailer/OSGiRetailerComponentImpl.class"
+            />
+        </jar>  
+        <jar jarfile="target/classes/DSWarehouse.jar" manifest="target/classes/osgi/ds/Warehouse.mf" >
+            <fileset dir="target/classes" 
+                     includes="supplychain/warehouse/Warehouse.class \
+                               osgi/ds/Warehouse.xml \
+                               supplychain/warehouse/OSGiWarehouseComponentImpl.class"
+            />
+        </jar>  
+        <jar jarfile="target/classes/DSShipper.jar" manifest="target/classes/osgi/ds/Shipper.mf" >
+            <fileset dir="target/classes" 
+                     includes="supplychain/shipper/Shipper.class \
+                               osgi/ds/Shipper.xml \
+                               supplychain/shipper/OSGiShipperComponentImpl.class"
+            />
+        </jar>  
+        <jar destfile="target/${test.jar}" basedir="target/classes">
+            <manifest>
+                <attribute name="Main-Class" value="${test.class}" /> 
+            </manifest>
         </jar>  
     </target>    
     

Modified: incubator/tuscany/java/sca/samples/osgi-supplychain/src/main/resources/supplychain.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/osgi-supplychain/src/main/resources/supplychain.composite?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/samples/osgi-supplychain/src/main/resources/supplychain.composite (original)
+++ incubator/tuscany/java/sca/samples/osgi-supplychain/src/main/resources/supplychain.composite Fri Sep 21 13:38:38 2007
@@ -26,7 +26,6 @@
 	
     <component name="CustomerComponent">
         <tuscany:implementation.osgi 
-            bundle="Customer" 
             bundleSymbolicName="supplychain.customer.Customer"          
         />
             
@@ -37,7 +36,6 @@
     <component name="RetailerComponent">
         <implementation.java class="supplychain.retailer.JavaRetailerComponentImpl" />
         <!--implementation.osgi
-            bundle="Retailer" 
             bundleSymbolicName="supplychain.retailer.Retailer" 
         /-->
         <reference name="warehouse" target="WarehouseComponent"/>
@@ -46,7 +44,6 @@
     <component name="WarehouseComponent">
         <implementation.java class="supplychain.warehouse.JavaWarehouseComponentImpl" />
         <!--implementation.osgi
-            bundle="Warehouse" 
             bundleSymbolicName="supplychain.warehouse.Warehouse" 
         /-->
         <reference name="shipper" target="ShipperComponent" />
@@ -54,7 +51,6 @@
 
     <component name="ShipperComponent">
         <tuscany:implementation.osgi
-            bundle="Shipper"
             bundleSymbolicName="supplychain.shipper.Shipper"   
         />
         <!--implementation.java class="supplychain.shipper.JavaShipperComponentImpl" /-->

Modified: incubator/tuscany/java/sca/samples/osgi-supplychain/src/main/resources/supplychain.ds.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/osgi-supplychain/src/main/resources/supplychain.ds.composite?rev=578261&r1=578260&r2=578261&view=diff
==============================================================================
--- incubator/tuscany/java/sca/samples/osgi-supplychain/src/main/resources/supplychain.ds.composite (original)
+++ incubator/tuscany/java/sca/samples/osgi-supplychain/src/main/resources/supplychain.ds.composite Fri Sep 21 13:38:38 2007
@@ -26,7 +26,6 @@
 	
     <component name="CustomerComponent">
         <tuscany:implementation.osgi 
-            bundle="Customer" 
             bundleSymbolicName="ds.supplychain.customer.Customer" 
         />
             
@@ -37,7 +36,6 @@
     <component name="RetailerComponent">
         <implementation.java class="supplychain.retailer.JavaRetailerComponentImpl" />
         <!--tuscany:implementation.osgi
-            bundle="Retailer" 
             bundleSymbolicName="ds.supplychain.retailer.Retailer" 
         /-->
         <reference name="warehouse" target="WarehouseComponent"/>
@@ -46,7 +44,6 @@
     <component name="WarehouseComponent">
         <implementation.java class="supplychain.warehouse.JavaWarehouseComponentImpl" />
         <!--implementation.osgi
-            bundle="Warehouse" 
             bundleSymbolicName="ds.supplychain.warehouse.Warehouse" 
         /-->
         <reference name="shipper" target="ShipperComponent" />
@@ -54,7 +51,6 @@
 
     <component name="ShipperComponent">
         <tuscany:implementation.osgi
-            bundle="Shipper" 
             bundleSymbolicName="ds.supplychain.shipper.Shipper" 
         />
         <!--implementation.java class="supplychain.shipper.JavaShipperComponentImpl" /-->



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org