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 [2/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/main/java/org/apache/tuscany/core/loader/ComponentLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java?view=diff&rev=522885&r1=522884&r2=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java Tue Mar 27 05:18:53 2007
@@ -24,7 +24,6 @@
import java.lang.reflect.Type;
import java.net.URI;
-import java.net.URISyntaxException;
import java.util.List;
import java.util.Map;
@@ -36,6 +35,7 @@
import org.apache.tuscany.core.binding.local.LocalBindingDefinition;
import org.apache.tuscany.core.implementation.system.model.SystemImplementation;
+import org.apache.tuscany.core.util.ReferenceLoaderHelper;
import org.apache.tuscany.spi.ObjectFactory;
import org.apache.tuscany.spi.annotation.Autowire;
import org.apache.tuscany.spi.component.CompositeComponent;
@@ -51,21 +51,23 @@
import org.apache.tuscany.spi.loader.MissingPropertyValueException;
import org.apache.tuscany.spi.loader.MissingReferenceException;
import org.apache.tuscany.spi.loader.PropertyObjectFactory;
+import org.apache.tuscany.spi.loader.ReferenceMultiplicityOverridingException;
import org.apache.tuscany.spi.loader.ReferenceMultiplicityViolationException;
import org.apache.tuscany.spi.loader.UndefinedPropertyException;
import org.apache.tuscany.spi.loader.UndefinedReferenceException;
import org.apache.tuscany.spi.loader.UnrecognizedElementException;
import org.apache.tuscany.spi.model.BindingDefinition;
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.CompositeComponentType;
import org.apache.tuscany.spi.model.Implementation;
import org.apache.tuscany.spi.model.ModelObject;
import org.apache.tuscany.spi.model.Multiplicity;
import org.apache.tuscany.spi.model.Property;
import org.apache.tuscany.spi.model.PropertyValue;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
-import org.apache.tuscany.spi.model.ReferenceTarget;
+import org.apache.tuscany.spi.model.ServiceContract;
import org.apache.tuscany.spi.model.ServiceDefinition;
import org.apache.tuscany.spi.util.stax.StaxUtil;
import org.osoa.sca.annotations.Constructor;
@@ -77,14 +79,18 @@
* @version $Rev$ $Date$
*/
public class ComponentLoader extends LoaderExtension<ComponentDefinition<?>> {
- public static final char COLON = ':';
-
private static final QName COMPONENT = new QName(SCA_NS, "component");
private static final QName PROPERTY = new QName(SCA_NS, "property");
private static final QName REFERENCE = new QName(SCA_NS, "reference");
+ private static final String COMPONENT_NAME_ATTR = "name";
+
+ private static final String COMPONENT_INIT_ATTR = "initLevel";
+
+ private static final String AUTOWIRE_ATTR = "autowire";
+
private static final String PROPERTY_FILE_ATTR = "file";
private static final String PROPERTY_SOURCE_ATTR = "source";
@@ -95,11 +101,20 @@
private static final String PROPERTY_ELEMENT_ATTR = "element";
+ public static final String REF_NAME_ATTR = "name";
+
+ public static final String REF_MULTIPLICITY_ATTR = "multiplicity";
+
+ public static final String REF_TARGET_ATTR = "target";
+
+ public static final char COLON = ':';
+
private PropertyObjectFactory propertyFactory;
@Constructor
- public ComponentLoader(@Autowire LoaderRegistry registry,
- @Autowire PropertyObjectFactory propertyFactory) {
+ public ComponentLoader(@Autowire
+ LoaderRegistry registry, @Autowire
+ PropertyObjectFactory propertyFactory) {
super(registry);
this.propertyFactory = propertyFactory;
}
@@ -112,10 +127,12 @@
public ComponentDefinition<?> load(CompositeComponent parent,
ModelObject object,
XMLStreamReader reader,
- DeploymentContext deploymentContext) throws XMLStreamException, LoaderException {
+ DeploymentContext deploymentContext) throws XMLStreamException,
+ LoaderException {
assert COMPONENT.equals(reader.getName());
- String name = reader.getAttributeValue(null, "name");
- String initLevel = reader.getAttributeValue(null, "initLevel");
+ String name = reader.getAttributeValue(null, COMPONENT_NAME_ATTR);
+ String initLevel = reader.getAttributeValue(null, COMPONENT_INIT_ATTR);
+ String autowire = reader.getAttributeValue(null, AUTOWIRE_ATTR);
try {
Implementation<?> impl = loadImplementation(parent, reader, deploymentContext);
@@ -123,6 +140,13 @@
ComponentDefinition<Implementation<?>> componentDefinition =
new ComponentDefinition<Implementation<?>>(name, impl);
+ if (autowire != null) {
+ componentDefinition.setAutowire(Boolean.parseBoolean(autowire));
+ } else {
+ if (object instanceof CompositeComponentType) {
+ componentDefinition.setAutowire(((CompositeComponentType)object).isAutowire());
+ }
+ }
if (initLevel != null) {
if (initLevel.length() == 0) {
@@ -143,21 +167,21 @@
if (PROPERTY.equals(qname)) {
loadProperty(reader, deploymentContext, componentDefinition);
} else if (REFERENCE.equals(qname)) {
- loadReference(reader, deploymentContext, componentDefinition);
+ loadReference(parent, reader, deploymentContext, componentDefinition);
} else {
throw new UnrecognizedElementException(qname);
}
- reader.next();
+ //reader.next();
break;
case END_ELEMENT:
if (reader.getName().equals(COMPONENT)) {
// hack to leave alone SystemImplementation
- if (!((Implementation)componentDefinition.getImplementation()
- instanceof SystemImplementation)) {
+ if (!((Implementation)componentDefinition.getImplementation() instanceof SystemImplementation)) {
populatePropertyValues(componentDefinition);
}
- ComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> type =
- (ComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>)componentDefinition
+ populateReferences(componentDefinition);
+ /*ComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>> type =
+ (ComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>>)componentDefinition
.getImplementation().getComponentType();
for (ReferenceDefinition ref : type.getReferences().values()) {
if (ref.isAutowire()) {
@@ -165,8 +189,8 @@
referenceTarget.setReferenceName(ref.getName());
componentDefinition.add(referenceTarget);
}
- }
- validate(componentDefinition);
+ }*/
+ //validate(componentDefinition);
return componentDefinition;
}
break;
@@ -181,7 +205,7 @@
protected Implementation<?> loadImplementation(CompositeComponent parent,
XMLStreamReader reader,
DeploymentContext deploymentContext) throws XMLStreamException,
- LoaderException {
+ LoaderException {
reader.nextTag();
ModelObject o = registry.load(parent, null, reader, deploymentContext);
if (!(o instanceof Implementation)) {
@@ -193,7 +217,8 @@
@SuppressWarnings("unchecked")
protected void loadProperty(XMLStreamReader reader,
DeploymentContext deploymentContext,
- ComponentDefinition<?> componentDefinition) throws XMLStreamException, LoaderException {
+ ComponentDefinition<?> componentDefinition) throws XMLStreamException,
+ LoaderException {
String name = reader.getAttributeValue(null, PROPERTY_NAME_ATTR);
Implementation<?> implementation = componentDefinition.getImplementation();
ComponentType<?, ?, ?> componentType = implementation.getComponentType();
@@ -216,8 +241,8 @@
try {
DocumentBuilder documentBuilder = DOMHelper.newDocumentBuilder();
List<Element> values =
- StaxUtil.createPropertyValues(reader, property.getXmlType(), property.getXmlElement(), property
- .isMany(), documentBuilder);
+ StaxUtil.createPropertyValues(reader, property.getXmlType(), property
+ .getXmlElement(), property.isMany(), documentBuilder);
propertyValue = new PropertyValue<Type>(name, values);
if (!property.isMany() && values.size() > 1) {
ManyPropertyValueLoaderException ex = new ManyPropertyValueLoaderException();
@@ -243,63 +268,135 @@
componentDefinition.add(propertyValue);
}
- protected void loadReference(XMLStreamReader reader,
+ @SuppressWarnings("unchecked")
+ protected void loadReference(CompositeComponent parent,
+ XMLStreamReader reader,
DeploymentContext deploymentContext,
- ComponentDefinition<?> componentDefinition)
- throws XMLStreamException, LoaderException {
- String name = reader.getAttributeValue(null, "name");
- String text = reader.getElementText();
- String target = text != null ? text.trim() : null;
+ ComponentDefinition<?> componentDefinition) throws XMLStreamException,
+ LoaderException {
+
+ ComponentReferenceDefinition componentReference = null;
+ Implementation<?> impl = componentDefinition.getImplementation();
+ ComponentType<?, ComponentTypeReferenceDefinition, ?> componentType =
+ impl.getComponentType();
+
+ String name = reader.getAttributeValue(null, REF_NAME_ATTR);
if (name == null) {
throw new InvalidReferenceException("No name specified");
- } else if (target == null) {
- throw new InvalidReferenceException("No target specified", name);
- }
- Implementation<?> impl = componentDefinition.getImplementation();
- ComponentType<?, ?, ?> componentType = impl.getComponentType();
- if (!componentType.getReferences().containsKey(name)) {
+ } else if (!componentType.getReferences().containsKey(name)) {
throw new UndefinedReferenceException(name);
+ } else {
+ componentReference =
+ new ComponentReferenceDefinition(componentType.getReferences().get(name));
}
- if (componentType instanceof CompositeComponentType) {
- ReferenceDefinition definition = componentType.getReferences().get(name);
- if (definition.getBindings().isEmpty()) {
- // TODO JFM allow selection of a default binding
- try {
- LocalBindingDefinition binding = new LocalBindingDefinition(new URI(target));
- definition.addBinding(binding);
- } catch (URISyntaxException e) {
- throw new InvalidReferenceException(e);
- }
- } else {
- for (BindingDefinition binding : definition.getBindings()) {
- try {
- // FIXME this is bad - clarify in the spec how URIs are
- // overriden
- binding.setTargetUri(new URI(target));
- } catch (URISyntaxException e) {
- throw new LoaderException(e);
- }
- }
- }
+
+ String multiplicityVal = reader.getAttributeValue(null, REF_MULTIPLICITY_ATTR);
+ Multiplicity multiplicity =
+ StaxUtil.multiplicity(multiplicityVal, componentType.getReferences().get(name)
+ .getMultiplicity());
+ if (!ReferenceLoaderHelper.isValidMultiplicityOverride(componentType.getReferences()
+ .get(name).getMultiplicity(), multiplicity)) {
+ throw new ReferenceMultiplicityOverridingException(name, componentType.getReferences()
+ .get(name).getMultiplicity(), multiplicity);
} else {
- ReferenceTarget referenceTarget = componentDefinition.getReferenceTargets().get(name);
- if (referenceTarget == null) {
- referenceTarget = new ReferenceTarget();
- referenceTarget.setReferenceName(name);
- componentDefinition.add(referenceTarget);
- }
- try {
- referenceTarget.addTarget(new URI(target));
- } catch (URISyntaxException e) {
- throw new InvalidReferenceException(e);
+ componentReference.setMultiplicity(multiplicity);
+ }
+
+ String autowire = reader.getAttributeValue(null, AUTOWIRE_ATTR);
+ if (autowire == null) {
+ componentReference.setAutowire(componentDefinition.isAutowire());
+ } else {
+ componentReference.setAutowire(Boolean.parseBoolean(autowire));
+ }
+
+ String targets = reader.getAttributeValue(null, REF_TARGET_ATTR);
+ if (targets != null && targets.length() > 0) {
+ ReferenceLoaderHelper.populateRefTargets(componentReference, targets);
+ /*if (!ReferenceLoaderHelper.validateMultiplicityAndTargets(multiplicity,
+ componentReference
+ .getTargets())) {
+ throw new ReferenceMultiplicityViolationException(name,
+ multiplicity,
+ componentReference
+ .getTargets().size());
+ }*/
+ }
+
+ ComponentTypeReferenceDefinition ctReference = componentType.getReferences().get(name);
+ boolean isBindingsOverriden = false;
+ while (true) {
+ switch (reader.next()) {
+ case START_ELEMENT:
+ ModelObject o = registry.load(parent, null, reader, deploymentContext);
+ if (o instanceof ServiceContract) {
+ ServiceContract overridenSvcContract = (ServiceContract)o;
+ ServiceContract implSvcContract = ctReference.getServiceContract();
+ //TODO : Since the JavaInterfaceProcessorRegistryImpl does not do a deep introspection
+ //this comparison is not possible. This will be uncommented once that is fixed.
+ /*ReferenceLoaderHelper.checkInterfaceCompatibility(implSvcContract,
+ overridenSvcContract,
+ false);*/
+ componentReference.setServiceContract(overridenSvcContract);
+ } else if (o instanceof BindingDefinition) {
+ componentReference.addBinding((BindingDefinition)o);
+ isBindingsOverriden = true;
+ } else {
+ throw new UnrecognizedElementException(reader.getName());
+ }
+ //reader.next();
+ break;
+ case END_ELEMENT:
+ if (REFERENCE.equals(reader.getName())) {
+ if (componentType instanceof CompositeComponentType) {
+ //AbstractReferenceDefinition definition = componentType.getReferences().get(name);
+ //if there were targets overridden, then its better to copy the componentType
+ //bindings from the underlying componentType and set the overriden target
+ if (targets != null && targets.length() > 0) {
+ if (componentReference.getBindings().isEmpty()) {
+ for (URI targetUri : componentReference.getTargets()) {
+ // TODO JFM allow selection of a default binding
+ LocalBindingDefinition binding =
+ new LocalBindingDefinition(targetUri);
+ componentReference.addBinding(binding);
+ //HACK [svkrish]: to get composite implementations working.. not sure
+ //why the componentType should be updated for bindings and targets
+ componentReference.getAssociatedCompTypeRefDefn()
+ .addBinding(binding);
+ }
+ } else {
+ for (URI targetUri : componentReference.getTargets()) {
+ if (isBindingsOverriden) {
+ for (BindingDefinition binding : componentReference
+ .getBindings()) {
+ binding.setTargetUri(targetUri);
+ }
+ } else {
+ BindingDefinition clone = null;
+ for (BindingDefinition binding : componentReference
+ .getAssociatedCompTypeRefDefn().getBindings()) {
+ clone = (BindingDefinition)binding.clone();
+ clone.setTargetUri(targetUri);
+ componentReference.addBinding(clone);
+ //HACK [svkrish]: to get composite implementations working.. not sure
+ //why the componentType should be updated for bindings and targets
+ binding.setTargetUri(targetUri);
+ }
+ }
+ }
+ }
+ }
+ }
+ componentDefinition.add(componentReference);
+ return;
+ }
}
}
}
@SuppressWarnings("unchecked")
- protected void populatePropertyValues(ComponentDefinition<Implementation<?>> componentDefinition)
- throws LoaderException, MissingPropertyValueException {
+ protected void populatePropertyValues(ComponentDefinition<Implementation<?>> componentDefinition) throws LoaderException,
+ MissingPropertyValueException {
ComponentType componentType = componentDefinition.getImplementation().getComponentType();
if (componentType != null) {
Map<String, Property<?>> properties = componentType.getProperties();
@@ -313,7 +410,8 @@
PropertyValue propertyValue = new PropertyValue();
propertyValue.setName(aProperty.getName());
propertyValue.setValue(aProperty.getDefaultValues());
- propertyValue.setValueFactory(propertyFactory.createObjectFactory(aProperty, propertyValue));
+ propertyValue.setValueFactory(propertyFactory
+ .createObjectFactory(aProperty, propertyValue));
/*
* propertyValue.setValueFactory(new SimplePropertyObjectFactory(aProperty,
* propertyValue.getValue()));
@@ -325,50 +423,6 @@
}
}
- /**
- * Validates a component definition, ensuring all component type configuration elements are satisfied
- */
- protected void validate(ComponentDefinition<Implementation<?>> definition) throws LoaderException {
- // validate refererences
- Implementation<?> implementation = definition.getImplementation();
- ComponentType<?, ?, ?> type = implementation.getComponentType();
- if (type == null) {
- return;
- }
- for (ReferenceDefinition referenceDef : type.getReferences().values()) {
- if (referenceDef.isAutowire() || !referenceDef.isRequired()) {
- continue;
- }
- String name = referenceDef.getName();
- ReferenceTarget target = definition.getReferenceTargets().get(name);
- if (target == null) {
- throw new MissingReferenceException(name);
- }
- int count = target.getTargets().size();
- Multiplicity multiplicity = referenceDef.getMultiplicity();
- switch (multiplicity) {
- case ZERO_N:
- break;
- case ZERO_ONE:
- if (count > 1) {
- throw new ReferenceMultiplicityViolationException(name, multiplicity, count);
- }
- break;
- case ONE_ONE:
- if (count != 1) {
- throw new ReferenceMultiplicityViolationException(name, multiplicity, count);
- }
- break;
- case ONE_N:
- if (count < 1) {
- throw new ReferenceMultiplicityViolationException(name, multiplicity, count);
- }
- break;
- }
-
- }
- }
-
private void readPropertyType(XMLStreamReader reader, Property property) throws MissingTypePropertyLoaderException {
String typeName = reader.getAttributeValue(null, PROPERTY_TYPE_ATTR);
@@ -408,12 +462,63 @@
if (xmlElement != null) {
property.setXmlElement(xmlElement);
}
+ }
+
+ @SuppressWarnings("unchecked")
+ protected void populateReferences(ComponentDefinition<Implementation<?>> componentDefinition) {
+ //bring the component definition in sync with the componenttype for reference definitions
+ ComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>> componentType =
+ componentDefinition.getImplementation().getComponentType();
+
+ for (ComponentTypeReferenceDefinition refDefn : componentType.getReferences().values()) {
+ if (componentDefinition.getReferences().get(refDefn.getName()) == null) {
+ componentDefinition.add(new ComponentReferenceDefinition(refDefn));
+ }
+ }
+ }
+
+ /**
+ * Validates a component definition, ensuring all component type configuration elements are satisfied
+ */
+ protected void validate(ComponentDefinition<Implementation<?>> definition) throws LoaderException {
+ // validate refererences
+ Implementation<?> implementation = definition.getImplementation();
+ ComponentType<?, ?, ?> type = implementation.getComponentType();
+ if (type == null) {
+ return;
+ }
+ for (ComponentReferenceDefinition referenceDef : definition.getReferences().values()) {
+ if (referenceDef.isAutowire()) {
+ continue;
+ }
+ String name = referenceDef.getName();
+ List<URI> targets = definition.getReferences().get(name).getTargets();
+ if (targets == null) {
+ throw new MissingReferenceException(name);
+ }
+ int count = targets.size();
+ Multiplicity multiplicity = referenceDef.getMultiplicity();
+ switch (multiplicity) {
+ case ZERO_N:
+ break;
+ case ZERO_ONE:
+ if (count > 1) {
+ throw new ReferenceMultiplicityViolationException(name, multiplicity, count);
+ }
+ break;
+ case ONE_ONE:
+ if (count != 1) {
+ throw new ReferenceMultiplicityViolationException(name, multiplicity, count);
+ }
+ break;
+ case ONE_N:
+ if (count < 1) {
+ throw new ReferenceMultiplicityViolationException(name, multiplicity, count);
+ }
+ break;
+ }
- /*
- * if (property.getXmlType() == null && property.getXmlElement() == null) { MissingTypePropertyLoaderException
- * ex = new MissingTypePropertyLoaderException(); ex.setPropertyName(property.getName());
- * ex.setLine(reader.getLocation().getLineNumber()); ex.setColumn(reader.getLocation().getColumnNumber()); throw
- * ex; }
- */
+ }
}
+
}
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentTypeElementLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentTypeElementLoader.java?view=diff&rev=522885&r1=522884&r2=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentTypeElementLoader.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentTypeElementLoader.java Tue Mar 27 05:18:53 2007
@@ -18,15 +18,14 @@
*/
package org.apache.tuscany.core.loader;
-import javax.xml.namespace.QName;
import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
+import static org.osoa.sca.Constants.SCA_NS;
+
+import javax.xml.namespace.QName;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
-import static org.osoa.sca.Constants.SCA_NS;
-import org.osoa.sca.annotations.Constructor;
-
import org.apache.tuscany.spi.annotation.Autowire;
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.deployer.DeploymentContext;
@@ -34,10 +33,12 @@
import org.apache.tuscany.spi.loader.LoaderException;
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 org.osoa.sca.annotations.Constructor;
/**
* @version $Rev$ $Date$
@@ -60,13 +61,13 @@
XMLStreamReader reader,
DeploymentContext deploymentContext) throws XMLStreamException, LoaderException {
assert COMPONENT_TYPE.equals(reader.getName());
- ComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> componentType;
+ ComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>> componentType;
if (object != null) {
assert object instanceof ComponentType;
// a specialized component type was passed in
- componentType = (ComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>) object;
+ componentType = (ComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>>) object;
} else {
- componentType = new ComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>();
+ componentType = new ComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>>();
}
while (true) {
@@ -75,8 +76,8 @@
ModelObject o = registry.load(parent, componentType, reader, deploymentContext);
if (o instanceof ServiceDefinition) {
componentType.add((ServiceDefinition) o);
- } else if (o instanceof ReferenceDefinition) {
- componentType.add((ReferenceDefinition) o);
+ } else if (o instanceof ComponentTypeReferenceDefinition) {
+ componentType.add((ComponentTypeReferenceDefinition) o);
} else if (o instanceof Property) {
componentType.add((Property<?>) o);
}
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/LoaderRegistryImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/LoaderRegistryImpl.java?view=diff&rev=522885&r1=522884&r2=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/LoaderRegistryImpl.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/LoaderRegistryImpl.java Tue Mar 27 05:18:53 2007
@@ -153,7 +153,11 @@
if (loader == null) {
throw new UnrecognizedComponentTypeException(key);
}
+ try {
loader.load(parent, implementation, deploymentContext);
+ } catch ( Exception e) {
+ e.printStackTrace();
+ }
}
public static interface Monitor {
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ReferenceLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ReferenceLoader.java?view=diff&rev=522885&r1=522884&r2=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ReferenceLoader.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ReferenceLoader.java Tue Mar 27 05:18:53 2007
@@ -18,65 +18,172 @@
*/
package org.apache.tuscany.core.loader;
-import javax.xml.namespace.QName;
import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
+import static org.osoa.sca.Constants.SCA_NS;
+
+import javax.xml.namespace.QName;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
-import static org.osoa.sca.Constants.SCA_NS;
-import org.osoa.sca.annotations.Constructor;
-
+import org.apache.tuscany.core.util.ReferenceLoaderHelper;
import org.apache.tuscany.spi.annotation.Autowire;
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.deployer.DeploymentContext;
import org.apache.tuscany.spi.extension.LoaderExtension;
+import org.apache.tuscany.spi.loader.DuplicateReferenceNameException;
import org.apache.tuscany.spi.loader.LoaderException;
import org.apache.tuscany.spi.loader.LoaderRegistry;
+import org.apache.tuscany.spi.loader.ReferenceMultiplicityViolationException;
import org.apache.tuscany.spi.loader.UnrecognizedElementException;
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.CompositeComponentType;
+import org.apache.tuscany.spi.model.CompositeReferenceDefinition;
import org.apache.tuscany.spi.model.ModelObject;
import org.apache.tuscany.spi.model.Multiplicity;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
import org.apache.tuscany.spi.model.ServiceContract;
import org.apache.tuscany.spi.util.stax.StaxUtil;
+import org.osoa.sca.annotations.Constructor;
/**
* Loads a reference from an XML-based assembly file
*
* @version $Rev$ $Date$
*/
-public class ReferenceLoader extends LoaderExtension<ReferenceDefinition> {
+public class ReferenceLoader extends LoaderExtension<ComponentTypeReferenceDefinition> {
+ public static final String NAME_ATTR = "name";
+
+ public static final String MULTIPLICITY_ATTR = "multiplicity";
+
+ public static final String WIRED_BY_IMPL_ATTR = "wiredByImpl";
+
+ public static final String TARGET_ATTR = "target";
+
+ public static final String PROMOTE_ATTR = "promote";
+
public static final QName REFERENCE = new QName(SCA_NS, "reference");
@Constructor
- public ReferenceLoader(@Autowire LoaderRegistry registry) {
+ public ReferenceLoader(@Autowire
+ LoaderRegistry registry) {
super(registry);
}
- public QName getXMLType() {
+ public QName getXMLType() {
return REFERENCE;
}
+
+ public ComponentTypeReferenceDefinition load(CompositeComponent parent,
+ ModelObject object,
+ XMLStreamReader reader,
+ DeploymentContext deploymentContext) throws XMLStreamException, LoaderException {
+ if (object instanceof CompositeComponentType<?, ?, ?>) {
+ return loadCompositeReference(parent, object, reader, deploymentContext);
+ //return loadComponentType(parent, object, reader, deploymentContext);
+ } else {
+ return loadComponentTypeReference(parent, object, reader, deploymentContext);
+ }
+ }
+
+
- public ReferenceDefinition load(CompositeComponent parent,
- ModelObject object, XMLStreamReader reader,
- DeploymentContext deploymentContext)
- throws XMLStreamException, LoaderException {
+ public ComponentTypeReferenceDefinition loadComponentTypeReference(CompositeComponent parent,
+ ModelObject object,
+ XMLStreamReader reader,
+ DeploymentContext deploymentContext) throws XMLStreamException, LoaderException {
+
assert REFERENCE.equals(reader.getName());
- String name = reader.getAttributeValue(null, "name");
- String multiplicityVal = reader.getAttributeValue(null, "multiplicity");
+ String name = reader.getAttributeValue(null, NAME_ATTR);
+ String multiplicityVal = reader.getAttributeValue(null, MULTIPLICITY_ATTR);
+ String wiredByImpl = reader.getAttributeValue(null, WIRED_BY_IMPL_ATTR);
+ String targets = reader.getAttributeValue(null, TARGET_ATTR);
Multiplicity multiplicity = StaxUtil.multiplicity(multiplicityVal, Multiplicity.ONE_ONE);
- ReferenceDefinition referenceDefinition = new ReferenceDefinition();
+
+
+
+ ComponentType<?, ?, ?> componentType = (ComponentType<?, ?, ?>)object;
+ if ( componentType.getReferences().get(name) != null) {
+ throw new DuplicateReferenceNameException(name,
+ DuplicateReferenceNameException.COMPONENT_TYPE,
+ "");
+ }
+ ComponentTypeReferenceDefinition referenceDefinition = new ComponentTypeReferenceDefinition();
+ referenceDefinition.setName(name);
referenceDefinition.setMultiplicity(multiplicity);
referenceDefinition.setName(name);
+ referenceDefinition.setWiredByImpl(Boolean.parseBoolean(wiredByImpl));
+
+ if (targets != null && targets.length() > 0 )
+ ReferenceLoaderHelper.populateRefTargets(referenceDefinition, targets);
+
+ /*if (!ReferenceLoaderHelper.validateMultiplicityAndTargets(multiplicity, referenceDefinition
+ .getTargets())) {
+ throw new ReferenceMultiplicityViolationException(name, multiplicity, referenceDefinition.getTargets().size());
+ }*/
+
+ while (true) {
+ switch (reader.next()) {
+ case START_ELEMENT:
+ ModelObject o = registry.load(parent, null, reader, deploymentContext);
+ if (o instanceof ServiceContract) {
+ referenceDefinition.setServiceContract((ServiceContract)o);
+ } else if (o instanceof BindingDefinition) {
+ referenceDefinition.addBinding((BindingDefinition)o);
+ } else {
+ throw new UnrecognizedElementException(reader.getName());
+ }
+ break;
+ case END_ELEMENT:
+ return referenceDefinition;
+ }
+ }
+ }
+
+ public CompositeReferenceDefinition loadCompositeReference(CompositeComponent parent,
+ ModelObject object,
+ XMLStreamReader reader,
+ DeploymentContext deploymentContext) throws XMLStreamException, LoaderException {
+
+ String name = reader.getAttributeValue(null, NAME_ATTR);
+ String multiplicityVal = reader.getAttributeValue(null, MULTIPLICITY_ATTR);
+ String wiredByImpl = reader.getAttributeValue(null, WIRED_BY_IMPL_ATTR);
+ String targets = reader.getAttributeValue(null, TARGET_ATTR);
+ String promotedComponentRefs = reader.getAttributeValue(null, PROMOTE_ATTR);
+ //if multiplicity is not set, it will be derived in the composite loader by looking
+ //at the multiplicity of all promoted references - which can be done only after the composite
+ //is completelly loaded
+ Multiplicity multiplicity = StaxUtil.multiplicity(multiplicityVal, null);
+
+
+ CompositeComponentType<?, ?, ?> compositeCompType = (CompositeComponentType<?, ?, ?>)object;
+ if ( compositeCompType.getDeclaredReferences().get(name) != null) {
+ throw new DuplicateReferenceNameException(name,
+ DuplicateReferenceNameException.COMPOSITE,
+ compositeCompType.getName());
+ }
+ CompositeReferenceDefinition referenceDefinition = new CompositeReferenceDefinition();
+ referenceDefinition.setName(name);
+ referenceDefinition.setMultiplicity(multiplicity);
+
+ if (promotedComponentRefs != null && promotedComponentRefs.length() > 0) {
+ ReferenceLoaderHelper.populatePromotedRefs(referenceDefinition, promotedComponentRefs);
+ }
+
+ if (targets != null && targets.length() > 0 )
+ ReferenceLoaderHelper.populateRefTargets(referenceDefinition, targets);
+
+ referenceDefinition.setWiredByImpl(Boolean.parseBoolean(wiredByImpl));
+
while (true) {
switch (reader.next()) {
case START_ELEMENT:
ModelObject o = registry.load(parent, null, reader, deploymentContext);
if (o instanceof ServiceContract) {
- referenceDefinition.setServiceContract((ServiceContract) o);
+ referenceDefinition.setServiceContract((ServiceContract)o);
} else if (o instanceof BindingDefinition) {
- referenceDefinition.addBinding((BindingDefinition) o);
+ referenceDefinition.addBinding((BindingDefinition)o);
} else {
throw new UnrecognizedElementException(reader.getName());
}
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/policy/PolicyBuilderRegistryImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/policy/PolicyBuilderRegistryImpl.java?view=diff&rev=522885&r1=522884&r2=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/policy/PolicyBuilderRegistryImpl.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/policy/PolicyBuilderRegistryImpl.java Tue Mar 27 05:18:53 2007
@@ -22,7 +22,7 @@
import java.util.List;
import org.apache.tuscany.spi.builder.BuilderException;
-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.policy.PolicyBuilderRegistry;
import org.apache.tuscany.spi.policy.SourcePolicyBuilder;
@@ -60,7 +60,7 @@
}
- public void buildSource(ReferenceDefinition referenceDefinition, OutboundWire wire) throws BuilderException {
+ public void buildSource(AbstractReferenceDefinition referenceDefinition, OutboundWire wire) throws BuilderException {
for (List<SourcePolicyBuilder> builders : sourceBuilders) {
for (SourcePolicyBuilder builder : builders) {
builder.build(referenceDefinition, wire);
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContributionProcessorRegistryImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContributionProcessorRegistryImpl.java?view=diff&rev=522885&r1=522884&r2=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContributionProcessorRegistryImpl.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContributionProcessorRegistryImpl.java Tue Mar 27 05:18:53 2007
@@ -82,8 +82,12 @@
if (processor == null) {
throw new UnsupportedContentTypeException(contentType, locationURL.getPath());
}
-
+ try {
processor.processContent(contribution, source, inputStream);
+ } catch ( Exception e ) {
+ e.printStackTrace();
+ }
+
}
public void processModel(Contribution contribution, URI source, Object modelObject) throws DeploymentException,
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/contribution/JavaContributionProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/contribution/JavaContributionProcessor.java?view=diff&rev=522885&r1=522884&r2=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/contribution/JavaContributionProcessor.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/contribution/JavaContributionProcessor.java Tue Mar 27 05:18:53 2007
@@ -83,7 +83,6 @@
cl.addURL(contribution.getLocation());
String clazzName = getClazzName(contribution.getArtifact(artifactURI).getLocation());
- System.out.println(clazzName);
Class clazz = cl.loadClass(clazzName);
Added: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/util/ReferenceLoaderHelper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/util/ReferenceLoaderHelper.java?view=auto&rev=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/util/ReferenceLoaderHelper.java (added)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/util/ReferenceLoaderHelper.java Tue Mar 27 05:18:53 2007
@@ -0,0 +1,167 @@
+/*
+ * 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.util;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.List;
+import java.util.StringTokenizer;
+
+import org.apache.tuscany.spi.loader.IncompatibleOverridingServiceContractException;
+import org.apache.tuscany.spi.loader.InvalidReferenceException;
+import org.apache.tuscany.spi.model.CompositeReferenceDefinition;
+import org.apache.tuscany.spi.model.Multiplicity;
+import org.apache.tuscany.spi.model.Operation;
+import org.apache.tuscany.spi.model.AbstractReferenceDefinition;
+import org.apache.tuscany.spi.model.ServiceContract;
+
+/**
+ * Functions to help in loading of references
+ */
+
+public final class ReferenceLoaderHelper {
+ /**
+ * Hide constructor
+ */
+ private ReferenceLoaderHelper() {
+ }
+
+ public static void populateRefTargets(AbstractReferenceDefinition refDefn, String concatenatedTargets) throws InvalidReferenceException {
+ StringTokenizer st = new StringTokenizer(concatenatedTargets);
+ while (st.hasMoreTokens()) {
+ try {
+ refDefn.addTarget(new URI(st.nextToken()));
+ } catch (URISyntaxException e) {
+ throw new InvalidReferenceException(e);
+ }
+ }
+ }
+
+ public static void populatePromotedRefs(CompositeReferenceDefinition refDefn, String concatenatedUris) throws InvalidReferenceException {
+ StringTokenizer st = new StringTokenizer(concatenatedUris);
+ while (st.hasMoreTokens()) {
+ try {
+ refDefn.addPromotedReference(new URI(st.nextToken()));
+ } catch (URISyntaxException e) {
+ throw new InvalidReferenceException(e);
+ }
+ }
+ }
+
+ public static boolean isCompatibleMultiplicity(Multiplicity definedMul, Multiplicity overridenMul) {
+ return ((definedMul == overridenMul) ||
+ (definedMul == Multiplicity.ZERO_ONE && overridenMul == Multiplicity.ZERO_N) ||
+ (definedMul == Multiplicity.ZERO_N && overridenMul == Multiplicity.ZERO_ONE) ||
+ (definedMul == Multiplicity.ONE_ONE && overridenMul == Multiplicity.ONE_N) ||
+ (definedMul == Multiplicity.ONE_N && overridenMul == Multiplicity.ONE_ONE));
+ }
+
+ public static boolean isValidMultiplicityOverride(Multiplicity definedMul, Multiplicity overridenMul) {
+ if (definedMul != overridenMul) {
+ switch (definedMul) {
+ case ZERO_N:
+ return overridenMul == Multiplicity.ZERO_ONE;
+ case ONE_N:
+ return overridenMul == Multiplicity.ONE_ONE;
+ default:
+ return false;
+ }
+ } else {
+ return true;
+ }
+ }
+
+ public static boolean validateMultiplicityAndTargets(Multiplicity multiplicity,
+ List<URI> targets) {
+ int count = targets.size();
+ switch (multiplicity) {
+ case ZERO_N:
+ break;
+ case ZERO_ONE:
+ if (count > 1) {
+ return false;
+ }
+ break;
+ case ONE_ONE:
+ if (count != 1) {
+ return false;
+ }
+ break;
+ case ONE_N:
+ if (count < 1) {
+ return false;
+ }
+ break;
+ }
+ return true;
+ }
+
+ public static void checkInterfaceCompatibility(ServiceContract<?> source,
+ ServiceContract<?> target,
+ boolean ignoreCallback) throws IncompatibleOverridingServiceContractException {
+ if (source == target) {
+ // Shortcut for performance
+ return;
+ }
+
+ //FIXME: we don't go into operations comparison for now since the service contract thta the
+ //interace loader loads does not have operation details as the intropection 'has not been deep'
+ //The JavaInterfaceLoader has set the 'deep' introspection to false....will fix this after
+ //sorting that out.
+
+ if (source.getInteractionScope() != target.getInteractionScope()) {
+ throw new IncompatibleOverridingServiceContractException(
+ "Interaction scopes settings do not match",
+ source, target);
+ }
+
+ for (Operation<?> operation : source.getOperations().values()) {
+ Operation<?> targetOperation = target.getOperation(operation.getName());
+ if (targetOperation == null) {
+ throw new IncompatibleOverridingServiceContractException("Operation not found on target",
+ source, target);
+ }
+ if (!targetOperation.equals(operation)) {
+ throw new IncompatibleOverridingServiceContractException(
+ "Target operations are not compatible",
+ source, target);
+ }
+ }
+
+ if (ignoreCallback) {
+ return;
+ }
+
+ for (Operation<?> operation : source.getCallbackOperations().values()) {
+ Operation<?> targetOperation = target.getCallbackOperations().get(operation.getName());
+ if (targetOperation == null) {
+ throw new IncompatibleOverridingServiceContractException(
+ "Callback operation not found on target",
+ source, target, null,
+ targetOperation);
+ }
+ if (!operation.equals(targetOperation)) {
+ throw new IncompatibleOverridingServiceContractException(
+ "Target callback operation is not compatible",
+ source, target, operation,
+ targetOperation);
+ }
+ }
+ }
+}
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/WireServiceExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/WireServiceExtension.java?view=diff&rev=522885&r1=522884&r2=522885
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/WireServiceExtension.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/WireServiceExtension.java Tue Mar 27 05:18:53 2007
@@ -30,11 +30,13 @@
import org.apache.tuscany.spi.component.ServiceBinding;
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.ReferenceDefinition;
+import org.apache.tuscany.spi.model.AbstractReferenceDefinition;
import org.apache.tuscany.spi.model.ReferenceTarget;
import org.apache.tuscany.spi.model.ServiceContract;
import org.apache.tuscany.spi.model.ServiceDefinition;
@@ -95,24 +97,23 @@
component.addInboundWire(wire);
}
// create outgoing reference wires
- for (ReferenceTarget referenceTarget : definition.getReferenceTargets().values()) {
- Map<String, ? extends ReferenceDefinition> references = componentType.getReferences();
- ReferenceDefinition mappedReference = references.get(referenceTarget.getReferenceName());
- assert mappedReference != null;
- List<OutboundWire> wires = createWire(referenceTarget, mappedReference);
- Multiplicity multiplicity = mappedReference.getMultiplicity();
- if (multiplicity == Multiplicity.ZERO_ONE || multiplicity == Multiplicity.ONE_ONE) {
- // 0..1 or 1..1
- for (OutboundWire wire : wires) {
- wire.setContainer(component);
- component.addOutboundWire(wire);
- }
- } else {
- // 0..N or 1..N
- for (OutboundWire wire : wires) {
- wire.setContainer(component);
+ for (ComponentReferenceDefinition refDefn : definition.getReferences().values()) {
+ if (!refDefn.isWiredByImpl()) {
+ List<OutboundWire> wires = createWire(refDefn.getTargets(), refDefn);
+ Multiplicity multiplicity = refDefn.getMultiplicity();
+ if (multiplicity == Multiplicity.ZERO_ONE || multiplicity == Multiplicity.ONE_ONE) {
+ // 0..1 or 1..1
+ for (OutboundWire wire : wires) {
+ wire.setContainer(component);
+ component.addOutboundWire(wire);
+ }
+ } else {
+ // 0..N or 1..N
+ for (OutboundWire wire : wires) {
+ wire.setContainer(component);
+ }
+ component.addOutboundWires(wires);
}
- component.addOutboundWires(wires);
}
}
}
@@ -260,6 +261,7 @@
}
}
+
/**
* Creates a wire for flowing outbound invocations from a reference
*
@@ -267,14 +269,14 @@
* @param definition the reference target configuration
* @return the wire the outbound wire
*/
- protected List<OutboundWire> createWire(ReferenceTarget target, ReferenceDefinition definition) {
+ protected List<OutboundWire> createWire(List<URI> targetUris, ComponentReferenceDefinition definition) {
ServiceContract<?> contract = definition.getServiceContract();
List<OutboundWire> outboundWires = new ArrayList<OutboundWire>();
- if (definition.isAutowire()) {
+ if (definition.getAssociatedCompTypeRefDefn().isAutowire() || definition.isAutowire()) {
OutboundWire wire = new OutboundWireImpl();
wire.setAutowire(true);
wire.setServiceContract(contract);
- wire.setReferenceName(target.getReferenceName());
+ wire.setReferenceName(definition.getName());
for (Operation<?> operation : contract.getOperations().values()) {
// TODO handle policy
OutboundInvocationChain chain = createOutboundChain(operation);
@@ -291,12 +293,12 @@
}
outboundWires.add(wire);
} else {
- for (URI uri : target.getTargets()) {
+ for (URI uri : targetUris) {
OutboundWire wire = new OutboundWireImpl();
QualifiedName qName = new QualifiedName(uri.toString());
wire.setTargetName(qName);
wire.setServiceContract(contract);
- wire.setReferenceName(target.getReferenceName());
+ wire.setReferenceName(definition.getName());
for (Operation<?> operation : contract.getOperations().values()) {
// TODO handle policy
OutboundInvocationChain chain = createOutboundChain(operation);
@@ -317,5 +319,5 @@
}
return outboundWires;
}
-
+
}
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/BuilderRegistryNoBindingsTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/BuilderRegistryNoBindingsTestCase.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/builder/BuilderRegistryNoBindingsTestCase.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/BuilderRegistryNoBindingsTestCase.java Tue Mar 27 05:18:53 2007
@@ -27,8 +27,9 @@
import org.apache.tuscany.spi.component.Service;
import org.apache.tuscany.spi.component.ServiceBinding;
import org.apache.tuscany.spi.deployer.DeploymentContext;
+import org.apache.tuscany.spi.model.ComponentTypeReferenceDefinition;
import org.apache.tuscany.spi.model.Multiplicity;
-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;
@@ -60,7 +61,7 @@
public void testReferenceBindingBuilderDispatch() throws Exception {
ReferenceBinding binding = EasyMock.createNiceMock(ReferenceBinding.class);
EasyMock.replay(binding);
- ReferenceDefinition definition = new ReferenceDefinition("foo", null, Multiplicity.ONE_ONE);
+ AbstractReferenceDefinition definition = new ComponentTypeReferenceDefinition("foo", null, Multiplicity.ONE_ONE);
Reference reference = registry.build(parent, definition, deploymentContext);
assertEquals(1, reference.getReferenceBindings().size());
assertTrue(reference.getReferenceBindings().get(0) instanceof LocalReferenceBinding);
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/BuilderRegistryTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/BuilderRegistryTestCase.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/builder/BuilderRegistryTestCase.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/BuilderRegistryTestCase.java Tue Mar 27 05:18:53 2007
@@ -38,11 +38,12 @@
import org.apache.tuscany.spi.model.BindingDefinition;
import org.apache.tuscany.spi.model.ComponentDefinition;
import org.apache.tuscany.spi.model.ComponentType;
+import org.apache.tuscany.spi.model.ComponentTypeReferenceDefinition;
import org.apache.tuscany.spi.model.CompositeComponentType;
import org.apache.tuscany.spi.model.CompositeImplementation;
import org.apache.tuscany.spi.model.Implementation;
import static org.apache.tuscany.spi.model.Multiplicity.ONE_ONE;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
+import org.apache.tuscany.spi.model.AbstractReferenceDefinition;
import org.apache.tuscany.spi.model.Scope;
import org.apache.tuscany.spi.model.ServiceContract;
import org.apache.tuscany.spi.model.ServiceDefinition;
@@ -111,12 +112,12 @@
EasyMock.replay(binding);
BindingBuilder<MockBindingDefinition> builder = EasyMock.createMock(BindingBuilder.class);
EasyMock.expect(builder.build(EasyMock.isA(CompositeComponent.class),
- EasyMock.isA(ReferenceDefinition.class),
+ EasyMock.isA(AbstractReferenceDefinition.class),
EasyMock.isA(MockBindingDefinition.class),
EasyMock.isA(DeploymentContext.class))).andReturn(binding).times(2);
EasyMock.replay(builder);
registry.register(MockBindingDefinition.class, builder);
- ReferenceDefinition definition = new ReferenceDefinition("foo", null, ONE_ONE);
+ AbstractReferenceDefinition definition = new ComponentTypeReferenceDefinition("foo", null, ONE_ONE);
definition.addBinding(new MockBindingDefinition());
definition.addBinding(new MockBindingDefinition());
Reference reference = registry.build(parent, definition, deploymentContext);
@@ -203,7 +204,11 @@
}
private class MockBindingDefinition extends BindingDefinition {
-
+ public Object clone() {
+ MockBindingDefinition mockClone = new MockBindingDefinition();
+ mockClone.setTargetUri(URI.create(this.getTargetUri().toString()));
+ return mockClone;
+ }
}
private class FooImplementation extends Implementation<ComponentType> {
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/deployer/BootstrapDeployerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/deployer/BootstrapDeployerTestCase.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/deployer/BootstrapDeployerTestCase.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/deployer/BootstrapDeployerTestCase.java Tue Mar 27 05:18:53 2007
@@ -33,11 +33,12 @@
import org.apache.tuscany.spi.model.ComponentDefinition;
import org.apache.tuscany.spi.model.ComponentType;
import org.apache.tuscany.spi.model.CompositeComponentType;
+import org.apache.tuscany.spi.model.CompositeReferenceDefinition;
import org.apache.tuscany.spi.model.Implementation;
import org.apache.tuscany.spi.model.Include;
import org.apache.tuscany.spi.model.Property;
import org.apache.tuscany.spi.model.PropertyValue;
-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;
@@ -68,7 +69,7 @@
URL scdl = BootstrapDeployerTestCase.class.getResource("boot1.scdl");
implementation.setScdlLocation(scdl);
deployer.load(parent, componentDefinition, deploymentContext);
- CompositeComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> composite =
+ CompositeComponentType<ServiceDefinition, CompositeReferenceDefinition, Property<?>> composite =
implementation.getComponentType();
assertNotNull(composite);
assertEquals("boot1", composite.getName());
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeBuilderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeBuilderTestCase.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/composite/CompositeBuilderTestCase.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeBuilderTestCase.java Tue Mar 27 05:18:53 2007
@@ -33,9 +33,12 @@
import org.apache.tuscany.spi.implementation.java.JavaMappedService;
import org.apache.tuscany.spi.implementation.java.PojoComponentType;
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.CompositeComponentType;
import org.apache.tuscany.spi.model.CompositeImplementation;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
+import org.apache.tuscany.spi.model.AbstractReferenceDefinition;
+import org.apache.tuscany.spi.model.CompositeReferenceDefinition;
import org.apache.tuscany.spi.model.ReferenceTarget;
import org.apache.tuscany.spi.model.Scope;
import org.apache.tuscany.spi.model.ServiceContract;
@@ -93,8 +96,8 @@
private ComponentDefinition createTopComponentDef() throws Exception {
- CompositeComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> outerType =
- new CompositeComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>>();
+ CompositeComponentType<JavaMappedService, CompositeReferenceDefinition, JavaMappedProperty<?>> outerType =
+ new CompositeComponentType<JavaMappedService, CompositeReferenceDefinition, JavaMappedProperty<?>>();
outerType.add(createSourceComponentDef());
outerType.add(createTargetComponentDef());
@@ -106,10 +109,10 @@
private ComponentDefinition<CompositeImplementation> createSourceComponentDef() throws Exception {
- CompositeComponentType<ServiceDefinition, ReferenceDefinition, JavaMappedProperty<?>> innerType =
- new CompositeComponentType<ServiceDefinition, ReferenceDefinition, JavaMappedProperty<?>>();
+ CompositeComponentType<ServiceDefinition, CompositeReferenceDefinition, JavaMappedProperty<?>> innerType =
+ new CompositeComponentType<ServiceDefinition, CompositeReferenceDefinition, JavaMappedProperty<?>>();
innerType.add(createInnerSourceComponentDef());
- ReferenceDefinition reference = new ReferenceDefinition();
+ CompositeReferenceDefinition reference = new CompositeReferenceDefinition();
reference.setName("TargetComponentRef");
JavaInterfaceProcessorRegistry registry = new JavaInterfaceProcessorRegistryImpl();
JavaServiceContract targetContract = registry.introspect(Target.class);
@@ -127,10 +130,15 @@
ComponentDefinition<CompositeImplementation> sourceComponentDefinition =
new ComponentDefinition<CompositeImplementation>("SourceComponent", innerImpl);
- ReferenceTarget refTarget = new ReferenceTarget();
+
+ /*ReferenceTarget refTarget = new ReferenceTarget();
refTarget.setReferenceName("TargetComponentRef");
refTarget.addTarget(new URI("TargetComponent"));
- sourceComponentDefinition.add(refTarget);
+ sourceComponentDefinition.add(refTarget);*/
+ ComponentReferenceDefinition compRef = new ComponentReferenceDefinition(innerType.getReferences().get("TargetComponentRef"));
+ compRef.setName("TargetComponentRef");
+ compRef.addTarget(new URI("TargetComponent"));
+ sourceComponentDefinition.add(compRef);
return sourceComponentDefinition;
}
@@ -161,11 +169,16 @@
JavaImplementation sourceImpl = new JavaImplementation(SourceImpl.class, sourceType);
ComponentDefinition<JavaImplementation> innerSourceComponentDefinition =
new ComponentDefinition<JavaImplementation>("InnerSourceComponent", sourceImpl);
- ReferenceTarget refTarget = new ReferenceTarget();
+
+ ComponentReferenceDefinition compRef = new ComponentReferenceDefinition(sourceType.getReferences().get("targetReference"));
+ compRef.setName("targetReference");
+ compRef.addTarget(new URI("TargetComponentRef"));
+ innerSourceComponentDefinition.add(compRef);
+ /*ReferenceTarget refTarget = new ReferenceTarget();
refTarget.setReferenceName("targetReference");
refTarget.addTarget(new URI("TargetComponentRef"));
innerSourceComponentDefinition.add(refTarget);
-
+ */
return innerSourceComponentDefinition;
}
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeLoaderWireResolutionTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeLoaderWireResolutionTestCase.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/composite/CompositeLoaderWireResolutionTestCase.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeLoaderWireResolutionTestCase.java Tue Mar 27 05:18:53 2007
@@ -23,11 +23,15 @@
import java.net.URISyntaxException;
import org.apache.tuscany.spi.implementation.java.PojoComponentType;
+import org.apache.tuscany.spi.loader.InvalidPromotedReferenceException;
import org.apache.tuscany.spi.loader.InvalidWireException;
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.CompositeComponentType;
+import org.apache.tuscany.spi.model.CompositeReferenceDefinition;
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.WireDefinition;
@@ -40,11 +44,11 @@
* @version $Rev$ $Date$
*/
public class CompositeLoaderWireResolutionTestCase extends TestCase {
- private CompositeComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> componentType;
+ private CompositeComponentType<ServiceDefinition, CompositeReferenceDefinition, Property<?>> componentType;
private CompositeLoader compositeLoader = new CompositeLoader(null, null);
public void setUp() throws Exception {
- componentType = new CompositeComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>();
+ componentType = new CompositeComponentType<ServiceDefinition, CompositeReferenceDefinition, Property<?>>();
componentType.setName("TestComposite");
//add a service to the composite
ServiceDefinition serviceDefn = new ServiceDefinition("compositeService1", null, true);
@@ -56,35 +60,38 @@
componentType.add(boundSvcDefn);
componentType.add(boundSvcDefnWithTarget);
- ReferenceDefinition compositeReference = new ReferenceDefinition("compositeReference", null);
+ CompositeReferenceDefinition compositeReference = new CompositeReferenceDefinition("compositeReference", null);
componentType.add(compositeReference);
- PojoComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> pojoComponentType1 =
- new PojoComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>();
+ PojoComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>> pojoComponentType1 =
+ new PojoComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>>();
ServiceDefinition pojoSvc1 = new ServiceDefinition("pojoSvc1", null, false);
pojoComponentType1.add(pojoSvc1);
- ReferenceDefinition pojoRef1 = new ReferenceDefinition("pojoRef1", null);
+ ComponentTypeReferenceDefinition pojoRef1 = new ComponentTypeReferenceDefinition("pojoRef1", null);
pojoComponentType1.add(pojoRef1);
JavaImplementation pojoImpl1 = new JavaImplementation(null, pojoComponentType1);
ComponentDefinition<JavaImplementation> component1 =
new ComponentDefinition<JavaImplementation>("Component1", pojoImpl1);
+ component1.add(new ComponentReferenceDefinition(pojoRef1));
componentType.add(component1);
- PojoComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> pojoComponentType2 =
- new PojoComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>();
+ PojoComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>> pojoComponentType2 =
+ new PojoComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, Property<?>>();
ServiceDefinition pojoSvc2 = new ServiceDefinition("pojoSvc2", null, false);
pojoComponentType2.add(pojoSvc2);
ServiceDefinition pojoSvc3 = new ServiceDefinition("pojoSvc3", null, false);
pojoComponentType2.add(pojoSvc3);
- ReferenceDefinition pojoRef2 = new ReferenceDefinition("pojoRef2", null);
+ ComponentTypeReferenceDefinition pojoRef2 = new ComponentTypeReferenceDefinition("pojoRef2", null);
pojoComponentType2.add(pojoRef2);
- ReferenceDefinition pojoRef3 = new ReferenceDefinition("pojoRef3", null);
+ ComponentTypeReferenceDefinition pojoRef3 = new ComponentTypeReferenceDefinition("pojoRef3", null);
pojoComponentType2.add(pojoRef3);
JavaImplementation pojoImpl2 = new JavaImplementation(null, pojoComponentType2);
ComponentDefinition<JavaImplementation> component2 =
new ComponentDefinition<JavaImplementation>("Component2", pojoImpl2);
+ component2.add(new ComponentReferenceDefinition(pojoRef2));
+ component2.add(new ComponentReferenceDefinition(pojoRef3));
componentType.add(component2);
}
@@ -114,7 +121,7 @@
compositeLoader.resolveWires(componentType);
}
- public void testCompositeSvc2ComponentQualifiedInvalid() throws URISyntaxException {
+ public void testCompositeSvc2ComponentQualifiedInvalid() throws URISyntaxException, InvalidPromotedReferenceException {
//undefined source and targets
WireDefinition wireDefn = new WireDefinition();
wireDefn.setSource(new URI("compositeService1"));
@@ -128,7 +135,7 @@
}
}
- public void testCompositeSvc2ComponentUnQualifiedInvalid() throws URISyntaxException {
+ public void testCompositeSvc2ComponentUnQualifiedInvalid() throws URISyntaxException, InvalidPromotedReferenceException {
//undefined source and targets
WireDefinition wireDefn = new WireDefinition();
wireDefn.setSource(new URI("compositeService1"));
@@ -160,7 +167,7 @@
compositeLoader.resolveWires(componentType);
}
- public void testComponent2CompositeReferenceUnQualifiedInvalid() throws URISyntaxException {
+ public void testComponent2CompositeReferenceUnQualifiedInvalid() throws URISyntaxException, InvalidPromotedReferenceException {
//undefined source and targets
WireDefinition wireDefn = new WireDefinition();
wireDefn.setSource(new URI("Component2"));
@@ -184,7 +191,7 @@
compositeLoader.resolveWires(componentType);
}
- public void testComponent2ComponentUnQualifedInvalid() throws URISyntaxException {
+ public void testComponent2ComponentUnQualifedInvalid() throws URISyntaxException, InvalidPromotedReferenceException {
//undefined source and targets
WireDefinition wireDefn = new WireDefinition();
wireDefn.setSource(new URI("Component1"));
@@ -198,7 +205,7 @@
}
}
- public void testInvalidWireDefinitions() throws URISyntaxException {
+ public void testInvalidWireDefinitions() throws URISyntaxException, InvalidPromotedReferenceException {
//undefined source and targets
WireDefinition wireDefn = new WireDefinition();
wireDefn.setSource(new URI("undefinedSource"));
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaBuilderPropertyTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaBuilderPropertyTestCase.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/java/JavaBuilderPropertyTestCase.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaBuilderPropertyTestCase.java Tue Mar 27 05:18:53 2007
@@ -28,8 +28,9 @@
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.ComponentTypeReferenceDefinition;
import org.apache.tuscany.spi.model.PropertyValue;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
+import org.apache.tuscany.spi.model.AbstractReferenceDefinition;
import org.apache.tuscany.spi.model.Scope;
import org.apache.tuscany.spi.model.ServiceDefinition;
@@ -51,8 +52,8 @@
public void testPropertyHandling() throws Exception {
JavaComponentBuilder builder = new JavaComponentBuilder();
builder.setScopeRegistry(registry);
- PojoComponentType<ServiceDefinition, ReferenceDefinition, JavaMappedProperty<?>> type =
- new PojoComponentType<ServiceDefinition, ReferenceDefinition, JavaMappedProperty<?>>();
+ PojoComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, JavaMappedProperty<?>> type =
+ new PojoComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, JavaMappedProperty<?>>();
JavaMappedProperty<String> property = new JavaMappedProperty<String>();
property.setName("test");
property.setDefaultValueFactory(new SingletonObjectFactory<String>("foo"));
@@ -72,8 +73,8 @@
public void testIntPropertyHandling() throws Exception {
JavaComponentBuilder builder = new JavaComponentBuilder();
builder.setScopeRegistry(registry);
- PojoComponentType<ServiceDefinition, ReferenceDefinition, JavaMappedProperty<?>> type =
- new PojoComponentType<ServiceDefinition, ReferenceDefinition, JavaMappedProperty<?>>();
+ PojoComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, JavaMappedProperty<?>> type =
+ new PojoComponentType<ServiceDefinition, ComponentTypeReferenceDefinition, JavaMappedProperty<?>>();
JavaMappedProperty<Integer> property = new JavaMappedProperty<Integer>();
property.setName("test");
property.setDefaultValueFactory(new SingletonObjectFactory<Integer>(1));
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/CallbackInvocationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/CallbackInvocationTestCase.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/java/integration/CallbackInvocationTestCase.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/CallbackInvocationTestCase.java Tue Mar 27 05:18:53 2007
@@ -38,6 +38,7 @@
import org.apache.tuscany.spi.implementation.java.JavaMappedService;
import org.apache.tuscany.spi.implementation.java.PojoComponentType;
import org.apache.tuscany.spi.model.ComponentDefinition;
+import org.apache.tuscany.spi.model.ComponentReferenceDefinition;
import org.apache.tuscany.spi.model.ReferenceTarget;
import org.apache.tuscany.spi.model.Scope;
import org.apache.tuscany.spi.model.ServiceContract;
@@ -226,7 +227,10 @@
impl.setComponentType(type);
impl.setImplementationClass(FooClient.class);
ComponentDefinition<JavaImplementation> def = new ComponentDefinition<JavaImplementation>(name, impl);
- def.getReferenceTargets().put("foo", refTarget);
+ ComponentReferenceDefinition compRef = new ComponentReferenceDefinition(type.getReferences().get("foo"));
+ compRef.addTarget(new URI("foo"));
+ def.add(compRef);
+ //def.getReferenceTargets().put("foo", refTarget);
return def;
}
@@ -250,7 +254,10 @@
refTarget.getTargets().add(new URI("foo"));
JavaImplementation impl = new JavaImplementation(FooPlainClient.class, type);
ComponentDefinition<JavaImplementation> def = new ComponentDefinition<JavaImplementation>(name, impl);
- def.getReferenceTargets().put("foo", refTarget);
+ ComponentReferenceDefinition compRef = new ComponentReferenceDefinition(type.getReferences().get("foo"));
+ compRef.addTarget(new URI("foo"));
+ def.add(compRef);
+ //def.getReferenceTargets().put("foo", refTarget);
return def;
}
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/ConstructorReferenceTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/ConstructorReferenceTestCase.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/processor/ConstructorReferenceTestCase.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/ConstructorReferenceTestCase.java Tue Mar 27 05:18:53 2007
@@ -44,7 +44,6 @@
Constructor<Foo> ctor = Foo.class.getConstructor(String.class);
processor.visitConstructor(null, ctor, type, null);
JavaMappedReference reference = type.getReferences().get("myRef");
- assertTrue(reference.isRequired());
assertEquals("myRef", reference.getName());
}
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/ReferenceProcessorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/ReferenceProcessorTestCase.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/processor/ReferenceProcessorTestCase.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/ReferenceProcessorTestCase.java Tue Mar 27 05:18:53 2007
@@ -58,7 +58,6 @@
null);
JavaMappedReference prop = type.getReferences().get("fooRequired");
assertNotNull(prop);
- assertTrue(prop.isRequired());
}
public void testMethodName() throws Exception {
@@ -82,7 +81,6 @@
processor.visitField(null, ReferenceProcessorTestCase.Foo.class.getDeclaredField("bazRequired"), type, null);
JavaMappedReference prop = type.getReferences().get("bazRequired");
assertNotNull(prop);
- assertTrue(prop.isRequired());
}
public void testFieldName() throws Exception {
@@ -199,7 +197,6 @@
assertNotNull(prop);
assertSame(Ref.class, prop.getServiceContract().getInterfaceClass());
assertEquals(Multiplicity.ONE_N, prop.getMultiplicity());
- assertTrue(prop.isRequired());
}
public void testMultiplicityTo0ToN() throws Exception {
@@ -208,7 +205,6 @@
assertNotNull(prop);
assertSame(Ref.class, prop.getServiceContract().getInterfaceClass());
assertEquals(Multiplicity.ZERO_N, prop.getMultiplicity());
- assertFalse(prop.isRequired());
}
public void testMultiplicity1ToNMethod() throws Exception {
@@ -217,7 +213,6 @@
assertNotNull(prop);
assertSame(Ref.class, prop.getServiceContract().getInterfaceClass());
assertEquals(Multiplicity.ONE_N, prop.getMultiplicity());
- assertTrue(prop.isRequired());
}
public void testMultiplicity0ToNMethod() throws Exception {
@@ -226,7 +221,5 @@
assertNotNull(prop);
assertSame(Ref.class, prop.getServiceContract().getInterfaceClass());
assertEquals(Multiplicity.ZERO_N, prop.getMultiplicity());
- assertFalse(prop.isRequired());
}
-
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org