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 22:17:21 UTC

svn commit: r438190 - 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 13:17:20 2006
New Revision: 438190

URL: http://svn.apache.org/viewvc?rev=438190&view=rev
Log:
make scdlLocation optional
throw better exception if the scdlLocation value is not a valid URL

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=438190&r1=438189&r2=438190&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 13:17:20 2006
@@ -19,6 +19,7 @@
 package org.apache.tuscany.core.implementation.composite;
 
 import java.net.URL;
+import java.net.MalformedURLException;
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
@@ -33,6 +34,7 @@
 import org.apache.tuscany.spi.loader.LoaderException;
 import org.apache.tuscany.spi.loader.LoaderRegistry;
 import org.apache.tuscany.spi.loader.LoaderUtil;
+import org.apache.tuscany.spi.loader.InvalidValueException;
 import org.apache.tuscany.spi.model.CompositeImplementation;
 
 /**
@@ -61,17 +63,20 @@
         assert IMPLEMENTATION_COMPOSITE.equals(reader.getName());
         String name = reader.getAttributeValue(null, "name");
         String scdlLocation = reader.getAttributeValue(null, "scdlLocation");
+        LoaderUtil.skipToEndElement(reader);
+
         CompositeImplementation impl = new CompositeImplementation();
         impl.setName(name);
-        URL scdlLocationURL;
-        try {
-            scdlLocationURL = new URL(deploymentContext.getScdlLocation(), scdlLocation);
-        } catch (Exception e) {
-            throw new LoaderException(e);
+        if (scdlLocation != null) {
+            try {
+                impl.setScdlLocation(new URL(deploymentContext.getScdlLocation(), scdlLocation));
+            } catch (MalformedURLException e) {
+                InvalidValueException ive = new InvalidValueException(scdlLocation, e);
+                ive.setIdentifier(name);
+                throw ive;
+            }
         }
-        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=438190&r1=438189&r2=438190&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 13:17:20 2006
@@ -51,6 +51,25 @@
         String name = "foo";
         expect(reader.getName()).andReturn(IMPLEMENTATION_COMPOSITE);
         expect(reader.getAttributeValue(null, "name")).andReturn(name);
+        expect(reader.getAttributeValue(null, "scdlLocation")).andReturn(null);
+        expect(reader.next()).andReturn(END_ELEMENT);
+        replay(reader);
+
+        expect(context.getClassLoader()).andReturn(cl);
+        replay(context);
+
+        CompositeImplementation impl = loader.load(null, reader, context);
+        verify(reader);
+        verify(context);
+        assertEquals(name, impl.getName());
+        assertNull(impl.getScdlLocation());
+        assertSame(cl, impl.getClassLoader());
+    }
+
+    public void testWithScdlLocation() throws LoaderException, XMLStreamException, MalformedURLException {
+        String name = "foo";
+        expect(reader.getName()).andReturn(IMPLEMENTATION_COMPOSITE);
+        expect(reader.getAttributeValue(null, "name")).andReturn(name);
         expect(reader.getAttributeValue(null, "scdlLocation")).andReturn("bar.scdl");
         expect(reader.next()).andReturn(END_ELEMENT);
         replay(reader);



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