THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
Early Binding
With the workspace in Tuscany all the information is available to resolve all the references with targets in the domain. An input set of composites such as:
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" targetNamespace="http://primary" xmlns:primary="http://primary" xmlns:dependent="http://dependent" name="CalculatorA"> <include name="dependent:CalculatorB"/> <component name="CalculatorServiceComponentA"> <implementation.java class="calculator.CalculatorServiceImpl"/> <service name="CalculatorService"> <binding.sca/> </service> <reference name="addService" target="AddServiceComponentA AddServiceComponentB"> <binding.sca/> <binding.ws/> </reference> <reference name="subtractService" target="SubtractServiceComponentB" /> <reference name="multiplyService" target="MultiplyServiceComponentA" /> <reference name="divideService" target="DivideServiceComponentA" /> </component> <component name="AddServiceComponentA"> <implementation.java class="calculator.AddServiceImpl" /> <service name="AddService"> <binding.sca/> </service> </component> <component name="MultiplyServiceComponentA"> <implementation.java class="calculator.MultiplyServiceImpl" /> </component> <component name="DivideServiceComponentA"> <implementation.java class="calculator.DivideServiceImpl" /> </component> </composite>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" targetNamespace="http://dependent" xmlns:dependent="http://dependent" name="CalculatorB"> <component name="AddServiceComponentB"> <implementation.java class="calculator.AddServiceImpl" /> <service name="AddService"> <binding.ws uri="http://L3AW203:8085/AddServiceComponentB"/> </service> </component> <component name="SubtractServiceComponentB"> <implementation.java class="calculator.SubtractServiceImpl" /> </component> </composite>
Will result in the followinf resolved composite
<?xml version='1.0' encoding='UTF-8'?> <composite targetNamespace="http://primary" name="CalculatorA" xmlns="http://www.osoa.org/xmlns/sca/1.0"> <component name="CalculatorServiceComponentA" uri="CalculatorServiceComponentA"> <implementation.java class="calculator.CalculatorServiceImpl" /> <service name="CalculatorService"> <interface.java interface="calculator.CalculatorService" /> <binding.sca name="CalculatorService" uri="/CalculatorServiceComponentA" /> <callback /> </service> <reference name="addService" target="AddServiceComponentA AddServiceComponentB"> <interface.java interface="calculator.AddService" /> <binding.sca name="addService#AddServiceComponentA/AddService" uri="/AddServiceComponentA" /> <binding.ws name="addService#AddServiceComponentB/AddService" uri="http://L3AW203:8085/AddServiceComponentB" /> <callback /> </reference> <reference name="subtractService" target="SubtractServiceComponentB"> <interface.java interface="calculator.SubtractService" /> <binding.sca name="subtractService#SubtractServiceComponentB/SubtractService" uri="/SubtractServiceComponentB" /> <callback /> </reference> <reference name="multiplyService" target="MultiplyServiceComponentA"> <interface.java interface="calculator.MultiplyService" /> <binding.sca name="multiplyService#MultiplyServiceComponentA/MultiplyServiceImpl" uri="/MultiplyServiceComponentA" /> <callback /> </reference> <reference name="divideService" target="DivideServiceComponentA"> <interface.java interface="calculator.DivideService" /> <binding.sca name="divideService#DivideServiceComponentA/DivideServiceImpl" uri="/DivideServiceComponentA" /> <callback /> </reference> </component> <component name="AddServiceComponentA" uri="AddServiceComponentA"> <implementation.java class="calculator.AddServiceImpl" /> <service name="AddService"> <interface.java interface="calculator.AddService" /> <binding.sca name="AddService" uri="/AddServiceComponentA" /> <callback /> </service> </component> <component name="MultiplyServiceComponentA" uri="MultiplyServiceComponentA"> <implementation.java class="calculator.MultiplyServiceImpl" /> <service name="MultiplyServiceImpl"> <interface.java interface="calculator.MultiplyServiceImpl" /> <binding.sca name="MultiplyServiceImpl" uri="/MultiplyServiceComponentA" /> <callback /> </service> </component> <component name="DivideServiceComponentA" uri="DivideServiceComponentA"> <implementation.java class="calculator.DivideServiceImpl" /> <service name="DivideServiceImpl"> <interface.java interface="calculator.DivideServiceImpl" /> <binding.sca name="DivideServiceImpl" uri="/DivideServiceComponentA" /> <callback /> </service> </component> <component name="AddServiceComponentB" uri="AddServiceComponentB"> <implementation.java class="calculator.AddServiceImpl" /> <service name="AddService"> <interface.java interface="calculator.AddService" /> <binding.ws name="AddService" uri="http://L3AW203:8085/AddServiceComponentB" /> <callback /> </service> </component> <component name="SubtractServiceComponentB" uri="SubtractServiceComponentB"> <implementation.java class="calculator.SubtractServiceImpl" /> <service name="SubtractService"> <interface.java interface="calculator.SubtractService" /> <binding.sca name="SubtractService" uri="/SubtractServiceComponentB" /> <callback /> </service> </component> </composite>