<?xml version="1.0" encoding="UTF-8"?>
<!--
 * 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.    
-->
<composite	xmlns="http://www.osoa.org/xmlns/sca/1.0"
		xmlns:t="http://tuscany.apache.org/xmlns/sca/1.0"
		targetNamespace="http://store"
		name="store-enterprise">
		
    <component name="StoreEnterprise">
        <t:implementation.widget location="uiservices/store.html"/>
        <service name="Widget">
        	<t:binding.http uri="/ui"/> 
        </service>
		<reference name="catalog" target="StoreEnterpriseCatalog">
		 	<t:binding.jsonrpc/>
		 </reference>
		 <reference name="shoppingCart" target="StoreEnterpriseShoppingCart/Cart">
		 	<t:binding.atom/>
		 </reference>
		 <reference name="shoppingTotal" target="StoreEnterpriseShoppingCart/Total">
		 	<t:binding.jsonrpc/>
		 </reference>
    </component>
    
	<component name="StoreEnterpriseCatalog">
		<implementation.java class="services.merger.MergedCatalogImpl"/> 
		<property name="currencyCode">USD</property>
		<service name="Catalog">
			<t:binding.jsonrpc/>
   		</service>
		<reference name="currencyConverter" target="StoreEnterpriseCurrencyConverter"/>	
		<reference name="fruitsCatalog" target="StoreEnterpriseFruitsCatalog"/>
		<reference name="vegetablesCatalog" target="StoreEnterpriseVegetablesCatalog"/> 
		<!-- reference name="vegetablesCatalog" target="VegetablesCatalogWebService">
			<binding.ws/>
		</reference-->
	</component>
 	
	<component name="StoreEnterpriseFruitsCatalog">
		<implementation.java class="services.FruitsCatalogImpl"/> 
		<property name="currencyCode">USD</property>
		<reference name="currencyConverter" target="StoreEnterpriseCurrencyConverter"/>	
	</component> 
    
    <component name="StoreEnterpriseVegetablesCatalog">
        <implementation.java class="services.VegetablesCatalogImpl"/>
    </component>    
 	
	<component name="StoreEnterpriseShoppingCart">
		<implementation.java class="services.ShoppingCartImpl"/>
		<service name="Cart">
			<t:binding.atom uri="/ShoppingCart/Cart"/>
		</service>    	
		<service name="Total">
			<t:binding.jsonrpc/>
		</service>
        <reference name="warehouse" multiplicity="0..1" >
            <binding.jms initialContextFactory="org.apache.activemq.jndi.ActiveMQInitialContextFactory"
                         jndiURL="tcp://localhost:61619">
                 <destination name="RequestQueue" create="always"/>
                 <response>
                     <destination name="ResponseQueue" create="always"/>
                 </response>
            </binding.jms>
        </reference>
	</component>
    
	<component name="StoreEnterpriseCurrencyConverter">
		<implementation.java class="services.CurrencyConverterImpl"/>
	</component>     

</composite>
