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>

Reply via email to