Author: rfeng
Date: Sat Mar  1 23:36:10 2008
New Revision: 632719

URL: http://svn.apache.org/viewvc?rev=632719&view=rev
Log:
Fix the build break

Modified:
    
incubator/tuscany/java/sca/itest/contribution-classloader/contribution-test/src/test/java/org/apache/tuscany/sca/test/contribution/TuscanyClassloadingTestCaseFIXME.java

Modified: 
incubator/tuscany/java/sca/itest/contribution-classloader/contribution-test/src/test/java/org/apache/tuscany/sca/test/contribution/TuscanyClassloadingTestCaseFIXME.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/contribution-classloader/contribution-test/src/test/java/org/apache/tuscany/sca/test/contribution/TuscanyClassloadingTestCaseFIXME.java?rev=632719&r1=632718&r2=632719&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/itest/contribution-classloader/contribution-test/src/test/java/org/apache/tuscany/sca/test/contribution/TuscanyClassloadingTestCaseFIXME.java
 (original)
+++ 
incubator/tuscany/java/sca/itest/contribution-classloader/contribution-test/src/test/java/org/apache/tuscany/sca/test/contribution/TuscanyClassloadingTestCaseFIXME.java
 Sat Mar  1 23:36:10 2008
@@ -18,7 +18,6 @@
  */
 package org.apache.tuscany.sca.test.contribution;
 
-
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
@@ -31,7 +30,7 @@
 import java.util.List;
 
 import org.apache.tuscany.sca.assembly.Composite;
-import org.apache.tuscany.sca.contribution.util.ServiceDiscovery;
+import org.apache.tuscany.sca.extensibility.ServiceDiscovery;
 import org.apache.tuscany.sca.host.embedded.impl.EmbeddedSCADomain;
 import org.junit.After;
 import org.junit.Assert;
@@ -49,352 +48,256 @@
 // and this is going to be difficult to maintain
 // Second its usage of reflection requires the Tuscany implementation classes
 // to be made public and this breaks isolation between modules.
-
 public class TuscanyClassloadingTestCaseFIXME {
-       
-//     private static final int SCA_API = 1;
-//     private static final int TUSCANY_CORE_SPI = 2;
-//     private static final int TUSCANY_RUNTIME = 3;
-//     private static final int TUSCANY_EXTENSIONS = 4;
-//     private static final int TUSCANY_DEPENDENCIES = 0;
-       
-       
-       
-       private static final String[] scaApiJars = {
-               "sca-api"
-       };
-       private static final String[] tuscanyCoreSpiJars = {
-               "core-spi",
-               "interface",
-               "interface-java",
-               "interface-wsdl",
-               "assembly",
-               "policy",
-               "databinding",
-               "contribution",
-               "definitions"
-       };
-       private static final String[] tuscanyRuntimeJars = {
-               
-               "binding-sca-xml",
-               "binding-sca",
-               "assembly-java-dsl",
-               "assembly-xml",
-               "assembly-xsd",
-               "contribution-impl",
-               "contribution-java",
-               "contribution-namespace",
-               "core-databinding",
-               "core-spring",
-               "core",
-               "definitions-xml",
-               "domain-api",
-               "domain-impl",
-               "domain",
-               "extension-helper",
-               "host-embedded",
-               "interface-java-xml",
-               "interface-wsdl-xml",
-               "java2wsdl",
-               "node-api",
-               "node-impl",
-               "node",
-               "osgi-runtime",
-               "policy-logging",
-               "policy-security",
-               "policy-transaction",
-               "policy-xml",
-               "wsdl2java"
-       };
-       private static final String[] tuscanyExtensionJars = {
-               "binding-dwr",
-               "binding-ejb",
-               "binding-feed",
-               "binding-http",
-               "binding-jms",
-               "binding-jsonrpc",
-               "binding-notification",
-               "binding-rmi",
-               "binding-sca-axis2",
-               "binding-ws-axis2",
-               "binding-ws-xml",
-               "binding-ws",
-               "databinding-axiom",
-               "databinding-fastinfoset",
-               "databinding-jaxb",
-               "databinding-json",
-               "databinding-saxon",
-               "databinding-sdo-axiom",
-               "databinding-sdo",
-               "databinding-xmlbeans",
-               "host-http",
-               "host-jetty",
-               "host-rmi",
-               "host-tomcat",
-               "host-webapp",
-               "implementation-das.jar",
-               "implementation-data.jar",
-               "implementation-java-runtime",
-               "implementation-java-xml",
-               "implementation-java",
-               "implementation-node-runtime",
-               "implementation-node-xml",
-               "implementation-node",
-               "implementation-notification",
-               "implementation-osgi",
-               "implementation-resource",
-               "implementation-script",
-               "implementation-spring",
-               "implementation-xquery",
-               "contribution-osgi"
-       };
-       
-       
+
+    // private static final int SCA_API = 1;
+    // private static final int TUSCANY_CORE_SPI = 2;
+    // private static final int TUSCANY_RUNTIME = 3;
+    // private static final int TUSCANY_EXTENSIONS = 4;
+    // private static final int TUSCANY_DEPENDENCIES = 0;
+
+    private static final String[] scaApiJars = {"sca-api"};
+    private static final String[] tuscanyCoreSpiJars =
+        {"core-spi", "interface", "interface-java", "interface-wsdl", 
"assembly", "policy", "databinding",
+         "contribution", "definitions"};
+    private static final String[] tuscanyRuntimeJars =
+        {
+
+        "binding-sca-xml", "binding-sca", "assembly-java-dsl", "assembly-xml", 
"assembly-xsd", "contribution-impl",
+         "contribution-java", "contribution-namespace", "core-databinding", 
"core-spring", "core", "definitions-xml",
+         "domain-api", "domain-impl", "domain", "extension-helper", 
"host-embedded", "interface-java-xml",
+         "interface-wsdl-xml", "java2wsdl", "node-api", "node-impl", "node", 
"osgi-runtime", "policy-logging",
+         "policy-security", "policy-transaction", "policy-xml", "wsdl2java"};
+    private static final String[] tuscanyExtensionJars =
+        {"binding-dwr", "binding-ejb", "binding-feed", "binding-http", 
"binding-jms", "binding-jsonrpc",
+         "binding-notification", "binding-rmi", "binding-sca-axis2", 
"binding-ws-axis2", "binding-ws-xml",
+         "binding-ws", "databinding-axiom", "databinding-fastinfoset", 
"databinding-jaxb", "databinding-json",
+         "databinding-saxon", "databinding-sdo-axiom", "databinding-sdo", 
"databinding-xmlbeans", "host-http",
+         "host-jetty", "host-rmi", "host-tomcat", "host-webapp", 
"implementation-das.jar", "implementation-data.jar",
+         "implementation-java-runtime", "implementation-java-xml", 
"implementation-java",
+         "implementation-node-runtime", "implementation-node-xml", 
"implementation-node",
+         "implementation-notification", "implementation-osgi", 
"implementation-resource", "implementation-script",
+         "implementation-spring", "implementation-xquery", 
"contribution-osgi"};
+
     private Class<?> embeddedDomainClass;
     Object domain;
-    
+
     @Before
     public void setUp() throws Exception {
-       
+
         embeddedDomainClass = getEmbeddedDomainClass();
 
-       Constructor c = embeddedDomainClass.getConstructor(ClassLoader.class, 
String.class);
-       // Create an embedded domain
-       domain = c.newInstance(embeddedDomainClass.getClassLoader(), 
"http://localhost";);
-       
-       // Start the domain
-       invokeNoArgsMethod(domain, "start");
-       
-        
+        Constructor c = embeddedDomainClass.getConstructor(ClassLoader.class, 
String.class);
+        // Create an embedded domain
+        domain = c.newInstance(embeddedDomainClass.getClassLoader(), 
"http://localhost";);
+
+        // Start the domain
+        invokeNoArgsMethod(domain, "start");
+
     }
-       
 
-       @After
+    @After
     public void tearDown() throws Exception {
-               
 
-               // Stop the domain
-       invokeNoArgsMethod(domain, "stop");
+        // Stop the domain
+        invokeNoArgsMethod(domain, "stop");
 
-       }
+    }
 
+    /**
+     * Create a classloader hierarchy for Tuscany runtime
+     *     Dependencies <- SCA-API <- Core-SPI+ Runtime <- Extensions
+     * Load the embedded SCA domain class using the runtime classloader
+     * 
+     * @return embedded SCA domain class
+     * @throws Exception
+     */
+    private Class<?> getEmbeddedDomainClass() throws Exception {
 
-       /**
-        * Create a classloader hierarchy for Tuscany runtime
-        *     Dependencies <- SCA-API <- Core-SPI+ Runtime <- Extensions
-        * Load the embedded SCA domain class using the runtime classloader
-        * 
-        * @return embedded SCA domain class
-        * @throws Exception
-        */
-       private Class<?> getEmbeddedDomainClass() 
-           throws Exception {
-               
-               URL[] scaApiUrls;
-               URL[] runtimeUrls;
-               URL[] extensionUrls;
-               URL[] dependencyUrls;
-               
-               // When the test is run under Eclipse, the classloader for the 
test is
-               // sun.misc.Launcher$AppClassLoader. The first code path is 
taken.
-               // When the test is run under maven, the classloader for the 
test is
-               // org.apache.maven.surefire.booter.IsolatedClassLoader, which 
is a subclass
-               // of URLClassLoader. The second code path is taken.
-               if (!(this.getClass().getClassLoader() instanceof 
URLClassLoader)) {
-           String classPath = System.getProperty("java.class.path");  
-           String[] classPathEntries = 
classPath.split(System.getProperty("path.separator"));
-           HashSet<String> dependentJars = new HashSet<String>();
-            for (int i = 0; i < classPathEntries.length; i++) { 
-                   dependentJars.add(classPathEntries[i]);
+        URL[] scaApiUrls;
+        URL[] runtimeUrls;
+        URL[] extensionUrls;
+        URL[] dependencyUrls;
+
+        // When the test is run under Eclipse, the classloader for the test is
+        // sun.misc.Launcher$AppClassLoader. The first code path is taken.
+        // When the test is run under maven, the classloader for the test is
+        // org.apache.maven.surefire.booter.IsolatedClassLoader, which is a 
subclass
+        // of URLClassLoader. The second code path is taken.
+        if (!(this.getClass().getClassLoader() instanceof URLClassLoader)) {
+            String classPath = System.getProperty("java.class.path");
+            String[] classPathEntries = 
classPath.split(System.getProperty("path.separator"));
+            HashSet<String> dependentJars = new HashSet<String>();
+            for (int i = 0; i < classPathEntries.length; i++) {
+                dependentJars.add(classPathEntries[i]);
             }
-               
-                   scaApiUrls = getTuscanyClassLoaderURLs(
-                               classPathEntries, dependentJars, scaApiJars);
-                   runtimeUrls = getTuscanyClassLoaderURLs(
-                               classPathEntries, dependentJars, 
tuscanyCoreSpiJars, tuscanyRuntimeJars );
-                   extensionUrls = getTuscanyClassLoaderURLs(
-                               classPathEntries, dependentJars, 
tuscanyExtensionJars);
-                   dependencyUrls = getTuscanyClassLoaderURLs(
-                               classPathEntries, dependentJars);
-               }
-               else {
-                       HashSet<URL> dependentJars = new HashSet<URL>();
-                       URL[] classPathEntries = 
((URLClassLoader)this.getClass().getClassLoader()).getURLs();
-                       for (int i = 0; i < classPathEntries.length; i++) { 
-                   dependentJars.add(classPathEntries[i]);
+
+            scaApiUrls = getTuscanyClassLoaderURLs(classPathEntries, 
dependentJars, scaApiJars);
+            runtimeUrls =
+                getTuscanyClassLoaderURLs(classPathEntries, dependentJars, 
tuscanyCoreSpiJars, tuscanyRuntimeJars);
+            extensionUrls = getTuscanyClassLoaderURLs(classPathEntries, 
dependentJars, tuscanyExtensionJars);
+            dependencyUrls = getTuscanyClassLoaderURLs(classPathEntries, 
dependentJars);
+        } else {
+            HashSet<URL> dependentJars = new HashSet<URL>();
+            URL[] classPathEntries = 
((URLClassLoader)this.getClass().getClassLoader()).getURLs();
+            for (int i = 0; i < classPathEntries.length; i++) {
+                dependentJars.add(classPathEntries[i]);
             }
-                       scaApiUrls = getTuscanyClassLoaderURLs(
-                                       classPathEntries, dependentJars, 
scaApiJars);
-                           runtimeUrls = getTuscanyClassLoaderURLs(
-                                       classPathEntries, dependentJars, 
tuscanyCoreSpiJars, tuscanyRuntimeJars );
-                           extensionUrls = getTuscanyClassLoaderURLs(
-                                       classPathEntries, dependentJars, 
tuscanyExtensionJars);
-                           dependencyUrls = getTuscanyClassLoaderURLs(
-                                       classPathEntries, dependentJars);
-                       
-               }
-               
-               boolean useSingleClassLoader =  
-                       (scaApiUrls == null || scaApiUrls.length == 0) ||
-                       (runtimeUrls == null || runtimeUrls.length == 0) ||
-                       (extensionUrls == null || extensionUrls.length == 0) ||
-                       (dependencyUrls == null || dependencyUrls.length == 0);
-               
-       if (useSingleClassLoader) {
-               return EmbeddedSCADomain.class;
-       }
-       else {
-               
-               ClassLoader dependencyLoader = new 
URLClassLoader(dependencyUrls, null);
-               ClassLoader scaApiLoader = new URLClassLoader(scaApiUrls, 
dependencyLoader);
-               ClassLoader runtimeClassLoader = new 
URLClassLoader(runtimeUrls, scaApiLoader);
-               ClassLoader extensionClassLoader = new 
URLClassLoader(extensionUrls, runtimeClassLoader);
-               
-               Class<?> serviceDiscoveryClass = 
runtimeClassLoader.loadClass(ServiceDiscovery.class.getName());
-               Method getInstanceMethod = 
serviceDiscoveryClass.getMethod("getInstance");
-               Object serviceDiscoveryObj = getInstanceMethod.invoke(null);
-               Method registerClassLoaderMethod = 
serviceDiscoveryClass.getMethod("registerClassLoader", ClassLoader.class);
-               registerClassLoaderMethod.invoke(serviceDiscoveryObj, 
extensionClassLoader);
-               
-               
Thread.currentThread().setContextClassLoader(extensionClassLoader);
-               
-               return 
runtimeClassLoader.loadClass(EmbeddedSCADomain.class.getName());
-               
-       }
-       
-       }
-       
-
-       /**
-        * From the list of entries in the test classloader, match
-        * Tuscany jars corresponding to a classloader, and return the list
-        * of matching entries as URLs.
-        * This method is used when the test is run under eclipse, using 
CLASSPATH
-        * based application classloader.
-        * 
-        * @param classPathEntries List of entries on CLASSPATH
-        * @param dependentJars Complete set of jars, remove jars corresponding 
to this
-        *                      classloader from the set.
-        * @param jars List of Tuscany jars corresponding to this classloader
-        * @return Matching URLs for the classloader 
-        * @throws IOException
-        */
-       private URL[] getTuscanyClassLoaderURLs(
-                       String[] classPathEntries, 
-                       HashSet<String> dependentJars,
-                       String[]... jars) 
-       throws IOException {
-               
-               String pathSeparator = System.getProperty("file.separator");
-       HashSet<String> classPathEntrySet;
+            scaApiUrls = getTuscanyClassLoaderURLs(classPathEntries, 
dependentJars, scaApiJars);
+            runtimeUrls =
+                getTuscanyClassLoaderURLs(classPathEntries, dependentJars, 
tuscanyCoreSpiJars, tuscanyRuntimeJars);
+            extensionUrls = getTuscanyClassLoaderURLs(classPathEntries, 
dependentJars, tuscanyExtensionJars);
+            dependencyUrls = getTuscanyClassLoaderURLs(classPathEntries, 
dependentJars);
+
+        }
+
+        boolean useSingleClassLoader =
+            (scaApiUrls == null || scaApiUrls.length == 0) || (runtimeUrls == 
null || runtimeUrls.length == 0)
+                || (extensionUrls == null || extensionUrls.length == 0)
+                || (dependencyUrls == null || dependencyUrls.length == 0);
+
+        if (useSingleClassLoader) {
+            return EmbeddedSCADomain.class;
+        } else {
+
+            ClassLoader dependencyLoader = new URLClassLoader(dependencyUrls, 
null);
+            ClassLoader scaApiLoader = new URLClassLoader(scaApiUrls, 
dependencyLoader);
+            ClassLoader runtimeClassLoader = new URLClassLoader(runtimeUrls, 
scaApiLoader);
+            ClassLoader extensionClassLoader = new 
URLClassLoader(extensionUrls, runtimeClassLoader);
+
+            Class<?> serviceDiscoveryClass = 
runtimeClassLoader.loadClass(ServiceDiscovery.class.getName());
+            Method getInstanceMethod = 
serviceDiscoveryClass.getMethod("getInstance");
+            Object serviceDiscoveryObj = getInstanceMethod.invoke(null);
+            Method registerClassLoaderMethod =
+                serviceDiscoveryClass.getMethod("registerClassLoader", 
ClassLoader.class);
+            registerClassLoaderMethod.invoke(serviceDiscoveryObj, 
extensionClassLoader);
+
+            Thread.currentThread().setContextClassLoader(extensionClassLoader);
+
+            return 
runtimeClassLoader.loadClass(EmbeddedSCADomain.class.getName());
+
+        }
+
+    }
+
+    /**
+     * From the list of entries in the test classloader, match
+     * Tuscany jars corresponding to a classloader, and return the list
+     * of matching entries as URLs.
+     * This method is used when the test is run under eclipse, using CLASSPATH
+     * based application classloader.
+     * 
+     * @param classPathEntries List of entries on CLASSPATH
+     * @param dependentJars Complete set of jars, remove jars corresponding to 
this
+     *                      classloader from the set.
+     * @param jars List of Tuscany jars corresponding to this classloader
+     * @return Matching URLs for the classloader 
+     * @throws IOException
+     */
+    private URL[] getTuscanyClassLoaderURLs(String[] classPathEntries, 
HashSet<String> dependentJars, String[]... jars)
+        throws IOException {
+
+        String pathSeparator = System.getProperty("file.separator");
+        HashSet<String> classPathEntrySet;
 
         if (jars.length == 0)
-               classPathEntrySet = dependentJars;
+            classPathEntrySet = dependentJars;
         else {
-               classPathEntrySet = new HashSet<String>();
-        
-            for (int i = 0; i < classPathEntries.length; i++) { 
-            
-                   String classPathEntry = classPathEntries[i];
-                   for (int j = 0; j < jars.length; j++) {
-                       String[] jarList = jars[j];
-                           if (jarList != null) {
-                               for (int k = 0; k < jarList.length; k++) {
-                                       String jarName = "tuscany-" + 
jarList[k];
-                                       String alternateJarName = "modules" + 
pathSeparator + jarList[k];
-                                       if (classPathEntry.indexOf(jarName) >= 
0 ||
-                                                       
classPathEntry.indexOf(alternateJarName) >=0) {
-                                               
classPathEntrySet.add(classPathEntry);
-                                               
dependentJars.remove(classPathEntry);
-                                       }
-                                   }
-                               }
-                       }
-               }
-                       
+            classPathEntrySet = new HashSet<String>();
+
+            for (int i = 0; i < classPathEntries.length; i++) {
+
+                String classPathEntry = classPathEntries[i];
+                for (int j = 0; j < jars.length; j++) {
+                    String[] jarList = jars[j];
+                    if (jarList != null) {
+                        for (int k = 0; k < jarList.length; k++) {
+                            String jarName = "tuscany-" + jarList[k];
+                            String alternateJarName = "modules" + 
pathSeparator + jarList[k];
+                            if (classPathEntry.indexOf(jarName) >= 0 || 
classPathEntry.indexOf(alternateJarName) >= 0) {
+                                classPathEntrySet.add(classPathEntry);
+                                dependentJars.remove(classPathEntry);
+                            }
+                        }
+                    }
+                }
+            }
+
         }
         ArrayList<URL> urls = new ArrayList<URL>();
-               
+
         for (String fileName : classPathEntrySet) {
-               File file = new File((String)fileName);
-               if (!file.exists()) {
-                       throw new FileNotFoundException(fileName);
+            File file = new File((String)fileName);
+            if (!file.exists()) {
+                throw new FileNotFoundException(fileName);
+
+            } else {
+                urls.add(file.toURL());
 
             }
-               else {
-                               urls.add(file.toURL());
-                                       
-               }
         }
 
-        return (URL [])urls.toArray(new URL[urls.size()]);
-       }
-       
-       /**
-        * From the list of URLs of the test classloader, match
-        * Tuscany jars corresponding to a classloader, and return the matching 
URLs
-        * This method is used when the test is run under maven. The test 
classloader is
-        * org.apache.maven.surefire.booter.IsolatedClassLoader, which is a 
subclass
-        * of URLClassLoader
-        * 
-        * @param classPathEntries List of URLs from the test classloader
-        * @param dependentJars Complete set of jars, remove jars corresponding 
to this
-        *                      classloader from the set.
-        * @param jars List of Tuscany jars corresponding to this classloader
-        * @return Matching URLs for the classloader 
-        * @throws IOException
-        */
-       private URL[] getTuscanyClassLoaderURLs(
-                       URL[] classPathEntries, 
-                       HashSet<URL> dependentJars,
-                       String[]... jars) 
-       throws IOException {
-               
-               String pathSeparator = System.getProperty("file.separator");
-       HashSet<URL> classPathEntrySet;
+        return (URL[])urls.toArray(new URL[urls.size()]);
+    }
+
+    /**
+     * From the list of URLs of the test classloader, match
+     * Tuscany jars corresponding to a classloader, and return the matching 
URLs
+     * This method is used when the test is run under maven. The test 
classloader is
+     * org.apache.maven.surefire.booter.IsolatedClassLoader, which is a 
subclass
+     * of URLClassLoader
+     * 
+     * @param classPathEntries List of URLs from the test classloader
+     * @param dependentJars Complete set of jars, remove jars corresponding to 
this
+     *                      classloader from the set.
+     * @param jars List of Tuscany jars corresponding to this classloader
+     * @return Matching URLs for the classloader 
+     * @throws IOException
+     */
+    private URL[] getTuscanyClassLoaderURLs(URL[] classPathEntries, 
HashSet<URL> dependentJars, String[]... jars)
+        throws IOException {
+
+        String pathSeparator = System.getProperty("file.separator");
+        HashSet<URL> classPathEntrySet;
 
         if (jars.length == 0)
-               classPathEntrySet = dependentJars;
+            classPathEntrySet = dependentJars;
         else {
-               classPathEntrySet = new HashSet<URL>();
-        
-            for (int i = 0; i < classPathEntries.length; i++) { 
-            
-                   URL classPathEntry = classPathEntries[i];
-                   String classPathEntryStr = classPathEntry.getPath();
-                   for (int j = 0; j < jars.length; j++) {
-                       String[] jarList = jars[j];
-                           if (jarList != null) {
-                               for (int k = 0; k < jarList.length; k++) {
-                                       String jarName = "tuscany-" + 
jarList[k];
-                                       String alternateJarName = "modules" + 
pathSeparator + jarList[k];
-                                       if (classPathEntryStr.indexOf(jarName) 
>= 0 ||
-                                                       
classPathEntryStr.indexOf(alternateJarName) >=0) {
-                                               
classPathEntrySet.add(classPathEntry);
-                                               
dependentJars.remove(classPathEntry);
-                                       }
-                                   }
-                               }
-                       }
-               }
-                       
+            classPathEntrySet = new HashSet<URL>();
+
+            for (int i = 0; i < classPathEntries.length; i++) {
+
+                URL classPathEntry = classPathEntries[i];
+                String classPathEntryStr = classPathEntry.getPath();
+                for (int j = 0; j < jars.length; j++) {
+                    String[] jarList = jars[j];
+                    if (jarList != null) {
+                        for (int k = 0; k < jarList.length; k++) {
+                            String jarName = "tuscany-" + jarList[k];
+                            String alternateJarName = "modules" + 
pathSeparator + jarList[k];
+                            if (classPathEntryStr.indexOf(jarName) >= 0 || 
classPathEntryStr.indexOf(alternateJarName) >= 0) {
+                                classPathEntrySet.add(classPathEntry);
+                                dependentJars.remove(classPathEntry);
+                            }
+                        }
+                    }
+                }
+            }
+
         }
-        return (URL [])classPathEntrySet.toArray(new 
URL[classPathEntrySet.size()]);
-       }
+        return (URL[])classPathEntrySet.toArray(new 
URL[classPathEntrySet.size()]);
+    }
+
+    private Object invokeNoArgsMethod(Object obj, String methodName) throws 
Exception {
+
+        return obj.getClass().getMethod(methodName).invoke(obj);
+    }
+
+    private Object invokeOneArgMethod(Object obj, String methodName, Class 
argType, Object arg) throws Exception {
+
+        return obj.getClass().getMethod(methodName, argType).invoke(obj, arg);
+    }
 
-       private Object invokeNoArgsMethod(Object obj, String methodName) 
-           throws Exception {
-               
-               return obj.getClass().getMethod(methodName).invoke(obj);
-       }
-       
-
-       private Object invokeOneArgMethod(Object obj, String methodName, 
-                       Class argType, Object arg) throws Exception {
-               
-               return obj.getClass().getMethod(methodName, 
argType).invoke(obj, arg);
-       }
-   
     /**
      * 
      * Load Tuscany runtime using multiple classloaders, and run supplychain
@@ -402,71 +305,69 @@
      * 
      * @throws Exception
      */
-       @SuppressWarnings("unchecked")
-       @Test
+    @SuppressWarnings("unchecked")
+    @Test
     public void test() throws Exception {
-               
-               ClassLoader runtimeClassloader = 
embeddedDomainClass.getClassLoader();
-               
-               if (runtimeClassloader == this.getClass().getClassLoader()) {
-                       System.out.println("Runtime and test loaded using the 
same classloader " + runtimeClassloader);
-               }
-               else {
-                   System.out.println("Running test using separate Tuscany 
classloaders, runtime classloader=" + runtimeClassloader);
-                   ClassLoader apiClassLoader = 
runtimeClassloader.loadClass(ServiceReference.class.getName()).getClassLoader();
-                   Assert.assertTrue(apiClassLoader != runtimeClassloader);
-                   
-                   try {
-                               
runtimeClassloader.loadClass("org.apache.tuscany.sca.implementation.java.JavaImplementation");
-                               Assert.fail("Loaded extension class incorrectly 
from runtimeClassLoader");
-                       } catch (ClassNotFoundException e) {
-                       }
-                   
-                   
-               }
-               
-       // Contribute supplychain (as single contribution)
-       Object contributionService = invokeNoArgsMethod(domain, 
"getContributionService");
-       Method contributeMethod = 
contributionService.getClass().getMethod("contribute",
-           String.class, URL.class, boolean.class);
-           
-       String folderName = "../contribution-classes/target/classes"; 
-       String supplychainJarName = "CompleteSupplyChain";
-       URL supplyChainContribURL = new File(folderName + "/" + 
supplychainJarName + ".jar").toURL();
-       Object contribution = contributeMethod.invoke(contributionService, 
-                       "SupplyChain", supplyChainContribURL, true);
-       
-       Object composite  = ((List)invokeNoArgsMethod(contribution, 
"getDeployables")).get(0);
-       Object domainComposite = invokeNoArgsMethod(domain, 
"getDomainComposite");      
-       List includes = (List)invokeNoArgsMethod(domainComposite, 
"getIncludes");
-       includes.add(composite);
-       //Object compositeBuilder = invokeNoArgsMethod(domain, 
"getCompositeBuilder");
-       Object compositeActivator = invokeNoArgsMethod(domain, 
"getCompositeActivator");
-       
-       Class compositeClass = 
embeddedDomainClass.getClassLoader().loadClass(Composite.class.getName());
-       invokeOneArgMethod(domain, "buildComposite", compositeClass, composite);
-       invokeOneArgMethod(compositeActivator, "activate", compositeClass, 
composite);
-       invokeOneArgMethod(compositeActivator, "start", compositeClass, 
composite);
-       
-       // Get customer service 
-       Method getClassLoaderMethod = 
contribution.getClass().getMethod("getClassLoader");
-       ClassLoader classLoader = 
(ClassLoader)getClassLoaderMethod.invoke(contribution);
+
+        ClassLoader runtimeClassloader = embeddedDomainClass.getClassLoader();
+
+        if (runtimeClassloader == this.getClass().getClassLoader()) {
+            System.out.println("Runtime and test loaded using the same 
classloader " + runtimeClassloader);
+        } else {
+            System.out
+                .println("Running test using separate Tuscany classloaders, 
runtime classloader=" + runtimeClassloader);
+            ClassLoader apiClassLoader =
+                
runtimeClassloader.loadClass(ServiceReference.class.getName()).getClassLoader();
+            Assert.assertTrue(apiClassLoader != runtimeClassloader);
+
+            try {
+                
runtimeClassloader.loadClass("org.apache.tuscany.sca.implementation.java.JavaImplementation");
+                Assert.fail("Loaded extension class incorrectly from 
runtimeClassLoader");
+            } catch (ClassNotFoundException e) {
+            }
+
+        }
+
+        // Contribute supplychain (as single contribution)
+        Object contributionService = invokeNoArgsMethod(domain, 
"getContributionService");
+        Method contributeMethod =
+            contributionService.getClass().getMethod("contribute", 
String.class, URL.class, boolean.class);
+
+        String folderName = "../contribution-classes/target/classes";
+        String supplychainJarName = "CompleteSupplyChain";
+        URL supplyChainContribURL = new File(folderName + "/" + 
supplychainJarName + ".jar").toURL();
+        Object contribution = contributeMethod.invoke(contributionService, 
"SupplyChain", supplyChainContribURL, true);
+
+        Object composite = ((List)invokeNoArgsMethod(contribution, 
"getDeployables")).get(0);
+        Object domainComposite = invokeNoArgsMethod(domain, 
"getDomainComposite");
+        List includes = (List)invokeNoArgsMethod(domainComposite, 
"getIncludes");
+        includes.add(composite);
+        //Object compositeBuilder = invokeNoArgsMethod(domain, 
"getCompositeBuilder");
+        Object compositeActivator = invokeNoArgsMethod(domain, 
"getCompositeActivator");
+
+        Class compositeClass = 
embeddedDomainClass.getClassLoader().loadClass(Composite.class.getName());
+        invokeOneArgMethod(domain, "buildComposite", compositeClass, 
composite);
+        invokeOneArgMethod(compositeActivator, "activate", compositeClass, 
composite);
+        invokeOneArgMethod(compositeActivator, "start", compositeClass, 
composite);
+
+        // Get customer service 
+        Method getClassLoaderMethod = 
contribution.getClass().getMethod("getClassLoader");
+        ClassLoader classLoader = 
(ClassLoader)getClassLoaderMethod.invoke(contribution);
 
         Class customerClass = 
classLoader.loadClass("supplychain.customer.Customer");
-        Method getServiceMethod = embeddedDomainClass.getMethod("getService", 
-                       Class.class, String.class);        
+        Method getServiceMethod = embeddedDomainClass.getMethod("getService", 
Class.class, String.class);
         Object customer = getServiceMethod.invoke(domain, customerClass, 
"CustomerComponent");
-                
+
         // Invoke purchaseGoods
         Method m = customerClass.getMethod("purchaseGoods");
-        m.invoke(customer);       
+        m.invoke(customer);
 
         m = customerClass.getMethod("outstandingOrderCount");
-        
+
         int retries = 10;
         int outstandingCount = 1;
         while (retries-- > 0) {
-        
+
             outstandingCount = (int)(Integer)m.invoke(customer);
             if (outstandingCount == 0)
                 break;
@@ -474,10 +375,7 @@
                 Thread.sleep(100);
         }
         Assert.assertEquals(0, outstandingCount);
-        
-        
+
     }
-       
-       
-    
+
 }



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

Reply via email to