You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2007/05/17 07:21:16 UTC

svn commit: r538806 - in /incubator/tuscany/java/sca: itest/contribution/src/main/java/calculator/ itest/extended-api/src/test/java/org/apache/tuscany/sca/test/extended/ itest/recursive/src/main/java/composite/ itest/recursive/src/test/java/composite/ ...

Author: jsdelfino
Date: Wed May 16 22:21:15 2007
New Revision: 538806

URL: http://svn.apache.org/viewvc?view=rev&rev=538806
Log:
Changed some test cases to use the simpler form of SCADomain.newInstance(). Minor cleanup of SCADomain and DefaultSCADomain. Fixed reflection based construction of SCADomain to use the correct set of parameters. Added logic to use META-INF/sca-deployables as another hint to determine the location of an SCA contribution if the other hints fail.

Added:
    incubator/tuscany/java/sca/modules/binding-rmi/src/test/resources/RMIBindingTest.composite
      - copied unchanged from r538805, incubator/tuscany/java/sca/modules/binding-rmi/src/test/resources/META-INF/sca/RMIBindingTest.composite
Removed:
    incubator/tuscany/java/sca/modules/binding-rmi/src/test/resources/META-INF/sca/
Modified:
    incubator/tuscany/java/sca/itest/contribution/src/main/java/calculator/CalculatorClient.java
    incubator/tuscany/java/sca/itest/extended-api/src/test/java/org/apache/tuscany/sca/test/extended/ServiceLocateTestCase.java
    incubator/tuscany/java/sca/itest/recursive/src/main/java/composite/CompositeClient.java
    incubator/tuscany/java/sca/itest/recursive/src/test/java/composite/CompositeTestCase.java
    incubator/tuscany/java/sca/itest/recursive/src/test/java/sample/RecursiveCompositeTest.java
    incubator/tuscany/java/sca/itest/spec-api/src/test/java/org/apache/tuscany/sca/test/spec/ComponentContextTestCase.java
    incubator/tuscany/java/sca/modules/binding-rmi/src/test/java/org/apache/tuscany/sca/binding/rmi/BindingTestCase.java
    incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Contribution.java
    incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/SCADomain.java
    incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/SCADomainBean.java
    incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomain.java
    incubator/tuscany/java/sca/samples/calculator/src/test/java/calculator/CalculatorTestCase.java

Modified: incubator/tuscany/java/sca/itest/contribution/src/main/java/calculator/CalculatorClient.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/contribution/src/main/java/calculator/CalculatorClient.java?view=diff&rev=538806&r1=538805&r2=538806
==============================================================================
--- incubator/tuscany/java/sca/itest/contribution/src/main/java/calculator/CalculatorClient.java (original)
+++ incubator/tuscany/java/sca/itest/contribution/src/main/java/calculator/CalculatorClient.java Wed May 16 22:21:15 2007
@@ -28,7 +28,7 @@
 public class CalculatorClient {
     public static void main(String[] args) throws Exception {
 
-        SCADomain domain = SCADomain.newInstance("http://calc", ".", "Calculator.composite");
+        SCADomain domain = SCADomain.newInstance("Calculator.composite");
         
         CalculatorService calculatorService = domain.getService(CalculatorService.class,
                                                                                 "CalculatorServiceComponent");

Modified: incubator/tuscany/java/sca/itest/extended-api/src/test/java/org/apache/tuscany/sca/test/extended/ServiceLocateTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/extended-api/src/test/java/org/apache/tuscany/sca/test/extended/ServiceLocateTestCase.java?view=diff&rev=538806&r1=538805&r2=538806
==============================================================================
--- incubator/tuscany/java/sca/itest/extended-api/src/test/java/org/apache/tuscany/sca/test/extended/ServiceLocateTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/extended-api/src/test/java/org/apache/tuscany/sca/test/extended/ServiceLocateTestCase.java Wed May 16 22:21:15 2007
@@ -49,7 +49,7 @@
 
     @Before
     public void init() throws Exception {
-        domain = SCADomain.newInstance("sca://local", ".", "BasicService.composite", "MathService.composite");
+        domain = SCADomain.newInstance("http://localhost", "/", "BasicService.composite", "MathService.composite");
     }
 
     @After

Modified: incubator/tuscany/java/sca/itest/recursive/src/main/java/composite/CompositeClient.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/recursive/src/main/java/composite/CompositeClient.java?view=diff&rev=538806&r1=538805&r2=538806
==============================================================================
--- incubator/tuscany/java/sca/itest/recursive/src/main/java/composite/CompositeClient.java (original)
+++ incubator/tuscany/java/sca/itest/recursive/src/main/java/composite/CompositeClient.java Wed May 16 22:21:15 2007
@@ -29,7 +29,7 @@
 public class CompositeClient {
 
     public static void main(String[] args) throws Exception {
-    	SCADomain domain = SCADomain.newInstance("http://localhost", ".", "OuterComposite.composite");
+    	SCADomain domain = SCADomain.newInstance("OuterComposite.composite");
     	
         Source source = domain.getService(Source.class, "SourceComponent");
         

Modified: incubator/tuscany/java/sca/itest/recursive/src/test/java/composite/CompositeTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/recursive/src/test/java/composite/CompositeTestCase.java?view=diff&rev=538806&r1=538805&r2=538806
==============================================================================
--- incubator/tuscany/java/sca/itest/recursive/src/test/java/composite/CompositeTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/recursive/src/test/java/composite/CompositeTestCase.java Wed May 16 22:21:15 2007
@@ -28,7 +28,7 @@
     private Source source;
 
     protected void setUp() throws Exception {
-        domain = SCADomain.newInstance("http://test", ".", "OuterComposite.composite");
+        domain = SCADomain.newInstance("OuterComposite.composite");
         source = domain.getService(Source.class, "SourceComponent");
     }
     

Modified: incubator/tuscany/java/sca/itest/recursive/src/test/java/sample/RecursiveCompositeTest.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/recursive/src/test/java/sample/RecursiveCompositeTest.java?view=diff&rev=538806&r1=538805&r2=538806
==============================================================================
--- incubator/tuscany/java/sca/itest/recursive/src/test/java/sample/RecursiveCompositeTest.java (original)
+++ incubator/tuscany/java/sca/itest/recursive/src/test/java/sample/RecursiveCompositeTest.java Wed May 16 22:21:15 2007
@@ -28,7 +28,7 @@
     private Service1 tracker, tracker2;
 
     protected void setUp() throws Exception {
-        domain = SCADomain.newInstance("sca//default", ".", "Composite1.composite", "Composite2.composite");
+        domain = SCADomain.newInstance("http://localhost", "/", "Composite1.composite", "Composite2.composite");
         tracker = domain.getService(Service1.class, "ComponentC");
         tracker2 = domain.getService(Service1.class, "ComponentB");
 

Modified: incubator/tuscany/java/sca/itest/spec-api/src/test/java/org/apache/tuscany/sca/test/spec/ComponentContextTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/spec-api/src/test/java/org/apache/tuscany/sca/test/spec/ComponentContextTestCase.java?view=diff&rev=538806&r1=538805&r2=538806
==============================================================================
--- incubator/tuscany/java/sca/itest/spec-api/src/test/java/org/apache/tuscany/sca/test/spec/ComponentContextTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/spec-api/src/test/java/org/apache/tuscany/sca/test/spec/ComponentContextTestCase.java Wed May 16 22:21:15 2007
@@ -43,7 +43,7 @@
 
     @Before
     public void init() throws Exception {
-        domain = SCADomain.newInstance("sca://local", ".", "BasicService.composite", "MathService.composite");
+        domain = SCADomain.newInstance("http://localhost", "/", "BasicService.composite", "MathService.composite");
     }
 
     @After

Modified: incubator/tuscany/java/sca/modules/binding-rmi/src/test/java/org/apache/tuscany/sca/binding/rmi/BindingTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-rmi/src/test/java/org/apache/tuscany/sca/binding/rmi/BindingTestCase.java?view=diff&rev=538806&r1=538805&r2=538806
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-rmi/src/test/java/org/apache/tuscany/sca/binding/rmi/BindingTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/binding-rmi/src/test/java/org/apache/tuscany/sca/binding/rmi/BindingTestCase.java Wed May 16 22:21:15 2007
@@ -46,7 +46,7 @@
     
     @BeforeClass
     public static void init() throws Exception {
-        domain = SCADomain.newInstance("http://rmi.hello", ".", "META-INF/sca/RMIBindingTest.composite");
+        domain = SCADomain.newInstance("RMIBindingTest.composite");
         helloWorldRmiService = 
             domain.getService(HelloWorldRmiService.class, "HelloWorldRmiServiceComponent");
   }

Modified: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Contribution.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Contribution.java?view=diff&rev=538806&r1=538805&r2=538806
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Contribution.java (original)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Contribution.java Wed May 16 22:21:15 2007
@@ -32,6 +32,7 @@
 public interface Contribution extends Artifact {
     String SCA_CONTRIBUTION_META = "META-INF/sca-contribution.xml";
     String SCA_CONTRIBUTION_GENERATED_META = "META-INF/sca-contribution-generated.xml";
+    String SCA_CONTRIBUTION_DEPLOYABLES = "META-INF/sca-deployables";
 
     
     /**

Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/SCADomain.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/SCADomain.java?view=diff&rev=538806&r1=538805&r2=538806
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/SCADomain.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/SCADomain.java Wed May 16 22:21:15 2007
@@ -38,6 +38,8 @@
  * @version $Rev$ $Date$
  */
 public abstract class SCADomain {
+    
+    final static String LOCAL_DOMAIN_URI = "http://localhost";
 
     /**
      * Static variable to hold the most recent instance of SCADomain
@@ -54,7 +56,7 @@
      * @return
      */
     public static SCADomain newInstance() {
-        return createNewInstance("http://localhost", null);
+        return createNewInstance(LOCAL_DOMAIN_URI, null);
     }
     
     /**
@@ -65,7 +67,7 @@
      * @return
      */
     public static SCADomain newInstance(String composite) {
-        return createNewInstance("http://localhost", ".", composite);
+        return createNewInstance(LOCAL_DOMAIN_URI, "/", composite);
     }
     
     /**
@@ -86,7 +88,7 @@
      * 
      * @param domainInstance the instance to be removed
      */
-    // TODO: Adding this as temporary support for the "connect" API
+    // FIXME: Adding this as temporary support for the "connect" API
     public static void removeInstance(SCADomain domainInstance) {
         theDomain = null;
     }
@@ -97,7 +99,7 @@
      * @param domainURI the URI of the SCA domain
      * @return
      */
-    // TODO : this is a temporary implementation to get the capability working
+    // FIXME : this is a temporary implementation to get the capability working
     public static SCADomain connect(String domainURI) {
         return theDomain;
     }
@@ -207,9 +209,11 @@
         SCADomain domain = null;
 
         try {
+            // Determine the runtime and application classloader
             final ClassLoader runtimeClassLoader = SCADomain.class.getClassLoader();
             final ClassLoader applicationClassLoader = Thread.currentThread().getContextClassLoader();
-
+            
+            // Discover the SCADomain implementation
             final String name = SCADomain.class.getName();
             String className = AccessController.doPrivileged(new PrivilegedAction<String>() {
                 public String run() {
@@ -220,22 +224,41 @@
             if (className == null) {
                 className = getServiceName(runtimeClassLoader, name);
             }
+            
             if (className == null) {
+                
+                // Create a default SCA domain implementation
                 domain =
-                    new DefaultSCADomain(runtimeClassLoader, applicationClassLoader, domainURI, contributionLocation,
+                    new DefaultSCADomain(runtimeClassLoader,
+                                         applicationClassLoader,
+                                         domainURI,
+                                         contributionLocation,
                                          composites);
             } else {
+                
+                // Create an instance of the discovered SCA domain implementation
                 Class cls = Class.forName(className, true, runtimeClassLoader);
-                Constructor<?> constructor = cls.getConstructor(String.class, String.class, String[].class);
-                domain =
-                    (SCADomain)constructor.newInstance(runtimeClassLoader,
-                                                       applicationClassLoader,
-                                                       domainURI,
-                                                       contributionLocation,
-                                                       composites);
+                Constructor<?> constructor = null;
+                try {
+                    constructor = cls.getConstructor(ClassLoader.class, ClassLoader.class,
+                                                     String.class, String.class, String[].class);
+                } catch (NoSuchMethodException e) {}
+                if (constructor != null) {
+                    domain = (SCADomain)constructor.newInstance(runtimeClassLoader,
+                                                                applicationClassLoader,
+                                                                domainURI,
+                                                                contributionLocation,
+                                                                composites);
+                } else {
+                    
+                    constructor = cls.getConstructor(ClassLoader.class, String.class);
+                    domain = (SCADomain)constructor.newInstance(runtimeClassLoader, domainURI);
+                }
             }
-            // TODO: tempoarary support for connect() API
+            
+            // FIXME: temporary support for connect() API
             theDomain = domain;
+            
             return domain;
 
         } catch (Exception e) {

Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/SCADomainBean.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/SCADomainBean.java?view=diff&rev=538806&r1=538805&r2=538806
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/SCADomainBean.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/SCADomainBean.java Wed May 16 22:21:15 2007
@@ -26,8 +26,8 @@
     
     private SCADomain instance;
     
-    private String uri = "http://localhost";
-    private String location = ".";
+    private String uri = LOCAL_DOMAIN_URI;
+    private String location = "/";
     private String[] composites;
 
     /**

Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomain.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomain.java?view=diff&rev=538806&r1=538805&r2=538806
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomain.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomain.java Wed May 16 22:21:15 2007
@@ -93,7 +93,7 @@
         ContributionService contributionService = runtime.getContributionService();
         URL contributionURL;
         try {
-            contributionURL = getContributionLocation(location, this.composites, applicationClassLoader);
+            contributionURL = getContributionLocation(applicationClassLoader, location, this.composites);
         } catch (MalformedURLException e) {
             throw new ServiceRuntimeException(e);
         }
@@ -194,7 +194,7 @@
      * @return
      * @throws MalformedURLException
      */
-    private URL getContributionLocation(String contributionPath, String[] composites, ClassLoader classLoader)
+    private URL getContributionLocation(ClassLoader classLoader, String contributionPath, String[] composites)
         throws MalformedURLException {
         if (contributionPath != null && contributionPath.length() > 0) {
             URI contributionURI = URI.create(contributionPath);
@@ -206,44 +206,53 @@
         String contributionArtifactPath = null;
         URL contributionArtifactURL = null;
         if (composites != null && composites.length > 0 && composites[0].length() > 0) {
-            //here the scaDomain was started with a reference to a composite file
+
+            // Here the SCADomain was started with a reference to a composite file
             contributionArtifactPath = composites[0];
             contributionArtifactURL = classLoader.getResource(contributionArtifactPath);
             if (contributionArtifactURL == null) {
                 throw new IllegalArgumentException("Composite not found: " + contributionArtifactPath);
             }
-        }else {
-            //here the scaDomain was started without any reference to a composite file
-            //we are going to look for a sca-contribution.xml or sca-contribution-generated.xml
+        } else {
+            
+            // Here the SCADomain was started without any reference to a composite file
+            // We are going to look for an sca-contribution.xml or sca-contribution-generated.xml
             contributionArtifactPath = Contribution.SCA_CONTRIBUTION_META;
             contributionArtifactURL = classLoader.getResource(contributionArtifactPath);
+            
             if( contributionArtifactURL == null ) {
                 contributionArtifactPath = Contribution.SCA_CONTRIBUTION_GENERATED_META;
                 contributionArtifactURL = classLoader.getResource(contributionArtifactPath);
             }
+            
+            // Look for META-INF/sca-deployables
+            if (contributionArtifactURL == null) {
+                contributionArtifactPath = Contribution.SCA_CONTRIBUTION_DEPLOYABLES;
+                contributionArtifactURL = classLoader.getResource(contributionArtifactPath);
+            }
         }
-
+        
         if (contributionArtifactURL == null) {
-            throw new IllegalArgumentException("Can't determine contribution deployables. Either specify a composite file, or use a sca-contribution.xml file to specify the deployables.");
+            throw new IllegalArgumentException("Can't determine contribution deployables. Either specify a composite file, or use an sca-contribution.xml file to specify the deployables.");
         }
 
         URL contributionURL = null;
         // "jar:file://....../something.jar!/a/b/c/app.composite"
         try {
-            String scdlUrl = contributionArtifactURL.toExternalForm();
+            String url = contributionArtifactURL.toExternalForm();
             String protocol = contributionArtifactURL.getProtocol();
             if ("file".equals(protocol)) {
                 // directory contribution
-                if (scdlUrl.endsWith(contributionArtifactPath)) {
-                    String location = scdlUrl.substring(0, scdlUrl.lastIndexOf(contributionArtifactPath));
+                if (url.endsWith(contributionArtifactPath)) {
+                    String location = url.substring(0, url.lastIndexOf(contributionArtifactPath));
                     // workaround from evil url/uri form maven
                     contributionURL = FileHelper.toFile(new URL(location)).toURI().toURL();
                 }
 
             } else if ("jar".equals(protocol)) {
                 // jar contribution
-                String location = scdlUrl.substring(4, scdlUrl.lastIndexOf("!/"));
-                // workaround from evil url/uri form maven
+                String location = url.substring(4, url.lastIndexOf("!/"));
+                // workaround for evil url/uri from maven
                 contributionURL = FileHelper.toFile(new URL(location)).toURI().toURL();
             }
         } catch (MalformedURLException mfe) {

Modified: incubator/tuscany/java/sca/samples/calculator/src/test/java/calculator/CalculatorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/calculator/src/test/java/calculator/CalculatorTestCase.java?view=diff&rev=538806&r1=538805&r2=538806
==============================================================================
--- incubator/tuscany/java/sca/samples/calculator/src/test/java/calculator/CalculatorTestCase.java (original)
+++ incubator/tuscany/java/sca/samples/calculator/src/test/java/calculator/CalculatorTestCase.java Wed May 16 22:21:15 2007
@@ -31,7 +31,7 @@
     private SCADomain scaDomain;
 
     protected void setUp() throws Exception {
-        scaDomain = SCADomain.newInstance("http://calc/domain", ".", "Calculator.composite");
+        scaDomain = SCADomain.newInstance("Calculator.composite");
         calculatorService = scaDomain.getService(CalculatorService.class, "CalculatorServiceComponent");
     }
 



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