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