Not sure whether references with multiplicity *..n are available yet. If
they're not I can wait. But in case they are, I am getting the following
exception:
Exception in thread "main"
org.apache.tuscany.core.builder.BuilderConfigException: Incompatible source and
target interface types for reference [warehouses]
Context stack trace:
[tuscany.root][supplychain][supplychain][RetailerComponent][WarehouseComponent1][tuscany.root]
at
org.apache.tuscany.core.builder.impl.DefaultWireBuilder.connect(DefaultWireBuilder.java:64)
at
org.apache.tuscany.core.runtime.RuntimeContextImpl.connect(RuntimeContextImpl.java:166)
at
org.apache.tuscany.core.context.impl.AbstractCompositeContext.connect(AbstractCompositeContext.java:793)
at
org.apache.tuscany.core.context.impl.AbstractCompositeContext.wireSource(AbstractCompositeContext.java:594)
at
org.apache.tuscany.core.context.impl.AbstractCompositeContext.start(AbstractCompositeContext.java:165)
at
org.apache.tuscany.core.context.scope.CompositeScopeContext.registerFactory(CompositeScopeContext.java:95)
at
org.apache.tuscany.core.context.impl.AbstractCompositeContext.registerConfiguration(AbstractCompositeContext.java:474)
at
org.apache.tuscany.core.context.impl.AbstractCompositeContext.registerModelObject(AbstractCompositeContext.java:421)
at
org.apache.tuscany.core.client.BootstrapHelper.registerModule(BootstrapHelper.java:133)
at org.apache.tuscany.core.client.TuscanyRuntime.<init>(TuscanyRuntime.java:104)
at
org.apache.tuscany.samples.supplychain.SupplychainClient.main(SupplychainClient.java:43)
when I try to use the following component impl:
@Service(Retailer.class)
public class RetailerComponentImpl implements Retailer {
@Reference(name="warehouses", required=true)
private List<Warehouse> warehouses;
public void submitOrder(String order) {
for (Warehouse warehouse : warehouses) {
warehouse.fulfillOrder(order + ", submitted");
}
}
}
for the following set of definitions:
<component name="RetailerComponent">
<implementation.java
class="org.apache.tuscany.samples.supplychain.RetailerComponentImpl"/>
<references>
<v:warehouses>WarehouseComponent1</v:warehouses>
<v:warehouses>WarehouseComponent2</v:warehouses>
</references>
</component>
<component name="WarehouseComponent1">
<implementation.java
class="org.apache.tuscany.samples.supplychain.WarehouseComponentImpl"/>
<references>
<v:shipper>ShipperComponent</v:shipper>
</references>
</component>
<component name="WarehouseComponent2">
<implementation.java
class="org.apache.tuscany.samples.supplychain.WarehouseComponentImpl"/>
<references>
<v:shipper>ShipperComponent</v:shipper>
</references>
</component>