They should be working for Java types. Could you open a Jira and post the two component classes (particularly the interfaces) you are trying to wire together along with the SCDL? I'll try and take a look this weekend.

Jim


On Apr 27, 2006, at 1:08 PM, Ignacio Silva-Lepe wrote:

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.wireSour ce(AbstractCompositeContext.java:594)

at org.apache.tuscany.core.context.impl.AbstractCompositeContext.start (AbstractCompositeContext.java:165)

at org.apache.tuscany.core.context.scope.CompositeScopeContext.registerFa ctory(CompositeScopeContext.java:95)

at org.apache.tuscany.core.context.impl.AbstractCompositeContext.register Configuration(AbstractCompositeContext.java:474)

at org.apache.tuscany.core.context.impl.AbstractCompositeContext.register ModelObject(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