You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by sv...@apache.org on 2007/03/27 14:18:58 UTC
svn commit: r522885 [3/4] - in
/incubator/tuscany/branches/sca-java-integration:
samples/sca/calculator/src/main/resources/
samples/sca/composite-impl/src/main/resources/
samples/sca/echo-binding/src/main/java/echo/
samples/sca/echo-binding/src/test/re...
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/builder/SystemComponentBuilderResourceTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/builder/SystemComponentBuilderResourceTestCase.java?view=diff&rev=522885&r1=522884&r2=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/builder/SystemComponentBuilderResourceTestCase.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/builder/SystemComponentBuilderResourceTestCase.java Tue Mar 27 05:18:53 2007
@@ -1,22 +1,22 @@
package org.apache.tuscany.core.implementation.system.builder;
+import junit.framework.TestCase;
+
+import org.apache.tuscany.core.implementation.system.model.SystemImplementation;
+import org.apache.tuscany.spi.component.AtomicComponent;
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.component.ScopeContainer;
import org.apache.tuscany.spi.component.ScopeRegistry;
-import org.apache.tuscany.spi.component.AtomicComponent;
import org.apache.tuscany.spi.deployer.DeploymentContext;
import org.apache.tuscany.spi.implementation.java.ConstructorDefinition;
import org.apache.tuscany.spi.implementation.java.PojoComponentType;
import org.apache.tuscany.spi.implementation.java.Resource;
import org.apache.tuscany.spi.model.ComponentDefinition;
+import org.apache.tuscany.spi.model.ComponentTypeReferenceDefinition;
import org.apache.tuscany.spi.model.Property;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
import org.apache.tuscany.spi.model.Scope;
import org.apache.tuscany.spi.model.ServiceDefinition;
import org.apache.tuscany.spi.wire.InboundWire;
-
-import junit.framework.TestCase;
-import org.apache.tuscany.core.implementation.system.model.SystemImplementation;
import org.easymock.EasyMock;
/**
@@ -24,7 +24,7 @@
*/
public class SystemComponentBuilderResourceTestCase extends TestCase {
- @SuppressWarnings("uncjecked")
+ @SuppressWarnings("unchecked")
public void testResourceInjection() throws Exception {
ScopeContainer container = EasyMock.createNiceMock(ScopeContainer.class);
DeploymentContext ctx = EasyMock.createNiceMock(DeploymentContext.class);
@@ -35,8 +35,8 @@
builder.setScopeRegistry(registry);
ConstructorDefinition<Foo> ctorDef = new ConstructorDefinition<SystemComponentBuilderResourceTestCase.Foo>(
SystemComponentBuilderResourceTestCase.Foo.class.getConstructor());
- PojoComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> type =
- new PojoComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>();
+ PojoComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>> type =
+ new PojoComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>>();
Resource resource = new Resource();
resource.setType(String.class);
resource.setName("resource");
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/loader/SystemComponentTypeLoaderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/loader/SystemComponentTypeLoaderTestCase.java?view=diff&rev=522885&r1=522884&r2=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/loader/SystemComponentTypeLoaderTestCase.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/loader/SystemComponentTypeLoaderTestCase.java Tue Mar 27 05:18:53 2007
@@ -22,7 +22,7 @@
import org.apache.tuscany.spi.implementation.java.PojoComponentType;
import org.apache.tuscany.spi.implementation.java.ProcessingException;
import org.apache.tuscany.spi.model.Property;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
+import org.apache.tuscany.spi.model.AbstractReferenceDefinition;
import org.apache.tuscany.spi.model.ServiceDefinition;
import junit.framework.TestCase;
@@ -58,7 +58,7 @@
assertEquals(BasicInterface.class, service.getServiceContract().getInterfaceClass());
Property<?> property = componentType.getProperties().get("publicProperty");
assertEquals(String.class, property.getJavaType());
- ReferenceDefinition referenceDefinition = componentType.getReferences().get("protectedReference");
+ AbstractReferenceDefinition referenceDefinition = componentType.getReferences().get("protectedReference");
assertEquals(BasicInterface.class, referenceDefinition.getServiceContract().getInterfaceClass());
}
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/system/builder/SystemBuilderPropertyTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/system/builder/SystemBuilderPropertyTestCase.java?view=diff&rev=522885&r1=522884&r2=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/system/builder/SystemBuilderPropertyTestCase.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/system/builder/SystemBuilderPropertyTestCase.java Tue Mar 27 05:18:53 2007
@@ -25,7 +25,8 @@
import org.apache.tuscany.spi.implementation.java.JavaMappedProperty;
import org.apache.tuscany.spi.implementation.java.PojoComponentType;
import org.apache.tuscany.spi.model.ComponentDefinition;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
+import org.apache.tuscany.spi.model.AbstractReferenceDefinition;
+import org.apache.tuscany.spi.model.ComponentTypeReferenceDefinition;
import org.apache.tuscany.spi.model.ServiceDefinition;
import junit.framework.TestCase;
@@ -48,8 +49,8 @@
@SuppressWarnings("unchecked")
public void testPropertyHandling() throws Exception {
SystemComponentBuilder builder = new SystemComponentBuilder();
- PojoComponentType<ServiceDefinition, ReferenceDefinition, JavaMappedProperty<?>> type =
- new PojoComponentType<ServiceDefinition, ReferenceDefinition, JavaMappedProperty<?>>();
+ PojoComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, JavaMappedProperty<?>> type =
+ new PojoComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, JavaMappedProperty<?>>();
type.setConstructorDefinition(new ConstructorDefinition<Foo>(Foo.class.getConstructor((Class[]) null)));
JavaMappedProperty<String> property = new JavaMappedProperty<String>();
property.setName("test");
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderNoBindingTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderNoBindingTestCase.java?view=diff&rev=522885&r1=522884&r2=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderNoBindingTestCase.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderNoBindingTestCase.java Tue Mar 27 05:18:53 2007
@@ -28,10 +28,11 @@
import org.apache.tuscany.spi.deployer.DeploymentContext;
import org.apache.tuscany.spi.implementation.java.PojoComponentType;
import org.apache.tuscany.spi.loader.LoaderRegistry;
+import org.apache.tuscany.spi.model.ComponentTypeReferenceDefinition;
import org.apache.tuscany.spi.model.Implementation;
import org.apache.tuscany.spi.model.ModelObject;
import org.apache.tuscany.spi.model.Property;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
+import org.apache.tuscany.spi.model.AbstractReferenceDefinition;
import org.apache.tuscany.spi.model.ServiceDefinition;
import junit.framework.TestCase;
@@ -46,7 +47,7 @@
private ComponentLoader loader;
private XMLStreamReader reader;
private ServiceDefinition service;
- private ReferenceDefinition reference;
+ private ComponentTypeReferenceDefinition reference;
public void testNoServiceBinding() throws Exception {
loader.load(null, null, reader, null);
@@ -61,9 +62,9 @@
protected void setUp() throws Exception {
super.setUp();
service = new ServiceDefinition();
- reference = new ReferenceDefinition();
- PojoComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> type =
- new PojoComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>();
+ reference = new ComponentTypeReferenceDefinition();
+ PojoComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>> type =
+ new PojoComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>>();
type.add(service);
type.add(reference);
JavaImplementation impl = new JavaImplementation(null, type);
@@ -81,6 +82,7 @@
EasyMock.expect(reader.getName()).andReturn(COMPONENT).atLeastOnce();
EasyMock.expect(reader.next()).andReturn(XMLStreamConstants.END_ELEMENT);
EasyMock.expect(reader.getAttributeValue(null, "name")).andReturn("foo");
+ EasyMock.expect(reader.getAttributeValue(null, "autowire")).andReturn("false");
EasyMock.expect(reader.getAttributeValue(null, "initLevel")).andReturn("0");
EasyMock.expect(reader.nextTag()).andReturn(1);
EasyMock.replay(reader);
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderPropertyTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderPropertyTestCase.java?view=diff&rev=522885&r1=522884&r2=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderPropertyTestCase.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderPropertyTestCase.java Tue Mar 27 05:18:53 2007
@@ -29,9 +29,10 @@
import org.apache.tuscany.spi.loader.MissingPropertyValueException;
import org.apache.tuscany.spi.loader.PropertyObjectFactory;
import org.apache.tuscany.spi.model.ComponentDefinition;
+import org.apache.tuscany.spi.model.ComponentTypeReferenceDefinition;
import org.apache.tuscany.spi.model.Implementation;
import org.apache.tuscany.spi.model.Property;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
+import org.apache.tuscany.spi.model.AbstractReferenceDefinition;
import org.apache.tuscany.spi.model.ServiceDefinition;
import org.easymock.EasyMock;
@@ -48,7 +49,7 @@
*/
public void testMissingPropertyValueException() throws LoaderException, XMLStreamException {
PojoComponentType<?, ?, Property<?>> type =
- new PojoComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>();
+ new PojoComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>>();
Property property = new Property();
property.setName("name");
property.setMustSupply(true);
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderReferenceTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderReferenceTestCase.java?view=diff&rev=522885&r1=522884&r2=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderReferenceTestCase.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderReferenceTestCase.java Tue Mar 27 05:18:53 2007
@@ -13,10 +13,11 @@
import org.apache.tuscany.spi.loader.LoaderException;
import org.apache.tuscany.spi.loader.LoaderRegistry;
import org.apache.tuscany.spi.loader.UndefinedReferenceException;
+import org.apache.tuscany.spi.model.ComponentTypeReferenceDefinition;
import org.apache.tuscany.spi.model.Implementation;
import org.apache.tuscany.spi.model.ModelObject;
import org.apache.tuscany.spi.model.Property;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
+import org.apache.tuscany.spi.model.AbstractReferenceDefinition;
import org.apache.tuscany.spi.model.ServiceDefinition;
import junit.framework.TestCase;
@@ -48,8 +49,8 @@
protected void setUp() throws Exception {
super.setUp();
- PojoComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> type =
- new PojoComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>();
+ PojoComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>> type =
+ new PojoComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>>();
JavaImplementation impl = new JavaImplementation(null, type);
reader = EasyMock.createMock(XMLStreamReader.class);
EasyMock.expect(reader.getName()).andReturn(COMPONENT);
@@ -57,6 +58,8 @@
.andReturn(NAME);
EasyMock.expect(reader.getAttributeValue((String) EasyMock.isNull(), EasyMock.eq("initLevel")))
.andReturn(null);
+ EasyMock.expect(reader.getAttributeValue((String) isNull(), EasyMock.eq("autowire")))
+ .andReturn("false");
EasyMock.expect(reader.getAttributeValue(EasyMock.isA(String.class), EasyMock.isA(String.class)))
.andReturn(null);
EasyMock.expect(reader.nextTag()).andReturn(0);
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderTestCase.java?view=diff&rev=522885&r1=522884&r2=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderTestCase.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderTestCase.java Tue Mar 27 05:18:53 2007
@@ -33,10 +33,11 @@
import org.apache.tuscany.spi.loader.PropertyObjectFactory;
import org.apache.tuscany.spi.loader.UnrecognizedElementException;
import org.apache.tuscany.spi.model.ComponentDefinition;
+import org.apache.tuscany.spi.model.ComponentTypeReferenceDefinition;
import org.apache.tuscany.spi.model.Implementation;
import org.apache.tuscany.spi.model.ModelObject;
import org.apache.tuscany.spi.model.Property;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
+import org.apache.tuscany.spi.model.AbstractReferenceDefinition;
import org.apache.tuscany.spi.model.ServiceDefinition;
import junit.framework.TestCase;
@@ -67,6 +68,8 @@
.andReturn(NAME);
EasyMock.expect(mockReader.getAttributeValue((String) EasyMock.isNull(), EasyMock.eq("initLevel")))
.andReturn(null);
+ EasyMock.expect(mockReader.getAttributeValue((String) EasyMock.isNull(), EasyMock.eq("autowire")))
+ .andReturn("false");
EasyMock.expect(mockReader.getAttributeValue(EasyMock.isA(String.class), EasyMock.isA(String.class)))
.andReturn(null);
EasyMock.expect(mockReader.nextTag()).andReturn(0);
@@ -102,6 +105,8 @@
.andReturn(NAME);
EasyMock.expect(mockReader.getAttributeValue((String) EasyMock.isNull(), EasyMock.eq("initLevel")))
.andReturn("20");
+ EasyMock.expect(mockReader.getAttributeValue((String) EasyMock.isNull(), EasyMock.eq("autowire")))
+ .andReturn("false");
EasyMock.expect(mockReader.nextTag()).andReturn(0);
EasyMock.expect(mockReader.next()).andReturn(XMLStreamConstants.END_ELEMENT);
EasyMock.replay(mockReader);
@@ -132,7 +137,7 @@
public void testLoadPropertyWithSource() throws LoaderException, XMLStreamException {
PojoComponentType<?, ?, Property<?>> type =
- new PojoComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>();
+ new PojoComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>>();
Property property = new Property();
property.setName("name");
type.add(property);
@@ -158,6 +163,8 @@
.andReturn(NAME);
EasyMock.expect(mockReader.getAttributeValue((String) EasyMock.isNull(), EasyMock.eq("initLevel")))
.andReturn(null);
+ EasyMock.expect(mockReader.getAttributeValue((String) EasyMock.isNull(), EasyMock.eq("autowire")))
+ .andReturn("false");
EasyMock.expect(mockReader.getAttributeValue(EasyMock.isA(String.class), EasyMock.isA(String.class)))
.andReturn(null);
EasyMock.expect(mockReader.nextTag()).andReturn(0);
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderValidationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderValidationTestCase.java?view=diff&rev=522885&r1=522884&r2=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderValidationTestCase.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderValidationTestCase.java Tue Mar 27 05:18:53 2007
@@ -11,10 +11,12 @@
import org.apache.tuscany.spi.loader.MissingReferenceException;
import org.apache.tuscany.spi.loader.PropertyObjectFactory;
import org.apache.tuscany.spi.model.ComponentDefinition;
+import org.apache.tuscany.spi.model.ComponentReferenceDefinition;
+import org.apache.tuscany.spi.model.ComponentTypeReferenceDefinition;
import org.apache.tuscany.spi.model.Implementation;
import org.apache.tuscany.spi.model.Multiplicity;
import org.apache.tuscany.spi.model.Property;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
+import org.apache.tuscany.spi.model.AbstractReferenceDefinition;
import org.apache.tuscany.spi.model.ServiceDefinition;
import org.apache.tuscany.spi.model.ReferenceTarget;
@@ -30,25 +32,27 @@
private ComponentLoaderValidationTestCase.TestLoader loader;
public void testValidation() throws LoaderException, XMLStreamException {
- PojoComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> type =
- new PojoComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>();
- ReferenceDefinition refDefinition = new ReferenceDefinition();
+ PojoComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>> type =
+ new PojoComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>>();
+ ComponentTypeReferenceDefinition refDefinition = new ComponentTypeReferenceDefinition();
refDefinition.setName("name");
type.add(refDefinition);
JavaImplementation impl = new JavaImplementation(null, type);
ComponentDefinition<Implementation<?>> defn = new ComponentDefinition<Implementation<?>>(impl);
- ReferenceTarget target = new ReferenceTarget();
+ ComponentReferenceDefinition compRef = new ComponentReferenceDefinition(refDefinition);
+ compRef.addTarget(URI.create("uri"));
+ defn.add(compRef);
+ /*ReferenceTarget target = new ReferenceTarget();
target.setReferenceName("name");
- defn.add(target);
+ defn.add(target);*/
loader.validate(defn);
}
- public void testReferenceNotSet() throws LoaderException, XMLStreamException {
- PojoComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> type =
- new PojoComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>();
- ReferenceDefinition refDefinition = new ReferenceDefinition();
+ /*public void testReferenceNotSet() throws LoaderException, XMLStreamException {
+ PojoComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>> type =
+ new PojoComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>>();
+ ComponentTypeReferenceDefinition refDefinition = new ComponentTypeReferenceDefinition();
refDefinition.setName("name");
- refDefinition.setRequired(true);
type.add(refDefinition);
JavaImplementation impl = new JavaImplementation(null, type);
ComponentDefinition<Implementation<?>> defn = new ComponentDefinition<Implementation<?>>(impl);
@@ -58,14 +62,13 @@
} catch (MissingReferenceException e) {
// expected
}
- }
+ }*/
public void testNotRequiredReference() throws LoaderException, XMLStreamException {
- PojoComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> type =
- new PojoComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>();
- ReferenceDefinition refDefinition = new ReferenceDefinition();
+ PojoComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>> type =
+ new PojoComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>>();
+ ComponentTypeReferenceDefinition refDefinition = new ComponentTypeReferenceDefinition();
refDefinition.setName("name");
- refDefinition.setRequired(false);
type.add(refDefinition);
JavaImplementation impl = new JavaImplementation(null, type);
ComponentDefinition<Implementation<?>> defn = new ComponentDefinition<Implementation<?>>(impl);
@@ -73,20 +76,23 @@
}
public void testReferenceMultiplicity() throws LoaderException, XMLStreamException {
- PojoComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> type =
- new PojoComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>();
- ReferenceDefinition refDefinition = new ReferenceDefinition();
+ PojoComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>> type =
+ new PojoComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>>();
+ ComponentTypeReferenceDefinition refDefinition = new ComponentTypeReferenceDefinition();
refDefinition.setName("r1");
- refDefinition.setRequired(true);
refDefinition.setMultiplicity(Multiplicity.ONE_N);
type.add(refDefinition);
JavaImplementation impl = new JavaImplementation(null, type);
ComponentDefinition<Implementation<?>> defn = new ComponentDefinition<Implementation<?>>(impl);
- ReferenceTarget target = new ReferenceTarget();
+ ComponentReferenceDefinition compRef = new ComponentReferenceDefinition(type.getReferences().get("r1"));
+ compRef.addTarget(URI.create("c1"));
+ compRef.addTarget(URI.create("c2"));
+ defn.add(compRef);
+ /*ReferenceTarget target = new ReferenceTarget();
target.setReferenceName("r1");
target.addTarget(URI.create("c1"));
target.addTarget(URI.create("c2"));
- defn.add(target);
+ defn.add(target);*/
loader.validate(defn);
refDefinition.setMultiplicity(Multiplicity.ZERO_ONE);
@@ -108,7 +114,9 @@
// Expected
}
- target.getTargets().clear();
+ defn = new ComponentDefinition<Implementation<?>>(impl);
+ compRef = new ComponentReferenceDefinition(type.getReferences().get("r1"));
+ defn.add(compRef);
refDefinition.setMultiplicity(Multiplicity.ONE_ONE);
try {
loader.validate(defn);
@@ -130,9 +138,9 @@
}
public void testAutowire() throws LoaderException, XMLStreamException {
- PojoComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> type =
- new PojoComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>();
- ReferenceDefinition refDefinition = new ReferenceDefinition();
+ PojoComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>> type =
+ new PojoComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>>();
+ ComponentTypeReferenceDefinition refDefinition = new ComponentTypeReferenceDefinition();
refDefinition.setName("name");
refDefinition.setAutowire(true);
type.add(refDefinition);
Added: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentReferenceOverridingTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentReferenceOverridingTestCase.java?view=auto&rev=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentReferenceOverridingTestCase.java (added)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentReferenceOverridingTestCase.java Tue Mar 27 05:18:53 2007
@@ -0,0 +1,178 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.core.loader;
+
+import java.io.StringReader;
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import junit.framework.Assert;
+
+import org.apache.tuscany.core.binding.local.LocalBindingDefinition;
+import org.apache.tuscany.core.implementation.java.JavaImplementation;
+import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.deployer.DeploymentContext;
+import org.apache.tuscany.spi.idl.java.JavaServiceContract;
+import org.apache.tuscany.spi.implementation.java.PojoComponentType;
+import org.apache.tuscany.spi.loader.LoaderException;
+import org.apache.tuscany.spi.loader.LoaderRegistry;
+import org.apache.tuscany.spi.loader.ReferenceMultiplicityOverridingException;
+import org.apache.tuscany.spi.model.BindingDefinition;
+import org.apache.tuscany.spi.model.ComponentDefinition;
+import org.apache.tuscany.spi.model.ComponentTypeReferenceDefinition;
+import org.apache.tuscany.spi.model.Implementation;
+import org.apache.tuscany.spi.model.Multiplicity;
+import org.apache.tuscany.spi.model.Property;
+import org.apache.tuscany.spi.model.ServiceDefinition;
+import org.easymock.EasyMock;
+import org.junit.Test;
+
+/**
+ * Tests to verify overriding of aspects of componenttype reference defintions
+ * by component definitions
+ */
+public class ComponentReferenceOverridingTestCase {
+ private static XMLInputFactory xmlFactory = XMLInputFactory.newInstance();;
+ private static LoaderRegistryImpl loaderRegistry;
+
+ public XMLStreamReader getReader(String xml) throws XMLStreamException {
+ XMLStreamReader reader = xmlFactory.createXMLStreamReader(new StringReader(xml));
+ reader.next();
+ return reader;
+ }
+
+
+ @Test
+ public void testRefDefNoOverriding() throws LoaderException,
+ XMLStreamException,
+ URISyntaxException {
+ String compDefXml =
+ "<tus:component name='TestComponent' xmlns:tus='http://www.osoa.org/xmlns/sca/1.0'>"
+ + "<tus:implementation.java class='mockedup'/>"
+ + "</tus:component>";
+
+ TestComponentLoader compLoader = new TestComponentLoader(EasyMock.createMock(LoaderRegistry.class));
+ ComponentDefinition<?> compDef = compLoader.load(null, null, getReader(compDefXml), null);
+
+ //verify if component inherits referece definitions from componentType
+ Assert.assertNotNull(compDef.getReferences().get("CTRefDef1"));
+ Assert.assertEquals(Multiplicity.ZERO_N.name(), compDef.getReferences().get("CTRefDef1").getMultiplicity().name());
+ Assert.assertEquals("TestComponent1/testService1",
+ compDef.getReferences().get("CTRefDef1").getTargets().get(1).toString());
+ Assert.assertTrue(
+ TestIfc1.class.isAssignableFrom(compDef.getReferences().get("CTRefDef1").getServiceContract().getInterfaceClass()));
+ Assert.assertTrue(compDef.getReferences().get("CTRefDef1").getBindings().get(0) instanceof LocalBindingDefinition);
+ }
+
+ @Test
+ public void testRefDefValidOverriding() throws LoaderException,
+ XMLStreamException,
+ URISyntaxException {
+ String overridenRef =
+ "<tus:component name='TestComponent' xmlns:tus='http://www.osoa.org/xmlns/sca/1.0'>"
+ + "<tus:implementation.java class='mockedup'/>"
+ + "<tus:reference name='CTRefDef1' target='OverridingTarget' multiplicity='0..1'>"
+ + "</tus:reference>"
+ + "</tus:component>";
+
+ TestComponentLoader compLoader = new TestComponentLoader(EasyMock.createMock(LoaderRegistry.class));
+
+ ComponentDefinition<?> compDef = compLoader.load(null, null, getReader(overridenRef), null);
+
+ //verify if component inherits referece definitions from componentType
+ Assert.assertNotNull(compDef.getReferences().get("CTRefDef1"));
+ Assert.assertEquals(Multiplicity.ZERO_ONE.name(),
+ compDef.getReferences().get("CTRefDef1").getMultiplicity().name());
+ Assert.assertEquals("OverridingTarget",
+ compDef.getReferences().get("CTRefDef1").getTargets().get(0).toString());
+ Assert.assertTrue(
+ TestIfc1.class.isAssignableFrom(compDef.getReferences().get("CTRefDef1").getServiceContract().getInterfaceClass()));
+ Assert.assertTrue(compDef.getReferences().get("CTRefDef1").getBindings().get(0) instanceof LocalBindingDefinition);
+ }
+
+ @Test
+ public void testRefDefInValidOverriding() throws LoaderException,
+ XMLStreamException,
+ URISyntaxException {
+ String overridenRef =
+ "<tus:component name='TestComponent' xmlns:tus='http://www.osoa.org/xmlns/sca/1.0'>"
+ + "<tus:implementation.java class='mockedup'/>"
+ + "<tus:reference name='CTRefDef1' target='OverridingTarget' multiplicity='1..1'/>"
+ + "</tus:component>";
+
+ TestComponentLoader compLoader = new TestComponentLoader(EasyMock.createMock(LoaderRegistry.class));
+
+ try {
+ ComponentDefinition<?> compDef = compLoader.load(null, null, getReader(overridenRef), null);
+ Assert.fail();
+ } catch ( ReferenceMultiplicityOverridingException e) {
+ //expected behaviour
+ }
+ }
+
+
+ public static interface TestIfc1 {
+ public String testMethod1();
+ }
+
+ public class TestComponentLoader extends ComponentLoader {
+
+ public TestComponentLoader(LoaderRegistry registry) {
+ super(registry, null);
+ }
+
+ @Override
+ protected Implementation<?> loadImplementation(CompositeComponent parent,
+ XMLStreamReader reader,
+ DeploymentContext deploymentContext) throws XMLStreamException,
+ LoaderException {
+ ComponentTypeReferenceDefinition ctRefDef = new ComponentTypeReferenceDefinition();
+
+ ctRefDef.setName("CTRefDef1");
+ try {
+ ctRefDef.addTarget(new URI("TestComponent1"));
+ ctRefDef.addTarget(new URI("TestComponent1/testService1"));
+
+ ctRefDef.setMultiplicity(Multiplicity.ZERO_N);
+
+ JavaServiceContract svcContract = new JavaServiceContract(TestIfc1.class);
+ ctRefDef.setServiceContract(svcContract);
+
+ BindingDefinition binding1 = new LocalBindingDefinition(new URI("localBindingUri"));
+ ctRefDef.addBinding(binding1);
+ } catch (URISyntaxException e) {
+ //do nothing... unlikely to happen
+ }
+
+ PojoComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>> ct =
+ new PojoComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>>();
+ ct.add(ctRefDef);
+
+ JavaImplementation javaImpl = new JavaImplementation();
+ javaImpl.setComponentType(ct);
+ reader.next();
+ reader.next();
+ return javaImpl;
+ }
+ }
+}
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentTypeElementLoaderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentTypeElementLoaderTestCase.java?view=diff&rev=522885&r1=522884&r2=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentTypeElementLoaderTestCase.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentTypeElementLoaderTestCase.java Tue Mar 27 05:18:53 2007
@@ -26,9 +26,10 @@
import org.apache.tuscany.spi.deployer.DeploymentContext;
import org.apache.tuscany.spi.loader.LoaderRegistry;
import org.apache.tuscany.spi.model.ComponentType;
+import org.apache.tuscany.spi.model.ComponentTypeReferenceDefinition;
import org.apache.tuscany.spi.model.ModelObject;
import org.apache.tuscany.spi.model.Property;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
+import org.apache.tuscany.spi.model.AbstractReferenceDefinition;
import org.apache.tuscany.spi.model.ServiceDefinition;
import junit.framework.TestCase;
@@ -40,8 +41,8 @@
public class ComponentTypeElementLoaderTestCase extends TestCase {
public void testSpecializedComponentTypePassedIn() throws Exception {
- ComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> type =
- new ComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>();
+ ComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>> type =
+ new ComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>>();
ComponentTypeElementLoader loader = new ComponentTypeElementLoader(null);
XMLStreamReader reader = EasyMock.createMock(XMLStreamReader.class);
EasyMock.expect(reader.getName()).andReturn(ComponentTypeElementLoader.COMPONENT_TYPE);
@@ -55,8 +56,8 @@
}
public void testComponentTypePassedAsContext() throws Exception {
- ComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> type =
- new ComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>();
+ ComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>> type =
+ new ComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>>();
LoaderRegistry registry = EasyMock.createMock(LoaderRegistry.class);
EasyMock.expect(registry.load((CompositeComponent) EasyMock.isNull(),
EasyMock.isA(ComponentType.class),
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ReferenceLoaderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ReferenceLoaderTestCase.java?view=diff&rev=522885&r1=522884&r2=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ReferenceLoaderTestCase.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ReferenceLoaderTestCase.java Tue Mar 27 05:18:53 2007
@@ -23,21 +23,20 @@
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
-import org.osoa.sca.Constants;
+import junit.framework.TestCase;
+import org.apache.tuscany.core.deployer.RootDeploymentContext;
import org.apache.tuscany.spi.deployer.DeploymentContext;
import org.apache.tuscany.spi.loader.LoaderException;
import org.apache.tuscany.spi.loader.LoaderRegistry;
import org.apache.tuscany.spi.model.BindingDefinition;
import org.apache.tuscany.spi.model.ComponentType;
+import org.apache.tuscany.spi.model.ComponentTypeReferenceDefinition;
import org.apache.tuscany.spi.model.Property;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
import org.apache.tuscany.spi.model.ServiceContract;
import org.apache.tuscany.spi.model.ServiceDefinition;
-
-import junit.framework.TestCase;
-import org.apache.tuscany.core.deployer.RootDeploymentContext;
import org.easymock.EasyMock;
+import org.osoa.sca.Constants;
/**
* Verifies loading of a reference definition from an XML-based assembly
@@ -57,10 +56,13 @@
EasyMock.expect(mockReader.getName()).andReturn(REFERENCE).anyTimes();
EasyMock.expect(mockReader.getAttributeValue(null, "name")).andReturn(name);
EasyMock.expect(mockReader.getAttributeValue(null, "multiplicity")).andReturn("0..1");
+ EasyMock.expect(mockReader.getAttributeValue(null, "wiredByImpl")).andReturn("false");
+ EasyMock.expect(mockReader.getAttributeValue(null, "target")).andReturn(null);
EasyMock.expect(mockReader.next()).andReturn(XMLStreamConstants.END_ELEMENT);
EasyMock.expect(mockReader.getName()).andReturn(REFERENCE).anyTimes();
EasyMock.replay(mockReader);
- ReferenceDefinition referenceDefinition = loader.load(null, null, mockReader, null);
+ ComponentTypeReferenceDefinition referenceDefinition =
+ loader.load(null, new ComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>>(), mockReader, null);
assertNotNull(referenceDefinition);
assertEquals(name, referenceDefinition.getName());
}
@@ -70,13 +72,15 @@
EasyMock.expect(mockReader.getName()).andReturn(REFERENCE).anyTimes();
EasyMock.expect(mockReader.getAttributeValue(null, "name")).andReturn(name);
EasyMock.expect(mockReader.getAttributeValue(null, "multiplicity")).andReturn("0..1");
+ EasyMock.expect(mockReader.getAttributeValue(null, "wiredByImpl")).andReturn("false");
+ EasyMock.expect(mockReader.getAttributeValue(null, "target")).andReturn(null);
EasyMock.expect(mockReader.next()).andReturn(XMLStreamConstants.END_ELEMENT);
EasyMock.expect(mockReader.getName()).andReturn(REFERENCE).anyTimes();
EasyMock.replay(mockReader);
- ComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> type =
- new ComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>();
- ReferenceDefinition referenceDefinition = loader.load(null, type, mockReader, null);
- assertTrue(ReferenceDefinition.class.equals(referenceDefinition.getClass()));
+ ComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>> type =
+ new ComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>>();
+ ComponentTypeReferenceDefinition referenceDefinition = loader.load(null, type, mockReader, null);
+ assertTrue(ComponentTypeReferenceDefinition.class.equals(referenceDefinition.getClass()));
}
public void testMultipleBindings() throws LoaderException, XMLStreamException {
@@ -84,17 +88,24 @@
EasyMock.expect(mockReader.getName()).andReturn(REFERENCE).anyTimes();
EasyMock.expect(mockReader.getAttributeValue(null, "name")).andReturn(name);
EasyMock.expect(mockReader.getAttributeValue(null, "multiplicity")).andReturn("0..1");
+ EasyMock.expect(mockReader.getAttributeValue(null, "wiredByImpl")).andReturn("false");
+ EasyMock.expect(mockReader.getAttributeValue(null, "target")).andReturn(null);
EasyMock.expect(mockReader.next()).andReturn(XMLStreamConstants.START_ELEMENT).times(2);
EasyMock.expect(mockReader.next()).andReturn(XMLStreamConstants.END_ELEMENT);
EasyMock.expect(mockReader.getName()).andReturn(REFERENCE).anyTimes();
EasyMock.replay(mockReader);
BindingDefinition binding = new BindingDefinition() {
+ public Object clone() {
+ return null;
+ }
};
EasyMock.expect(mockRegistry.load(null, null, mockReader, null)).andReturn(binding).times(2);
EasyMock.replay(mockRegistry);
- ReferenceDefinition referenceDefinition = loader.load(null, null, mockReader, null);
+ ComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>> type =
+ new ComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>>();
+ ComponentTypeReferenceDefinition referenceDefinition = loader.load(null, type, mockReader, null);
assertEquals(2, referenceDefinition.getBindings().size());
}
@@ -105,14 +116,18 @@
EasyMock.expect(mockReader.getName()).andReturn(REFERENCE).anyTimes();
EasyMock.expect(mockReader.getAttributeValue(null, "name")).andReturn(name);
EasyMock.expect(mockReader.getAttributeValue(null, "multiplicity")).andReturn("0..1");
+ EasyMock.expect(mockReader.getAttributeValue(null, "wiredByImpl")).andReturn("false");
+ EasyMock.expect(mockReader.getAttributeValue(null, "target")).andReturn(null);
EasyMock.expect(mockReader.next()).andReturn(XMLStreamConstants.START_ELEMENT);
EasyMock.expect(mockRegistry.load(null, null, mockReader, deploymentContext)).andReturn(sc);
EasyMock.expect(mockReader.next()).andReturn(XMLStreamConstants.END_ELEMENT);
EasyMock.replay(mockReader);
EasyMock.replay(mockRegistry);
-
- ReferenceDefinition referenceDefinition = loader.load(null, null, mockReader, deploymentContext);
+
+ ComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>> type =
+ new ComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>>();
+ ComponentTypeReferenceDefinition referenceDefinition = loader.load(null, type, mockReader, deploymentContext);
assertNotNull(referenceDefinition);
assertEquals(name, referenceDefinition.getName());
assertSame(sc, referenceDefinition.getServiceContract());
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ServiceLoaderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ServiceLoaderTestCase.java?view=diff&rev=522885&r1=522884&r2=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ServiceLoaderTestCase.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ServiceLoaderTestCase.java Tue Mar 27 05:18:53 2007
@@ -31,8 +31,9 @@
import org.apache.tuscany.spi.loader.LoaderRegistry;
import org.apache.tuscany.spi.model.BindingDefinition;
import org.apache.tuscany.spi.model.ComponentType;
+import org.apache.tuscany.spi.model.ComponentTypeReferenceDefinition;
import org.apache.tuscany.spi.model.Property;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
+import org.apache.tuscany.spi.model.AbstractReferenceDefinition;
import org.apache.tuscany.spi.model.ServiceContract;
import org.apache.tuscany.spi.model.ServiceDefinition;
@@ -77,8 +78,8 @@
expect(mockReader.next()).andReturn(END_ELEMENT);
expect(mockReader.getName()).andReturn(SERVICE).anyTimes();
replay(mockReader);
- ComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> type =
- new ComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>();
+ ComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>> type =
+ new ComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>>();
ServiceDefinition serviceDefinition = loader.load(null, type, mockReader, null);
assertTrue(ServiceDefinition.class.equals(serviceDefinition.getClass()));
}
@@ -96,6 +97,9 @@
replay(mockReader);
BindingDefinition binding = new BindingDefinition() {
+ public Object clone() {
+ return null;
+ }
};
expect(mockRegistry.load(null, null, mockReader, null)).andReturn(binding).times(2);
replay(mockRegistry);
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/WireServiceExtensionTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/WireServiceExtensionTestCase.java?view=diff&rev=522885&r1=522884&r2=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/WireServiceExtensionTestCase.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/WireServiceExtensionTestCase.java Tue Mar 27 05:18:53 2007
@@ -21,6 +21,7 @@
import java.lang.reflect.Method;
import java.lang.reflect.Type;
import java.net.URI;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -36,12 +37,14 @@
import org.apache.tuscany.spi.component.TargetInvokerCreationException;
import org.apache.tuscany.spi.component.WorkContext;
import org.apache.tuscany.spi.model.ComponentDefinition;
+import org.apache.tuscany.spi.model.ComponentReferenceDefinition;
import org.apache.tuscany.spi.model.ComponentType;
+import org.apache.tuscany.spi.model.ComponentTypeReferenceDefinition;
import org.apache.tuscany.spi.model.Implementation;
import org.apache.tuscany.spi.model.Multiplicity;
import org.apache.tuscany.spi.model.Operation;
import org.apache.tuscany.spi.model.Property;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
+import org.apache.tuscany.spi.model.AbstractReferenceDefinition;
import org.apache.tuscany.spi.model.ReferenceTarget;
import org.apache.tuscany.spi.model.Scope;
import org.apache.tuscany.spi.model.ServiceContract;
@@ -101,8 +104,8 @@
EasyMock.verify(invoker);
}
- public void testCreateReferenceWire() throws Exception {
- ReferenceDefinition definition = new ReferenceDefinition("foo", contract);
+ /*public void testCreateReferenceWire() throws Exception {
+ AbstractReferenceDefinition definition = new AbstractReferenceDefinition("foo", contract);
ReferenceTarget target = new ReferenceTarget();
target.addTarget(new URI("bar"));
target.setReferenceName("refName");
@@ -130,36 +133,40 @@
msg.setTargetInvoker(invoker);
assertNotNull(callbackChain.getHeadInterceptor().invoke(msg));
EasyMock.verify(invoker);
- }
+ }*/
public void testCreateAutowireReferenceWire() throws Exception {
- ReferenceDefinition definition = new ReferenceDefinition("foo", contract);
+ ComponentTypeReferenceDefinition definition = new ComponentTypeReferenceDefinition("foo", contract);
definition.setAutowire(true);
- ReferenceTarget target = new ReferenceTarget();
- target.setReferenceName("refName");
- OutboundWire wire = wireService.createWire(target, definition).get(0);
+ ComponentReferenceDefinition compRef = new ComponentReferenceDefinition(definition);
+ //ReferenceTarget target = new ReferenceTarget();
+ //target.setReferenceName("refName");
+ OutboundWire wire = wireService.createWire(new ArrayList<URI>(), compRef).get(0);
assertTrue(wire.isAutowire());
- assertEquals("refName", wire.getReferenceName());
+ assertEquals("foo", wire.getReferenceName());
assertEquals(contract, wire.getServiceContract());
assertEquals(Callback.class, wire.getCallbackInterface());
}
public void testCreateReferenceMultipleWire() throws Exception {
- ReferenceDefinition definition = new ReferenceDefinition("foo", contract);
+ ComponentTypeReferenceDefinition ctRefDef = new ComponentTypeReferenceDefinition("foo", contract);
+ ComponentReferenceDefinition definition = new ComponentReferenceDefinition(ctRefDef);
definition.setMultiplicity(Multiplicity.ONE_N);
- ReferenceTarget target = new ReferenceTarget();
- target.addTarget(new URI("bar"));
- target.addTarget(new URI("bar2"));
- target.setReferenceName("refName");
+
+ //ReferenceTarget target = new ReferenceTarget();
+ List<URI> target = new ArrayList<URI>();
+ target.add(new URI("bar"));
+ target.add(new URI("bar2"));
+ //target.setReferenceName("refName");
List<OutboundWire> wires = wireService.createWire(target, definition);
assertEquals(2, wires.size());
}
public void testCreateComponentWires() throws Exception {
- ComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> type =
- new ComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>();
- ReferenceDefinition referenceDefinition = new ReferenceDefinition("refName", contract);
+ ComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>> type =
+ new ComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>>();
+ ComponentTypeReferenceDefinition referenceDefinition = new ComponentTypeReferenceDefinition("refName", contract);
type.add(referenceDefinition);
ServiceDefinition serviceDefinition = new ServiceDefinition("foo", contract, false);
type.add(serviceDefinition);
@@ -170,11 +177,16 @@
ComponentDefinition<Implementation<ComponentType>> definition =
new ComponentDefinition<Implementation<ComponentType>>("Foo", impl);
- ReferenceTarget target = new ReferenceTarget();
+ ComponentReferenceDefinition compRef =
+ new ComponentReferenceDefinition(type.getReferences().get("refName"));
+ compRef.addTarget(new URI("bar"));
+ definition.add(compRef);
+
+ /*ReferenceTarget target = new ReferenceTarget();
target.addTarget(new URI("bar"));
target.setReferenceName("refName");
definition.add(target);
-
+ */
AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
component.addInboundWire(EasyMock.isA(InboundWire.class));
component.addOutboundWire(EasyMock.isA(OutboundWire.class));
@@ -265,8 +277,8 @@
}
- public List<OutboundWire> createWire(ReferenceTarget reference, ReferenceDefinition def) {
- return super.createWire(reference, def);
+ public List<OutboundWire> createWire(List<URI> refTargetURIs, ComponentReferenceDefinition def) {
+ return super.createWire(refTargetURIs, def);
}
}
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BindingBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BindingBuilder.java?view=diff&rev=522885&r1=522884&r2=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BindingBuilder.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BindingBuilder.java Tue Mar 27 05:18:53 2007
@@ -23,7 +23,7 @@
import org.apache.tuscany.spi.component.ServiceBinding;
import org.apache.tuscany.spi.deployer.DeploymentContext;
import org.apache.tuscany.spi.model.BindingDefinition;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
+import org.apache.tuscany.spi.model.AbstractReferenceDefinition;
import org.apache.tuscany.spi.model.ServiceDefinition;
/**
@@ -51,7 +51,7 @@
DeploymentContext deploymentContext) throws BuilderException;
ReferenceBinding build(CompositeComponent parent,
- ReferenceDefinition boundReferenceDefinition,
+ AbstractReferenceDefinition boundReferenceDefinition,
B bindingDefinition,
DeploymentContext deploymentContext) throws BuilderException;
}
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Builder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Builder.java?view=diff&rev=522885&r1=522884&r2=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Builder.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Builder.java Tue Mar 27 05:18:53 2007
@@ -27,7 +27,7 @@
import org.apache.tuscany.spi.model.ComponentDefinition;
import org.apache.tuscany.spi.model.Implementation;
import org.apache.tuscany.spi.model.ModelObject;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
+import org.apache.tuscany.spi.model.AbstractReferenceDefinition;
import org.apache.tuscany.spi.model.ServiceDefinition;
/**
@@ -70,7 +70,7 @@
* @return the newly created reference
* @throws BuilderException
*/
- Reference build(CompositeComponent parent, ReferenceDefinition definition, DeploymentContext context)
+ Reference build(CompositeComponent parent, AbstractReferenceDefinition definition, DeploymentContext context)
throws BuilderException;
/**
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/BindingBuilderExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/BindingBuilderExtension.java?view=diff&rev=522885&r1=522884&r2=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/BindingBuilderExtension.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/BindingBuilderExtension.java Tue Mar 27 05:18:53 2007
@@ -30,7 +30,7 @@
import org.apache.tuscany.spi.component.ServiceBinding;
import org.apache.tuscany.spi.deployer.DeploymentContext;
import org.apache.tuscany.spi.model.BindingDefinition;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
+import org.apache.tuscany.spi.model.AbstractReferenceDefinition;
import org.apache.tuscany.spi.model.ServiceDefinition;
import org.apache.tuscany.spi.wire.WireService;
@@ -69,7 +69,7 @@
}
public ReferenceBinding build(CompositeComponent parent,
- ReferenceDefinition boundReferenceDefinition,
+ AbstractReferenceDefinition boundReferenceDefinition,
B bindingDefinition,
DeploymentContext deploymentContext) throws BuilderException {
return null;
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java?view=diff&rev=522885&r1=522884&r2=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java Tue Mar 27 05:18:53 2007
@@ -364,7 +364,7 @@
}
}
for (SCAObject child : childList) {
- // connect all children
+ // connect all children
// TODO for composite wires, should delegate down
try {
connector.connect(child);
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/JavaMappedReference.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/JavaMappedReference.java?view=diff&rev=522885&r1=522884&r2=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/JavaMappedReference.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/JavaMappedReference.java Tue Mar 27 05:18:53 2007
@@ -20,7 +20,7 @@
import java.lang.reflect.Member;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
+import org.apache.tuscany.spi.model.ComponentTypeReferenceDefinition;
import org.apache.tuscany.spi.model.ServiceContract;
/**
@@ -29,7 +29,7 @@
*
* @version $Rev$ $Date$
*/
-public class JavaMappedReference extends ReferenceDefinition {
+public class JavaMappedReference extends ComponentTypeReferenceDefinition {
private Member member;
public JavaMappedReference() {
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/PojoComponentType.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/PojoComponentType.java?view=diff&rev=522885&r1=522884&r2=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/PojoComponentType.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/PojoComponentType.java Tue Mar 27 05:18:53 2007
@@ -26,8 +26,8 @@
import java.util.Map;
import org.apache.tuscany.spi.model.ComponentType;
+import org.apache.tuscany.spi.model.ComponentTypeReferenceDefinition;
import org.apache.tuscany.spi.model.Property;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
import org.apache.tuscany.spi.model.ServiceDefinition;
/**
@@ -35,7 +35,7 @@
*
* @version $$Rev$$ $$Date$$
*/
-public class PojoComponentType<S extends ServiceDefinition, R extends ReferenceDefinition, P extends Property<?>>
+public class PojoComponentType<S extends ServiceDefinition, R extends ComponentTypeReferenceDefinition, P extends Property<?>>
extends ComponentType<S, R, P> {
private boolean allowsPassByReference;
private ConstructorDefinition<?> constructorDefinition;
Added: incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/DuplicateReferenceNameException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/DuplicateReferenceNameException.java?view=auto&rev=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/DuplicateReferenceNameException.java (added)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/DuplicateReferenceNameException.java Tue Mar 27 05:18:53 2007
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tuscany.spi.loader;
+
+import org.apache.tuscany.spi.model.Operation;
+import org.apache.tuscany.spi.model.ServiceContract;
+
+import org.apache.tuscany.api.TuscanyException;
+
+/**
+ * Denotes a duplicate reference name
+ *
+ * @version $Rev: 487877 $ $Date: 2006-12-17 02:02:16 +0530 (Sun, 17 Dec 2006) $
+ */
+public class DuplicateReferenceNameException extends LoaderException {
+ public static final String COMPOSITE = "Composite";
+ public static final String COMPONENT_TYPE = "ComponentType";
+ public static final String MESSAGE = "Duplicat reference name ";
+
+ private static final long serialVersionUID = -9127740669182714792L;
+ private String duplicateName;
+ private String container;
+ private String containerName;
+
+ public DuplicateReferenceNameException(String dupName, String container, String containerName) {
+ super(MESSAGE, (String) null);
+ this.duplicateName = dupName;
+ this.container = container;
+ this.containerName = containerName;
+ }
+
+ public String getMessage() {
+ return MESSAGE + duplicateName + " in " + containerName + " " + container;
+ }
+
+ public String getContainer() {
+ return container;
+ }
+
+
+ public void setContainer(String container) {
+ this.container = container;
+ }
+
+
+ public String getContainerName() {
+ return containerName;
+ }
+
+
+ public void setContainerName(String containerName) {
+ this.containerName = containerName;
+ }
+
+
+ public String getDuplicateName() {
+ return duplicateName;
+ }
+
+
+ public void setDuplicateName(String duplicateName) {
+ this.duplicateName = duplicateName;
+ }
+}
Added: incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/IncompatibleOverridingServiceContractException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/IncompatibleOverridingServiceContractException.java?view=auto&rev=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/IncompatibleOverridingServiceContractException.java (added)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/IncompatibleOverridingServiceContractException.java Tue Mar 27 05:18:53 2007
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tuscany.spi.loader;
+
+import org.apache.tuscany.spi.model.Operation;
+import org.apache.tuscany.spi.model.ServiceContract;
+
+import org.apache.tuscany.api.TuscanyException;
+
+/**
+ * Denotes imcompatible service contracts for a wire
+ *
+ * @version $Rev: 487877 $ $Date: 2006-12-17 02:02:16 +0530 (Sun, 17 Dec 2006) $
+ */
+public class IncompatibleOverridingServiceContractException extends LoaderException {
+ private static final long serialVersionUID = 5127478601823295587L;
+ private final ServiceContract<?> source;
+ private final ServiceContract<?> target;
+ private final Operation<?> sourceOperation;
+ private final Operation<?> targetOperation;
+
+ public IncompatibleOverridingServiceContractException(String message, ServiceContract<?> source, ServiceContract<?> target) {
+ super(message, (String) null);
+ this.source = source;
+ this.target = target;
+ this.sourceOperation = null;
+ this.targetOperation = null;
+ }
+
+
+ public IncompatibleOverridingServiceContractException(String message,
+ ServiceContract<?> source,
+ ServiceContract<?> target,
+ Operation<?> sourceOperation, Operation<?> targetOperation) {
+ super(message, (String) null);
+ this.source = source;
+ this.target = target;
+ this.sourceOperation = sourceOperation;
+ this.targetOperation = targetOperation;
+ }
+
+ public ServiceContract<?> getTarget() {
+ return target;
+ }
+
+ public ServiceContract<?> getSource() {
+ return source;
+ }
+
+ public Operation<?> getSourceOperation() {
+ return sourceOperation;
+ }
+
+ public Operation<?> getTargetOperation() {
+ return targetOperation;
+ }
+}
Added: incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidPromotedReferenceException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidPromotedReferenceException.java?view=auto&rev=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidPromotedReferenceException.java (added)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/InvalidPromotedReferenceException.java Tue Mar 27 05:18:53 2007
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.spi.loader;
+
+/**
+ * Used when a reference promoted by a composite is not found in any of the components defined within
+ * the composite
+ */
+public class InvalidPromotedReferenceException extends LoaderException {
+ private static final long serialVersionUID = -2056138384524620064L;
+
+ public InvalidPromotedReferenceException(String message) {
+ super(message);
+ }
+
+ public InvalidPromotedReferenceException(String message, String identifier) {
+ super(message, identifier);
+ }
+
+ public InvalidPromotedReferenceException(Throwable cause) {
+ super(cause);
+ }
+}
Added: incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/ReferenceMultiplicityOverridingException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/ReferenceMultiplicityOverridingException.java?view=auto&rev=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/ReferenceMultiplicityOverridingException.java (added)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/ReferenceMultiplicityOverridingException.java Tue Mar 27 05:18:53 2007
@@ -0,0 +1,78 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tuscany.spi.loader;
+
+import org.apache.tuscany.spi.model.Multiplicity;
+
+/**
+ * Denote the violation in overriding of multiplicity declaration for a reference either when a
+ * Component is overriding what is original in the underlying ComponentType or when a Composite is
+ * overriding while promoting a Component reference definition.
+ *
+ * @version $Rev $Date
+ */
+public class ReferenceMultiplicityOverridingException extends LoaderException {
+ private static final long serialVersionUID = -5827228144446207988L;
+ private final Multiplicity originalMultiplicity;
+ private final Multiplicity overridenMultiplicity;
+
+ /**
+ * @param message
+ * @param identifier
+ * @param multiplicity
+ * @param numberOfTargets
+ */
+ public ReferenceMultiplicityOverridingException(String message,
+ String identifier,
+ Multiplicity original,
+ Multiplicity overriden) {
+ super(message, identifier);
+ this.originalMultiplicity = original;
+ this.overridenMultiplicity = overriden;
+ }
+
+ /**
+ * @param identifier
+ * @param multiplicity
+ * @param numberOfTargets
+ */
+ public ReferenceMultiplicityOverridingException(String identifier, Multiplicity original, Multiplicity overriden) {
+ this("Multiplicity Overriding is violated", identifier, original, overriden);
+ }
+
+
+ /**
+ * Get the original multiplicity for the reference definition
+ *
+ * @return multiplicity of the reference definition
+ */
+ public Multiplicity getoriginalMultiplicity() {
+ return originalMultiplicity;
+ }
+
+ /**
+ * Get the overriden multiplicity for the reference definition
+ *
+ * @return multiplicity of the reference definition
+ */
+ public Multiplicity getOverridenMultiplicity() {
+ return overridenMultiplicity;
+ }
+}
Copied: incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/AbstractReferenceDefinition.java (from r518530, incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ReferenceDefinition.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/AbstractReferenceDefinition.java?view=diff&rev=522885&p1=incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ReferenceDefinition.java&r1=518530&p2=incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/AbstractReferenceDefinition.java&r2=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ReferenceDefinition.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/AbstractReferenceDefinition.java Tue Mar 27 05:18:53 2007
@@ -18,40 +18,49 @@
*/
package org.apache.tuscany.spi.model;
+import java.net.URI;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import javax.xml.namespace.QName;
+
/**
* Represents a component reference
*
* @version $Rev$ $Date$
*/
-public class ReferenceDefinition extends ModelObject {
+public abstract class AbstractReferenceDefinition extends ModelObject {
private String name;
private ServiceContract serviceContract;
private Multiplicity multiplicity;
private boolean autowire;
- private boolean required;
private List<BindingDefinition> bindings;
+ private List<URI> targets = new ArrayList<URI>();
+ private boolean wiredByImpl;
+ private List requiredIntents = new ArrayList<QName>();
+ private List policySets = new ArrayList<QName>();
- public ReferenceDefinition() {
+ public AbstractReferenceDefinition() {
+ autowire = false;
multiplicity = Multiplicity.ONE_ONE;
bindings = new ArrayList<BindingDefinition>();
}
- public ReferenceDefinition(String name, ServiceContract serviceContract) {
+ public AbstractReferenceDefinition(String name, ServiceContract serviceContract) {
this.name = name;
this.serviceContract = serviceContract;
bindings = new ArrayList<BindingDefinition>();
+ autowire = false;
multiplicity = Multiplicity.ONE_ONE;
}
- public ReferenceDefinition(String name, ServiceContract serviceContract, Multiplicity multiplicity) {
+ public AbstractReferenceDefinition(String name, ServiceContract serviceContract, Multiplicity multiplicity) {
this.name = name;
this.serviceContract = serviceContract;
this.multiplicity = multiplicity;
bindings = new ArrayList<BindingDefinition>();
+ autowire = false;
}
public String getName() {
@@ -86,19 +95,43 @@
this.autowire = autowire;
}
- public boolean isRequired() {
- return required;
- }
-
- public void setRequired(boolean required) {
- this.required = required;
- }
-
public List<BindingDefinition> getBindings() {
return Collections.unmodifiableList(bindings);
}
public void addBinding(BindingDefinition binding) {
this.bindings.add(binding);
+ }
+
+ public List<URI> getTargets() {
+ return Collections.unmodifiableList(targets);
+ }
+
+ public void addTarget(URI targetURI) {
+ this.targets.add(targetURI);
+ }
+
+ public boolean isWiredByImpl() {
+ return wiredByImpl;
+ }
+
+ public void setWiredByImpl(boolean wiredByImpl) {
+ this.wiredByImpl = wiredByImpl;
+ }
+
+ public List getPolicySets() {
+ return policySets;
+ }
+
+ public void setPolicySets(List policySets) {
+ this.policySets = policySets;
+ }
+
+ public List getRequiredIntents() {
+ return requiredIntents;
+ }
+
+ public void setRequiredIntents(List requiredIntents) {
+ this.requiredIntents = requiredIntents;
}
}
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/BindingDefinition.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/BindingDefinition.java?view=diff&rev=522885&r1=522884&r2=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/BindingDefinition.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/BindingDefinition.java Tue Mar 27 05:18:53 2007
@@ -25,7 +25,7 @@
*
* @version $Rev$ $Date$
*/
-public abstract class BindingDefinition extends ModelObject {
+public abstract class BindingDefinition extends ModelObject implements Cloneable {
private URI targetUri;
protected BindingDefinition() {
@@ -42,4 +42,6 @@
public void setTargetUri(URI targetUri) {
this.targetUri = targetUri;
}
+
+ abstract public Object clone();
}
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentDefinition.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentDefinition.java?view=diff&rev=522885&r1=522884&r2=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentDefinition.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentDefinition.java Tue Mar 27 05:18:53 2007
@@ -31,7 +31,7 @@
* immediately contained in the composite (directly or through an <include> element).</p>
* <p>A component may define a {@link PropertyValue} that overrides the default value of a {@link Property}
* defined in the componentType.</p>
- * <p>It may also define a {@link ReferenceTarget} for a {@link ReferenceDefinition} defined in the componentType.
+ * <p>It may also define a {@link ReferenceTarget} for a {@link AbstractReferenceDefinition} defined in the componentType.
* The ReferenceTarget must resolve to another component or a reference in the enclosing composite.</p>
* <p>Components may specify an initialization level that will determine the order in which it will be eagerly
* initialized relative to other components from the enclosing composite that are in the same scope. This can be
@@ -44,9 +44,10 @@
private String name;
private Integer initLevel;
private final I implementation;
- private final Map<String, ReferenceTarget> referenceTargets = new HashMap<String, ReferenceTarget>();
+ private final Map<String, ComponentReferenceDefinition> references = new HashMap<String, ComponentReferenceDefinition>();
private final Map<String, PropertyValue<?>> propertyValues = new HashMap<String, PropertyValue<?>>();
-
+ private boolean autowire;
+
/**
* Constructor specifying the component's name and implementation.
*
@@ -115,25 +116,6 @@
}
/**
- * Returns a live Map of the {@link ReferenceTarget targets} configured by this component definition.
- *
- * @return the reference targets configured by this component
- */
- public Map<String, ReferenceTarget> getReferenceTargets() {
- return referenceTargets;
- }
-
- /**
- * Add a reference target configuration to this component.
- * Any existing configuration for the reference named in the target is replaced.
- *
- * @param target the target to add
- */
- public void add(ReferenceTarget target) {
- referenceTargets.put(target.getReferenceName(), target);
- }
-
- /**
* Returns a live Map of {@link PropertyValue property values} configured by this component definition.
*
* @return the property values configured by this component
@@ -150,5 +132,21 @@
*/
public void add(PropertyValue<?> value) {
propertyValues.put(value.getName(), value);
+ }
+
+ public boolean isAutowire() {
+ return autowire;
+ }
+
+ public void setAutowire(boolean autowire) {
+ this.autowire = autowire;
+ }
+
+ public Map<String, ComponentReferenceDefinition> getReferences() {
+ return references;
+ }
+
+ public void add(ComponentReferenceDefinition ref) {
+ references.put(ref.getName(), ref);
}
}
Added: incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentReferenceDefinition.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentReferenceDefinition.java?view=auto&rev=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentReferenceDefinition.java (added)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentReferenceDefinition.java Tue Mar 27 05:18:53 2007
@@ -0,0 +1,95 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.spi.model;
+
+import java.net.URI;
+import java.util.List;
+
+/**
+ * Represents reference defintion that is part of a Component definition
+ *
+ */
+public class ComponentReferenceDefinition extends AbstractReferenceDefinition {
+ private ComponentTypeReferenceDefinition associatedCompTypeRefDefn;
+
+ public ComponentReferenceDefinition(ComponentTypeReferenceDefinition ctRefDefn) {
+ super();
+ setMultiplicity(null);
+ this.associatedCompTypeRefDefn = ctRefDefn;
+ }
+
+ public ComponentReferenceDefinition(String name, ServiceContract serviceContract, ComponentTypeReferenceDefinition ctRefDefn) {
+ super(name, serviceContract, null);
+ this.associatedCompTypeRefDefn = ctRefDefn;
+ }
+
+ public ComponentReferenceDefinition(String name, ServiceContract serviceContract, Multiplicity multiplicity, ComponentTypeReferenceDefinition ctRefDefn) {
+ super(name, serviceContract, multiplicity);
+ this.associatedCompTypeRefDefn = ctRefDefn;
+ }
+
+ @Override
+ public String getName() {
+ return associatedCompTypeRefDefn.getName();
+ }
+
+ public ComponentTypeReferenceDefinition getAssociatedCompTypeRefDefn() {
+ return associatedCompTypeRefDefn;
+ }
+
+ public void setAssociatedCompTypeRefDefn(ComponentTypeReferenceDefinition associatedCompTypeRefDefn) {
+ this.associatedCompTypeRefDefn = associatedCompTypeRefDefn;
+ }
+
+ @Override
+ public Multiplicity getMultiplicity() {
+ if (super.getMultiplicity() != null) {
+ return super.getMultiplicity();
+ } else {
+ return associatedCompTypeRefDefn.getMultiplicity();
+ }
+ }
+
+ @Override
+ public List<URI> getTargets() {
+ if (super.getTargets() == null || super.getTargets().isEmpty()) {
+ return associatedCompTypeRefDefn.getTargets();
+ } else {
+ return super.getTargets();
+ }
+ }
+
+ @Override
+ public ServiceContract<?> getServiceContract() {
+ if (super.getServiceContract() == null) {
+ return associatedCompTypeRefDefn.getServiceContract();
+ } else {
+ return super.getServiceContract();
+ }
+ }
+
+ @Override
+ public List<BindingDefinition> getBindings() {
+ if (super.getBindings() == null || super.getBindings().size() == 0) {
+ return associatedCompTypeRefDefn.getBindings();
+ } else {
+ return super.getBindings();
+ }
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org