You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jb...@apache.org on 2006/08/29 21:26:05 UTC

svn commit: r438171 - in /incubator/tuscany/java/sca/core/src: main/java/org/apache/tuscany/core/implementation/composite/ test/java/org/apache/tuscany/core/implementation/composite/

Author: jboynes
Date: Tue Aug 29 12:26:05 2006
New Revision: 438171

URL: http://svn.apache.org/viewvc?rev=438171&view=rev
Log:
apply patch from Ignacio Silva-Lupe for TUSCANY-673

Modified:
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/composite/ImplementationCompositeLoader.java
    incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/composite/ImplementationCompositeLoaderTestCase.java

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/composite/ImplementationCompositeLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/composite/ImplementationCompositeLoader.java?rev=438171&r1=438170&r2=438171&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/composite/ImplementationCompositeLoader.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/composite/ImplementationCompositeLoader.java Tue Aug 29 12:26:05 2006
@@ -18,21 +18,22 @@
  */
 package org.apache.tuscany.core.implementation.composite;
 
+import java.net.URL;
 import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
 
 import org.osoa.sca.Version;
 import org.osoa.sca.annotations.Constructor;
 
-import org.apache.tuscany.spi.extension.LoaderExtension;
-import org.apache.tuscany.spi.model.CompositeImplementation;
+import org.apache.tuscany.spi.annotation.Autowire;
 import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.deployer.DeploymentContext;
+import org.apache.tuscany.spi.extension.LoaderExtension;
 import org.apache.tuscany.spi.loader.LoaderException;
-import org.apache.tuscany.spi.loader.LoaderUtil;
 import org.apache.tuscany.spi.loader.LoaderRegistry;
-import org.apache.tuscany.spi.annotation.Autowire;
+import org.apache.tuscany.spi.loader.LoaderUtil;
+import org.apache.tuscany.spi.model.CompositeImplementation;
 
 /**
  * Loader that handles an <implementation.composite> element.
@@ -41,7 +42,7 @@
  */
 public class ImplementationCompositeLoader extends LoaderExtension<CompositeImplementation> {
     private static final QName IMPLEMENTATION_COMPOSITE =
-            new QName(Version.XML_NAMESPACE_1_0, "implementation.composite");
+        new QName(Version.XML_NAMESPACE_1_0, "implementation.composite");
 
     @Constructor({"registry"})
     public ImplementationCompositeLoader(@Autowire LoaderRegistry registry) {
@@ -59,8 +60,17 @@
 
         assert IMPLEMENTATION_COMPOSITE.equals(reader.getName());
         String name = reader.getAttributeValue(null, "name");
+        String scdlLocation = reader.getAttributeValue(null, "scdlLocation");
         CompositeImplementation impl = new CompositeImplementation();
         impl.setName(name);
+        URL scdlLocationURL;
+        try {
+            scdlLocationURL = new URL(deploymentContext.getScdlLocation(), scdlLocation);
+        } catch (Exception e) {
+            throw new LoaderException(e);
+        }
+        impl.setScdlLocation(scdlLocationURL);
+        impl.setClassLoader(deploymentContext.getClassLoader());
         LoaderUtil.skipToEndElement(reader);
         return impl;
     }

Modified: incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/composite/ImplementationCompositeLoaderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/composite/ImplementationCompositeLoaderTestCase.java?rev=438171&r1=438170&r2=438171&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/composite/ImplementationCompositeLoaderTestCase.java (original)
+++ incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/composite/ImplementationCompositeLoaderTestCase.java Tue Aug 29 12:26:05 2006
@@ -18,6 +18,9 @@
  */
 package org.apache.tuscany.core.implementation.composite;
 
+import java.net.MalformedURLException;
+import java.net.URL;
+
 import javax.xml.namespace.QName;
 import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
 import javax.xml.stream.XMLStreamException;
@@ -27,6 +30,7 @@
 import org.jmock.MockObjectTestCase;
 import org.osoa.sca.Version;
 
+import org.apache.tuscany.core.deployer.RootDeploymentContext;
 import org.apache.tuscany.spi.loader.LoaderException;
 import org.apache.tuscany.spi.model.CompositeImplementation;
 
@@ -40,14 +44,16 @@
     private ImplementationCompositeLoader loader;
     private Mock mockReader;
 
-    public void testName() throws LoaderException, XMLStreamException {
+    public void testName() throws LoaderException, XMLStreamException, MalformedURLException {
         String name = "foo";
         mockReader.expects(once()).method("getName").will(returnValue(IMPLEMENTATION_COMPOSITE));
         mockReader.expects(atLeastOnce()).method("getAttributeValue")
                 .with(ANYTHING, ANYTHING)
                 .will(returnValue(name));
         mockReader.expects(once()).method("next").will(returnValue(END_ELEMENT));
-        CompositeImplementation impl = loader.load(null, (XMLStreamReader) mockReader.proxy(), null);
+        URL scdlLocation = new URL("http://META-INF/sca/");
+        CompositeImplementation impl = loader.load(null, (XMLStreamReader) mockReader.proxy(),
+                new RootDeploymentContext(getClass().getClassLoader(), null, null, scdlLocation));
         assertEquals(name, impl.getName());
     }
 



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


Re: svn commit: r438171 - in /incubator/tuscany/java/sca/core/src: main/java/org/apache/tuscany/core/implementation/composite/ test/java/org/apache/tuscany/core/implementation/composite/

Posted by Jeremy Boynes <jb...@apache.org>.
Ignacio

I committed this but have a couple comments on the patch if you can  
address them:
* rather than catch Exception can you explicitly catch  
MalformedURLException
* rather than throw LoaderException, can you throw an  
InvalidValueException (with the identifier set to the name)
* you probably should check for a null (missing) attribute value

I would also be good to test for these things in the test case - at  
least check that scdlLocation is set in the returned impl.

Thanks
--
Jeremy

On Aug 29, 2006, at 12:26 PM, jboynes@apache.org wrote:

> Author: jboynes
> Date: Tue Aug 29 12:26:05 2006
> New Revision: 438171
>
> URL: http://svn.apache.org/viewvc?rev=438171&view=rev
> Log:
> apply patch from Ignacio Silva-Lupe for TUSCANY-673
>
> Modified:
>     incubator/tuscany/java/sca/core/src/main/java/org/apache/ 
> tuscany/core/implementation/composite/ 
> ImplementationCompositeLoader.java
>     incubator/tuscany/java/sca/core/src/test/java/org/apache/ 
> tuscany/core/implementation/composite/ 
> ImplementationCompositeLoaderTestCase.java
>
> Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/ 
> tuscany/core/implementation/composite/ 
> ImplementationCompositeLoader.java
> URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/ 
> src/main/java/org/apache/tuscany/core/implementation/composite/ 
> ImplementationCompositeLoader.java? 
> rev=438171&r1=438170&r2=438171&view=diff
> ====================================================================== 
> ========
> --- incubator/tuscany/java/sca/core/src/main/java/org/apache/ 
> tuscany/core/implementation/composite/ 
> ImplementationCompositeLoader.java (original)
> +++ incubator/tuscany/java/sca/core/src/main/java/org/apache/ 
> tuscany/core/implementation/composite/ 
> ImplementationCompositeLoader.java Tue Aug 29 12:26:05 2006
> @@ -18,21 +18,22 @@
>   */
>  package org.apache.tuscany.core.implementation.composite;
>
> +import java.net.URL;
>  import javax.xml.namespace.QName;
> -import javax.xml.stream.XMLStreamReader;
>  import javax.xml.stream.XMLStreamException;
> +import javax.xml.stream.XMLStreamReader;
>
>  import org.osoa.sca.Version;
>  import org.osoa.sca.annotations.Constructor;
>
> -import org.apache.tuscany.spi.extension.LoaderExtension;
> -import org.apache.tuscany.spi.model.CompositeImplementation;
> +import org.apache.tuscany.spi.annotation.Autowire;
>  import org.apache.tuscany.spi.component.CompositeComponent;
>  import org.apache.tuscany.spi.deployer.DeploymentContext;
> +import org.apache.tuscany.spi.extension.LoaderExtension;
>  import org.apache.tuscany.spi.loader.LoaderException;
> -import org.apache.tuscany.spi.loader.LoaderUtil;
>  import org.apache.tuscany.spi.loader.LoaderRegistry;
> -import org.apache.tuscany.spi.annotation.Autowire;
> +import org.apache.tuscany.spi.loader.LoaderUtil;
> +import org.apache.tuscany.spi.model.CompositeImplementation;
>
>  /**
>   * Loader that handles an &lt;implementation.composite&gt; element.
> @@ -41,7 +42,7 @@
>   */
>  public class ImplementationCompositeLoader extends  
> LoaderExtension<CompositeImplementation> {
>      private static final QName IMPLEMENTATION_COMPOSITE =
> -            new QName(Version.XML_NAMESPACE_1_0,  
> "implementation.composite");
> +        new QName(Version.XML_NAMESPACE_1_0,  
> "implementation.composite");
>
>      @Constructor({"registry"})
>      public ImplementationCompositeLoader(@Autowire LoaderRegistry  
> registry) {
> @@ -59,8 +60,17 @@
>
>          assert IMPLEMENTATION_COMPOSITE.equals(reader.getName());
>          String name = reader.getAttributeValue(null, "name");
> +        String scdlLocation = reader.getAttributeValue(null,  
> "scdlLocation");
>          CompositeImplementation impl = new CompositeImplementation();
>          impl.setName(name);
> +        URL scdlLocationURL;
> +        try {
> +            scdlLocationURL = new URL 
> (deploymentContext.getScdlLocation(), scdlLocation);
> +        } catch (Exception e) {
> +            throw new LoaderException(e);
> +        }
> +        impl.setScdlLocation(scdlLocationURL);
> +        impl.setClassLoader(deploymentContext.getClassLoader());
>          LoaderUtil.skipToEndElement(reader);
>          return impl;
>      }
>
> Modified: incubator/tuscany/java/sca/core/src/test/java/org/apache/ 
> tuscany/core/implementation/composite/ 
> ImplementationCompositeLoaderTestCase.java
> URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/ 
> src/test/java/org/apache/tuscany/core/implementation/composite/ 
> ImplementationCompositeLoaderTestCase.java? 
> rev=438171&r1=438170&r2=438171&view=diff
> ====================================================================== 
> ========
> --- incubator/tuscany/java/sca/core/src/test/java/org/apache/ 
> tuscany/core/implementation/composite/ 
> ImplementationCompositeLoaderTestCase.java (original)
> +++ incubator/tuscany/java/sca/core/src/test/java/org/apache/ 
> tuscany/core/implementation/composite/ 
> ImplementationCompositeLoaderTestCase.java Tue Aug 29 12:26:05 2006
> @@ -18,6 +18,9 @@
>   */
>  package org.apache.tuscany.core.implementation.composite;
>
> +import java.net.MalformedURLException;
> +import java.net.URL;
> +
>  import javax.xml.namespace.QName;
>  import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
>  import javax.xml.stream.XMLStreamException;
> @@ -27,6 +30,7 @@
>  import org.jmock.MockObjectTestCase;
>  import org.osoa.sca.Version;
>
> +import org.apache.tuscany.core.deployer.RootDeploymentContext;
>  import org.apache.tuscany.spi.loader.LoaderException;
>  import org.apache.tuscany.spi.model.CompositeImplementation;
>
> @@ -40,14 +44,16 @@
>      private ImplementationCompositeLoader loader;
>      private Mock mockReader;
>
> -    public void testName() throws LoaderException,  
> XMLStreamException {
> +    public void testName() throws LoaderException,  
> XMLStreamException, MalformedURLException {
>          String name = "foo";
>          mockReader.expects(once()).method("getName").will 
> (returnValue(IMPLEMENTATION_COMPOSITE));
>          mockReader.expects(atLeastOnce()).method("getAttributeValue")
>                  .with(ANYTHING, ANYTHING)
>                  .will(returnValue(name));
>          mockReader.expects(once()).method("next").will(returnValue 
> (END_ELEMENT));
> -        CompositeImplementation impl = loader.load(null,  
> (XMLStreamReader) mockReader.proxy(), null);
> +        URL scdlLocation = new URL("http://META-INF/sca/");
> +        CompositeImplementation impl = loader.load(null,  
> (XMLStreamReader) mockReader.proxy(),
> +                new RootDeploymentContext(getClass().getClassLoader 
> (), null, null, scdlLocation));
>          assertEquals(name, impl.getName());
>      }
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
> For additional commands, e-mail: tuscany-commits-help@ws.apache.org
>


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