Author: rsivaram
Date: Sun Mar 16 12:59:48 2008
New Revision: 637634

URL: http://svn.apache.org/viewvc?rev=637634&view=rev
Log:
Classloading fixes for OSGi-based Tuscany

Added:
    
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/CalculatorImplementationPoliciesTestCase.java
    
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/CalculatorRmiTestCase.java
    
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/CalculatorScriptTestCase.java
    
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/HelloworldWsServiceJmsTestCase.java
    
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/HelloworldWsServiceSecureTestCase.java
    
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/HelloworldWsServiceTestCase.java
    
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/OSGiSupplyChainTestCase.java
    
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/TuscanySamplesUsingOldDomainTestCase.java
Modified:
    
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/main/java/org/apache/tuscany/sca/test/osgi/runtime/impl/FelixTestRuntime.java
    
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/harness/OSGiTuscanyTestHarness.java
    
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/harness/TestBundleActivator.java
    
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/resources/felix/felix.config.properties
    incubator/tuscany/java/sca/itest/osgi-tuscany/tuscany-3rdparty/pom.xml
    
incubator/tuscany/java/sca/modules/contribution-groovy/src/main/java/org/apache/tuscany/sca/contribution/groovy/GroovyModelResolver.java
    
incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/javabeans/JavaBeansDataBinding.java
    
incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/SCATestCaseRunner.java
    
incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/OSGiBundleActivator.java
    
incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationInterceptor.java

Modified: 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/main/java/org/apache/tuscany/sca/test/osgi/runtime/impl/FelixTestRuntime.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/main/java/org/apache/tuscany/sca/test/osgi/runtime/impl/FelixTestRuntime.java?rev=637634&r1=637633&r2=637634&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/main/java/org/apache/tuscany/sca/test/osgi/runtime/impl/FelixTestRuntime.java
 (original)
+++ 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/main/java/org/apache/tuscany/sca/test/osgi/runtime/impl/FelixTestRuntime.java
 Sun Mar 16 12:59:48 2008
@@ -105,7 +105,6 @@
                 "javax.xml.validation, " +
                 "javax.xml.xpath, " +
                 "javax.sql," +
-                "org.apache.xerces.jaxp.datatype, " +
                 "org.w3c.dom, " +
                 "org.xml.sax, " +
                 "org.xml.sax.ext, " +
@@ -118,6 +117,7 @@
                 "javax.naming.directory, " +
                 "javax.management, " + 
                 "sun.misc, " +
+                "javax.net, " +
                 "org.apache.felix.main";
         
         

Modified: 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/harness/OSGiTuscanyTestHarness.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/harness/OSGiTuscanyTestHarness.java?rev=637634&r1=637633&r2=637634&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/harness/OSGiTuscanyTestHarness.java
 (original)
+++ 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/harness/OSGiTuscanyTestHarness.java
 Sun Mar 16 12:59:48 2008
@@ -79,6 +79,13 @@
     public void runTest(String... testDirs) throws Exception {
         
         String mainTestDir = testDirs[0];
+        
+        File testDir = new File(mainTestDir + "/target/test-classes");
+        if (!testDir.exists()) {
+            System.err.println("Test directory " + testDir + " does not 
exist");
+            return;
+        }
+
         System.out.println("Run tests from : " + mainTestDir);
 
         tuscanyRuntime = TuscanyLoader.loadTuscanyIntoOSGi(bundleContext);

Modified: 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/harness/TestBundleActivator.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/harness/TestBundleActivator.java?rev=637634&r1=637633&r2=637634&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/harness/TestBundleActivator.java
 (original)
+++ 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/harness/TestBundleActivator.java
 Sun Mar 16 12:59:48 2008
@@ -19,71 +19,20 @@
  */
 package org.apache.tuscany.sca.test.osgi.harness;
 
-import java.net.URL;
-
-import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleActivator;
 import org.osgi.framework.BundleContext;
 
 
 /*
  * Bundle activator for running the Tuscany SCA tests under OSGi
- * Tuscany samples are run inside an OSGi container when the bundle is started.
  */
 public class TestBundleActivator implements BundleActivator {
     
-    private ClassLoader myContextClassLoader;
-    private ClassLoader origTCCL;
-
     public void start(BundleContext bundleContext) throws Exception {
         
-        origTCCL = Thread.currentThread().getContextClassLoader();
-        myContextClassLoader = new TestClassLoader(bundleContext.getBundle(), 
origTCCL);
-        Thread.currentThread().setContextClassLoader(myContextClassLoader);
-        
     }
 
     public void stop(BundleContext bundleContext) throws Exception {
-
-        if (Thread.currentThread().getContextClassLoader() == 
myContextClassLoader)
-            Thread.currentThread().setContextClassLoader(origTCCL);
     }
 
-
-    
-    private class TestClassLoader extends ClassLoader {
-        
-        private Bundle bundle;
-        
-        private TestClassLoader(Bundle bundle, ClassLoader parent) {
-            super(parent);
-            this.bundle = bundle;
-        }
-
-        @Override
-        public URL getResource(String resName) {
-            URL resource = getParent().getResource(resName);
-            if (resource == null) {
-                resource = bundle.getResource(resName);
-            
-            }
-            
-            return resource;
-        }
-
-        @Override
-        public Class<?> loadClass(String className) throws 
ClassNotFoundException {
-            Class clazz = findLoadedClass(className);            
-            if (clazz != null)
-                return clazz;
-
-            try {
-                return getParent().loadClass(className);                    
-            } catch (Exception e) {
-                return bundle.loadClass(className);
-            }
-        }
-        
-        
-    }
 }

Added: 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/CalculatorImplementationPoliciesTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/CalculatorImplementationPoliciesTestCase.java?rev=637634&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/CalculatorImplementationPoliciesTestCase.java
 (added)
+++ 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/CalculatorImplementationPoliciesTestCase.java
 Sun Mar 16 12:59:48 2008
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.sca.test.osgi.tuscany;
+
+
+import org.apache.tuscany.sca.test.osgi.harness.OSGiTuscanyTestHarness;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/*
+ * Test Tuscany running in an OSGi container
+ * 
+ * Run samples-calculator-implementation-policies
+ */
+public class CalculatorImplementationPoliciesTestCase {
+    
+
+    private OSGiTuscanyTestHarness testHarness;
+
+    @Before
+    public void setUp() throws Exception {
+        
+        testHarness = new OSGiTuscanyTestHarness();
+        testHarness.setUp();
+    }
+    
+
+    @After
+    public void tearDown() throws Exception {
+
+        if (testHarness != null) {
+            testHarness.tearDown();
+        }
+    }
+    
+
+    @Test
+    public void runTest() throws Exception {
+        
+        testHarness.runTest("../../../samples/" + 
"calculator-implementation-policies");
+        
+    }
+    
+}

Added: 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/CalculatorRmiTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/CalculatorRmiTestCase.java?rev=637634&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/CalculatorRmiTestCase.java
 (added)
+++ 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/CalculatorRmiTestCase.java
 Sun Mar 16 12:59:48 2008
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.sca.test.osgi.tuscany;
+
+
+import org.apache.tuscany.sca.test.osgi.harness.OSGiTuscanyTestHarness;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/*
+ * Test Tuscany running in an OSGi container
+ * 
+ * Run samples-calculator-rmi-reference and samples-calculator-rmi-service
+ */
+public class CalculatorRmiTestCase {
+    
+
+    private OSGiTuscanyTestHarness testHarness;
+
+    @Before
+    public void setUp() throws Exception {
+        
+        testHarness = new OSGiTuscanyTestHarness();
+        testHarness.setUp();
+    }
+    
+
+    @After
+    public void tearDown() throws Exception {
+
+        if (testHarness != null) {
+            testHarness.tearDown();
+        }
+    }
+    
+
+    @Test
+    public void runTest() throws Exception {
+        
+        testHarness.runTest("../../../samples/" + "calculator-rmi-reference");
+        testHarness.runTest("../../../samples/" + "calculator-rmi-service");
+        
+    }
+    
+}

Added: 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/CalculatorScriptTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/CalculatorScriptTestCase.java?rev=637634&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/CalculatorScriptTestCase.java
 (added)
+++ 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/CalculatorScriptTestCase.java
 Sun Mar 16 12:59:48 2008
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.sca.test.osgi.tuscany;
+
+
+import org.apache.tuscany.sca.test.osgi.harness.OSGiTuscanyTestHarness;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/*
+ * Test Tuscany running in an OSGi container
+ * 
+ * Run samples-calculator-script
+ */
+public class CalculatorScriptTestCase {
+    
+
+    private OSGiTuscanyTestHarness testHarness;
+
+    @Before
+    public void setUp() throws Exception {
+        
+        testHarness = new OSGiTuscanyTestHarness();
+        testHarness.setUp();
+    }
+    
+
+    @After
+    public void tearDown() throws Exception {
+
+        if (testHarness != null) {
+            testHarness.tearDown();
+        }
+    }
+    
+
+    @Test
+    public void runTest() throws Exception {
+        
+        testHarness.runTest("../../../samples/" + "calculator-script");
+        
+    }
+    
+}

Added: 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/HelloworldWsServiceJmsTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/HelloworldWsServiceJmsTestCase.java?rev=637634&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/HelloworldWsServiceJmsTestCase.java
 (added)
+++ 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/HelloworldWsServiceJmsTestCase.java
 Sun Mar 16 12:59:48 2008
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.sca.test.osgi.tuscany;
+
+
+import org.apache.tuscany.sca.test.osgi.harness.OSGiTuscanyTestHarness;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/*
+ * Test Tuscany running in an OSGi container
+ * 
+ * Run samples-helloworld-ws-service-jms
+ */
+public class HelloworldWsServiceJmsTestCase {
+    
+
+    private OSGiTuscanyTestHarness testHarness;
+
+    @Before
+    public void setUp() throws Exception {
+        
+        testHarness = new OSGiTuscanyTestHarness();
+        testHarness.setUp();
+    }
+    
+
+    @After
+    public void tearDown() throws Exception {
+
+        if (testHarness != null) {
+            testHarness.tearDown();
+        }
+    }
+    
+
+    @Test
+    public void runTest() throws Exception {
+        
+        testHarness.runTest("../../../samples/" + "helloworld-ws-service-jms");
+        
+    }
+    
+}

Added: 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/HelloworldWsServiceSecureTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/HelloworldWsServiceSecureTestCase.java?rev=637634&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/HelloworldWsServiceSecureTestCase.java
 (added)
+++ 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/HelloworldWsServiceSecureTestCase.java
 Sun Mar 16 12:59:48 2008
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.sca.test.osgi.tuscany;
+
+
+import org.apache.tuscany.sca.test.osgi.harness.OSGiTuscanyTestHarness;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/*
+ * Test Tuscany running in an OSGi container
+ * 
+ * Run samples-helloworld-ws-service-secure
+ */
+public class HelloworldWsServiceSecureTestCase {
+    
+
+    private OSGiTuscanyTestHarness testHarness;
+
+    @Before
+    public void setUp() throws Exception {
+        
+        testHarness = new OSGiTuscanyTestHarness();
+        testHarness.setUp();
+    }
+    
+
+    @After
+    public void tearDown() throws Exception {
+
+        if (testHarness != null) {
+            testHarness.tearDown();
+        }
+    }
+    
+
+    @Test
+    public void runTest() throws Exception {
+        
+        testHarness.runTest("../../../samples/" + 
"helloworld-ws-service-secure");
+        
+    }
+    
+}

Added: 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/HelloworldWsServiceTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/HelloworldWsServiceTestCase.java?rev=637634&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/HelloworldWsServiceTestCase.java
 (added)
+++ 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/HelloworldWsServiceTestCase.java
 Sun Mar 16 12:59:48 2008
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.sca.test.osgi.tuscany;
+
+
+import org.apache.tuscany.sca.test.osgi.harness.OSGiTuscanyTestHarness;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/*
+ * Test Tuscany running in an OSGi container
+ * 
+ * Run samples-helloworld-ws-service
+ */
+public class HelloworldWsServiceTestCase {
+    
+
+    private OSGiTuscanyTestHarness testHarness;
+
+    @Before
+    public void setUp() throws Exception {
+        
+        testHarness = new OSGiTuscanyTestHarness();
+        testHarness.setUp();
+    }
+    
+
+    @After
+    public void tearDown() throws Exception {
+
+        if (testHarness != null) {
+            testHarness.tearDown();
+        }
+    }
+    
+
+    @Test
+    public void runTest() throws Exception {
+        
+        testHarness.runTest("../../../samples/" + "helloworld-ws-service");
+        
+    }
+    
+}

Added: 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/OSGiSupplyChainTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/OSGiSupplyChainTestCase.java?rev=637634&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/OSGiSupplyChainTestCase.java
 (added)
+++ 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/OSGiSupplyChainTestCase.java
 Sun Mar 16 12:59:48 2008
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.sca.test.osgi.tuscany;
+
+
+import org.apache.tuscany.sca.test.osgi.harness.OSGiTuscanyTestHarness;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/*
+ * Test Tuscany running in an OSGi container
+ * 
+ * Run samples-osgi-supplychain
+ */
+public class OSGiSupplyChainTestCase {
+    
+
+    private OSGiTuscanyTestHarness testHarness;
+
+    @Before
+    public void setUp() throws Exception {
+        
+        testHarness = new OSGiTuscanyTestHarness();
+        testHarness.setUp();
+    }
+    
+
+    @After
+    public void tearDown() throws Exception {
+
+        if (testHarness != null) {
+            testHarness.tearDown();
+        }
+    }
+    
+
+    @Test
+    public void runTest() throws Exception {
+        
+        testHarness.runTest("../../../samples/" + "osgi-supplychain");
+        
+    }
+    
+}

Added: 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/TuscanySamplesUsingOldDomainTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/TuscanySamplesUsingOldDomainTestCase.java?rev=637634&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/TuscanySamplesUsingOldDomainTestCase.java
 (added)
+++ 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/java/org/apache/tuscany/sca/test/osgi/tuscany/TuscanySamplesUsingOldDomainTestCase.java
 Sun Mar 16 12:59:48 2008
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.sca.test.osgi.tuscany;
+
+
+import org.apache.tuscany.sca.test.osgi.harness.OSGiTuscanyTestHarness;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/*
+ * Test Tuscany running in an OSGi container
+ * 
+ * Run samples which use old domain code
+ */
+public class TuscanySamplesUsingOldDomainTestCase {
+    
+    
+    private static String[] SAMPLES = {
+                
+        "binding-notification-consumer",
+        "binding-notification-producer",
+        "calculator",
+        "implementation-composite",
+        "implementation-notification", 
+        "loanapplication", 
+        "quote-xquery",
+        "simple-bigbank", 
+        "simple-callback",
+        "supplychain"
+        
+    };
+    
+
+    private OSGiTuscanyTestHarness testHarness;
+
+    @Before
+    public void setUp() throws Exception {
+        
+        testHarness = new OSGiTuscanyTestHarness();
+        testHarness.setUp();
+    }
+    
+
+    @After
+    public void tearDown() throws Exception {
+
+        if (testHarness != null) {
+            testHarness.tearDown();
+            testHarness = null;
+        }
+    }
+    
+
+    @Test
+    public void runTestsUsingOldDomainCode() throws Exception {
+        
+        for (String testDir : SAMPLES) {
+            testHarness.runTest("../../../samples/" + testDir);
+        }
+    }
+    
+    
+}

Modified: 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/resources/felix/felix.config.properties
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/resources/felix/felix.config.properties?rev=637634&r1=637633&r2=637634&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/resources/felix/felix.config.properties
 (original)
+++ 
incubator/tuscany/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/test/resources/felix/felix.config.properties
 Sun Mar 16 12:59:48 2008
@@ -30,8 +30,9 @@
     
"file://${FELIX_DIR}/org.apache.felix.shell/1.1.0-SNAPSHOT/org.apache.felix.shell-1.1.0-SNAPSHOT.jar"
 \
     
"file://${FELIX_DIR}/org.apache.felix.shell.tui/1.1.0-SNAPSHOT/org.apache.felix.shell.tui-1.1.0-SNAPSHOT.jar"
 \
     
"file://${FELIX_DIR}/org.apache.felix.bundlerepository/1.1.0-SNAPSHOT/org.apache.felix.bundlerepository-1.1.0-SNAPSHOT.jar"
 \
-    
"file://${FELIX_DIR}/org.apache.felix.scr/1.0.0/org.apache.felix.scr-1.0.0.jar" 
\
-    
"file://${FELIX_DIR}/org.apache.felix.configadmin/1.0.0/org.apache.felix.configadmin-1.0.0.jar"
 
+    
"file://${FELIX_DIR}/org.apache.felix.scr/1.0.0/org.apache.felix.scr-1.0.0.jar" 
+    
+# 
"file://${FELIX_DIR}/org.apache.felix.configadmin/1.0.0/org.apache.felix.configadmin-1.0.0.jar"
 
 
 
 felix.startlevel.framework=1

Modified: incubator/tuscany/java/sca/itest/osgi-tuscany/tuscany-3rdparty/pom.xml
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/osgi-tuscany/tuscany-3rdparty/pom.xml?rev=637634&r1=637633&r2=637634&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/osgi-tuscany/tuscany-3rdparty/pom.xml 
(original)
+++ incubator/tuscany/java/sca/itest/osgi-tuscany/tuscany-3rdparty/pom.xml Sun 
Mar 16 12:59:48 2008
@@ -282,6 +282,17 @@
             <artifactId>tuscany-policy-security</artifactId>
             <version>1.2-incubating-SNAPSHOT</version>
         </dependency>
+        <dependency>
+            <groupId>org.apache.activemq</groupId>
+            <artifactId>apache-activemq</artifactId>
+            <version>4.1.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.mortbay.jetty</groupId>
+            <artifactId>jetty-util</artifactId>
+            <version>6.1.7</version>
+        </dependency>
+  
 
     </dependencies>
 

Modified: 
incubator/tuscany/java/sca/modules/contribution-groovy/src/main/java/org/apache/tuscany/sca/contribution/groovy/GroovyModelResolver.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-groovy/src/main/java/org/apache/tuscany/sca/contribution/groovy/GroovyModelResolver.java?rev=637634&r1=637633&r2=637634&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/contribution-groovy/src/main/java/org/apache/tuscany/sca/contribution/groovy/GroovyModelResolver.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/contribution-groovy/src/main/java/org/apache/tuscany/sca/contribution/groovy/GroovyModelResolver.java
 Sun Mar 16 12:59:48 2008
@@ -45,14 +45,14 @@
         ClassLoader cl = contribution.getClassLoader();
         if (!(cl instanceof GroovyClassLoader)) {
             // replace the contribution class loader with a Groovy one
-               // If the contribution does not have a classloader, use context 
classloader as parent
-               if (cl == null) cl = 
Thread.currentThread().getContextClassLoader();
+               // If the contribution does not have a classloader, use this 
classloader as parent
+               if (cl == null) cl = this.getClass().getClassLoader();          
  
             cl = new GroovyClassLoader(cl);
             contribution.setClassLoader(cl);
         }
         try {
 
-            ((GroovyClassLoader)cl).parseClass(new 
File(((GroovyArtifact)model).getArtifactURL().toURI()));
+            
((GroovyClassLoader)cl).parseClass(((GroovyArtifact)model).getArtifactURL().openStream());
 
         } catch (Exception e) {
             throw new RuntimeException(e);

Modified: 
incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/javabeans/JavaBeansDataBinding.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/javabeans/JavaBeansDataBinding.java?rev=637634&r1=637633&r2=637634&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/javabeans/JavaBeansDataBinding.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/javabeans/JavaBeansDataBinding.java
 Sun Mar 16 12:59:48 2008
@@ -114,6 +114,16 @@
                 try {
                     return Class.forName(desc.getName(), false, cl);
                 } catch (ClassNotFoundException e) {
+                    try {
+                        // For OSGi, use context classloader if the bundle 
classloader cannot load the class
+                        if (cl != 
Thread.currentThread().getContextClassLoader()) {
+                            return Class.forName(desc.getName(), false, 
Thread.currentThread().getContextClassLoader());
+                        }
+                    } catch (ClassNotFoundException e1) {
+                        // ignore
+                    } catch (NoClassDefFoundError e1) {
+                        // ignore
+                    }
                     return super.resolveClass(desc);
                 }
             }

Modified: 
incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/SCATestCaseRunner.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/SCATestCaseRunner.java?rev=637634&r1=637633&r2=637634&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/SCATestCaseRunner.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/SCATestCaseRunner.java
 Sun Mar 16 12:59:48 2008
@@ -52,35 +52,38 @@
      */
     public SCATestCaseRunner(Class testClass) {
         try {
+            ClassLoader tccl = Thread.currentThread().getContextClassLoader();
             classLoader = testClass.getClassLoader();
             if (classLoader instanceof URLClassLoader) {
                 URL[] urls = ((URLClassLoader)classLoader).getURLs();
                 classLoader = new URLClassLoader(urls, 
classLoader.getParent());
-            } else {
+            } else if (classLoader == tccl || classLoader.getParent() == tccl) 
{
                 classLoader = new URLClassLoader(new URL[0], classLoader);
+            } else {
+                classLoader = tccl;
             }
 
-            ClassLoader tccl = Thread.currentThread().getContextClassLoader();
             try {
                 Thread.currentThread().setContextClassLoader(classLoader);
 
                 testCaseClass = Class.forName(testClass.getName(), true, 
classLoader);
                 testCase = testCaseClass.newInstance();
+                ClassLoader testClassLoader = testCaseClass.getClassLoader();
 
-                junit3TestCaseClass = 
Class.forName("junit.framework.TestCase", true, classLoader);
+                junit3TestCaseClass = 
Class.forName("junit.framework.TestCase", true, testClassLoader);
 
-                testSuiteClass = Class.forName("junit.framework.TestSuite", 
true, classLoader);
+                testSuiteClass = Class.forName("junit.framework.TestSuite", 
true, testClassLoader);
                 Constructor testSuiteConstructor = 
testSuiteClass.getConstructor(Class.class);
                 testSuite = testSuiteConstructor.newInstance(testCaseClass);
 
-                testResultClass = Class.forName("junit.framework.TestResult", 
true, classLoader);
+                testResultClass = Class.forName("junit.framework.TestResult", 
true, testClassLoader);
 
                 try {
-                    beforeAnnotation = Class.forName("org.junit.Before", true, 
classLoader);
-                    afterAnnotation = Class.forName("org.junit.After", true, 
classLoader);
-                    beforeClassAnnotation = 
Class.forName("org.junit.BeforeClass", true, classLoader);
-                    afterClassAnnotation = 
Class.forName("org.junit.AfterClass", true, classLoader);
-                    junit4AdapterClass = 
Class.forName("junit.framework.JUnit4TestAdapter", true, classLoader);
+                    beforeAnnotation = Class.forName("org.junit.Before", true, 
testClassLoader);
+                    afterAnnotation = Class.forName("org.junit.After", true, 
testClassLoader);
+                    beforeClassAnnotation = 
Class.forName("org.junit.BeforeClass", true, testClassLoader);
+                    afterClassAnnotation = 
Class.forName("org.junit.AfterClass", true, testClassLoader);
+                    junit4AdapterClass = 
Class.forName("junit.framework.JUnit4TestAdapter", true, testClassLoader);
                 } catch (Exception e) {
                     // Unexpected
                     throw new AssertionError(e);

Modified: 
incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/OSGiBundleActivator.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/OSGiBundleActivator.java?rev=637634&r1=637633&r2=637634&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/OSGiBundleActivator.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/osgi-runtime/src/main/java/org/apache/tuscany/sca/osgi/runtime/OSGiBundleActivator.java
 Sun Mar 16 12:59:48 2008
@@ -40,7 +40,8 @@
        public void stop(BundleContext bundleContext) throws Exception {
                runtime.shutdown();
                
-               Thread.currentThread().setContextClassLoader(origTCCL);
+        if (Thread.currentThread().getContextClassLoader() == 
threadContextClassLoader)
+            Thread.currentThread().setContextClassLoader(origTCCL);
        }
        
        /**
@@ -173,27 +174,27 @@
                            bundles.remove(bundle);
                }
                
+        
                @Override
-               public Class<?> loadClass(String className) throws 
ClassNotFoundException {
-                       Class<?> clazz = null;
-                       synchronized (this) {
-                               for (Bundle bundle : bundles) {
-                                       try {
-                                               clazz = 
bundle.loadClass(className);
-                                               break;
-                                       } catch (ClassNotFoundException e) {
-                                       } catch (NoClassDefFoundError e) {
-                                       }
+        protected Class<?> findClass(String className) throws 
ClassNotFoundException {
+            Class<?> clazz = null;
+            synchronized (this) {
+                for (Bundle bundle : bundles) {
+                    try {
+                        clazz = bundle.loadClass(className);
+                        break;
+                    } catch (ClassNotFoundException e) {
+                    } catch (NoClassDefFoundError e) {
+                    }
+
+                }
+            }           
+            if (clazz != null) {
+                return clazz;
+            }
+            return super.findClass(className);
+        }
 
-                               }
-                       }                       
-                       if (clazz != null) {
-                           return clazz;
-                       }
-                       return super.loadClass(className);
-               }
-               
-               
 
                @Override
                @SuppressWarnings("unchecked")

Modified: 
incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationInterceptor.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationInterceptor.java?rev=637634&r1=637633&r2=637634&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationInterceptor.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationInterceptor.java
 Sun Mar 16 12:59:48 2008
@@ -62,7 +62,7 @@
         try {
             for (JaasAuthenticationPolicy policy : authenticationPolicies) {
                 CallbackHandler callbackHandler =
-                    
(CallbackHandler)Class.forName(policy.getCallbackHandlerClassName()).newInstance();
+                    
(CallbackHandler)policy.getCallbackHandlerClass().newInstance();
                 LoginContext lc = new 
LoginContext(policy.getConfigurationName(), callbackHandler);
                 lc.login();
                 // Subject subject = lc.getSubject();



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to