You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by sl...@apache.org on 2007/09/20 22:44:04 UTC

svn commit: r577910 [6/6] - in /incubator/tuscany/java/sca: ./ demos/mortgage-creditcheck/ demos/mortgage-creditcheck/src/main/webapp/META-INF/ distribution/ distribution/bundle/ distribution/manifest/ distribution/src/main/assembly/ distribution/src/m...

Added: incubator/tuscany/java/sca/samples/quote-xquery/README
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/quote-xquery/README?rev=577910&view=auto
==============================================================================
--- incubator/tuscany/java/sca/samples/quote-xquery/README (added)
+++ incubator/tuscany/java/sca/samples/quote-xquery/README Thu Sep 20 13:43:32 2007
@@ -0,0 +1,531 @@
+Quote Xquery Sample
+===================
+
+ This sample covers the most important integration scenarios for the xquery
+ implementation type and its corresponding saxon data bindings.
+ 
+If you just want to run it to see what happens open two command prompts (one for the server
+and the other for the client), navigate to this sample directory and do:
+
+ant run-server
+ant run
+
+OR if you don't have ant, on Windows do
+
+In the directory samples\quote-xquery use the JDK 1.5 java command to run the class xquery.quote.XQueryQuoteClient 
+
+Linux:   java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-quote-xquery.jar xquery.quote.XQueryQuoteServer
+Linux:   java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-quote-xquery.jar xquery.quote.XQueryQuoteClient
+
+Windows: java -cp ..\..\lib\tuscany-sca-manifest.jar;target\sample-quote-xquery.jar xquery.quote.XQueryQuoteServer
+Windows: java -cp ..\..\lib\tuscany-sca-manifest.jar;target\sample-quote-xquery.jar xquery.quote.XQueryQuoteClient
+
+Results
+----------
+The sample when run should simply display on the standard output some startup messages followed by:
+
+The service side:
+Buildfile: build.xml
+
+init:
+
+generate-sdo:
+     [java] >>  Generating code
+     [java] >>  Generating packages
+     [java] >>  Generating package QuotePackageImpl
+     [java] >>  Generating Java interface org.example.quote.QuoteFactory
+     [java] >>  Generating /TargetProject/org/example/quote/QuoteFactory.java
+     [java] >>  Examining old /TargetProject/org/example/quote/QuoteFactory.java
+     [java] >>  Generating Java class org.example.quote.impl.QuoteFactoryImpl
+     [java] >>  Generating /TargetProject/org/example/quote/impl/QuoteFactoryImpl.java
+     [java] >>  Examining old /TargetProject/org/example/quote/impl/QuoteFactoryImpl.java
+     [java] >>  Generating Quote
+     [java] >>  Generating Java interface org.example.quote.Quote
+     [java] >>  Generating /TargetProject/org/example/quote/Quote.java
+     [java] >>  Examining old /TargetProject/org/example/quote/Quote.java
+     [java] >>  Generating Java class org.example.quote.impl.QuoteImpl
+     [java] >>  Generating /TargetProject/org/example/quote/impl/QuoteImpl.java
+     [java] >>  Examining old /TargetProject/org/example/quote/impl/QuoteImpl.java
+     [java] >>  Generating Response
+     [java] >>  Generating Java interface org.example.quote.QuoteResponse
+     [java] >>  Generating /TargetProject/org/example/quote/QuoteResponse.java
+     [java] >>  Examining old /TargetProject/org/example/quote/QuoteResponse.java
+     [java] >>  Generating Java class org.example.quote.impl.QuoteResponseImpl
+     [java] >>  Generating /TargetProject/org/example/quote/impl/QuoteResponseImpl.java
+     [java] >>  Examining old /TargetProject/org/example/quote/impl/QuoteResponseImpl.java
+     [java] >>  Generating code
+     [java] >>  Generating packages
+     [java] >>  Generating package AvailPackageImpl
+     [java] >>  Generating Java interface org.example.avail.AvailFactory
+     [java] >>  Generating /TargetProject/org/example/avail/AvailFactory.java
+     [java] >>  Examining old /TargetProject/org/example/avail/AvailFactory.java
+     [java] >>  Generating Java class org.example.avail.impl.AvailFactoryImpl
+     [java] >>  Generating /TargetProject/org/example/avail/impl/AvailFactoryImpl.java
+     [java] >>  Examining old /TargetProject/org/example/avail/impl/AvailFactoryImpl.java
+     [java] >>  Generating Quote
+     [java] >>  Generating Java interface org.example.avail.AvailQuote
+     [java] >>  Generating /TargetProject/org/example/avail/AvailQuote.java
+     [java] >>  Examining old /TargetProject/org/example/avail/AvailQuote.java
+     [java] >>  Generating Java class org.example.avail.impl.AvailQuoteImpl
+     [java] >>  Generating /TargetProject/org/example/avail/impl/AvailQuoteImpl.java
+     [java] >>  Examining old /TargetProject/org/example/avail/impl/AvailQuoteImpl.java
+     [java] >>  Generating Request
+     [java] >>  Generating Java interface org.example.avail.AvailRequest
+     [java] >>  Generating /TargetProject/org/example/avail/AvailRequest.java
+     [java] >>  Examining old /TargetProject/org/example/avail/AvailRequest.java
+     [java] >>  Generating Java class org.example.avail.impl.AvailRequestImpl
+     [java] >>  Generating /TargetProject/org/example/avail/impl/AvailRequestImpl.java
+     [java] >>  Examining old /TargetProject/org/example/avail/impl/AvailRequestImpl.java
+     [java] >>  Generating code
+     [java] >>  Generating packages
+     [java] >>  Generating package PricePackageImpl
+     [java] >>  Generating Java interface org.example.price.PriceFactory
+     [java] >>  Generating /TargetProject/org/example/price/PriceFactory.java
+     [java] >>  Examining old /TargetProject/org/example/price/PriceFactory.java
+     [java] >>  Generating Java class org.example.price.impl.PriceFactoryImpl
+     [java] >>  Generating /TargetProject/org/example/price/impl/PriceFactoryImpl.java
+     [java] >>  Examining old /TargetProject/org/example/price/impl/PriceFactoryImpl.java
+     [java] >>  Generating Quote
+     [java] >>  Generating Java interface org.example.price.PriceQuote
+     [java] >>  Generating /TargetProject/org/example/price/PriceQuote.java
+     [java] >>  Examining old /TargetProject/org/example/price/PriceQuote.java
+     [java] >>  Generating Java class org.example.price.impl.PriceQuoteImpl
+     [java] >>  Generating /TargetProject/org/example/price/impl/PriceQuoteImpl.java
+     [java] >>  Examining old /TargetProject/org/example/price/impl/PriceQuoteImpl.java
+     [java] >>  Generating Request
+     [java] >>  Generating Java interface org.example.price.PriceRequest
+     [java] >>  Generating /TargetProject/org/example/price/PriceRequest.java
+     [java] >>  Examining old /TargetProject/org/example/price/PriceRequest.java
+     [java] >>  Generating Java class org.example.price.impl.PriceRequestImpl
+     [java] >>  Generating /TargetProject/org/example/price/impl/PriceRequestImpl.java
+     [java] >>  Examining old /TargetProject/org/example/price/impl/PriceRequestImpl.java
+     [java] >>  Generating Requests
+     [java] >>  Generating Java interface org.example.price.PriceRequests
+     [java] >>  Generating /TargetProject/org/example/price/PriceRequests.java
+     [java] >>  Examining old /TargetProject/org/example/price/PriceRequests.java
+     [java] >>  Generating Java class org.example.price.impl.PriceRequestsImpl
+     [java] >>  Generating /TargetProject/org/example/price/impl/PriceRequestsImpl.java
+     [java] >>  Examining old /TargetProject/org/example/price/impl/PriceRequestsImpl.java
+     [java] >>  Generating Ship Address
+     [java] >>  Generating Java interface org.example.price.ShipAddress
+     [java] >>  Generating /TargetProject/org/example/price/ShipAddress.java
+     [java] >>  Examining old /TargetProject/org/example/price/ShipAddress.java
+     [java] >>  Generating Java class org.example.price.impl.ShipAddressImpl
+     [java] >>  Generating /TargetProject/org/example/price/impl/ShipAddressImpl.java
+     [java] >>  Examining old /TargetProject/org/example/price/impl/ShipAddressImpl.java
+
+compile:
+      [jar] Building jar: C:\Apache\tuscany-sca-1.0-incubating-SNAPSHOT\samples\quote-xquery\target\sample-quote-xquery.jar
+
+run-server:
+     [java] Sep 18, 2007 1:14:16 PM org.apache.catalina.core.StandardEngine start
+     [java] INFO: Starting Servlet Engine: Apache Tomcat/6.0.10
+     [java] Sep 18, 2007 1:14:16 PM org.apache.catalina.startup.ContextConfig defaultWebConfig
+     [java] INFO: No default web.xml
+     [java] Sep 18, 2007 1:14:16 PM org.apache.catalina.startup.DigesterFactory register
+     [java] WARNING: Could not get url for /javax/servlet/jsp/resources/jsp_2_0.xsd
+     [java] Sep 18, 2007 1:14:16 PM org.apache.catalina.startup.DigesterFactory register
+     [java] WARNING: Could not get url for /javax/servlet/jsp/resources/web-jsptaglibrary_1_1.dtd
+     [java] Sep 18, 2007 1:14:16 PM org.apache.catalina.startup.DigesterFactory register
+     [java] WARNING: Could not get url for /javax/servlet/jsp/resources/web-jsptaglibrary_1_2.dtd
+     [java] Sep 18, 2007 1:14:16 PM org.apache.catalina.startup.DigesterFactory register
+     [java] WARNING: Could not get url for /javax/servlet/jsp/resources/web-jsptaglibrary_2_0.xsd
+     [java] Sep 18, 2007 1:14:16 PM org.apache.catalina.startup.DigesterFactory register
+     [java] WARNING: Could not get url for /javax/servlet/resources/j2ee_web_services_1_1.xsd
+     [java] Sep 18, 2007 1:14:17 PM org.apache.coyote.http11.Http11Protocol init
+     [java] INFO: Initializing Coyote HTTP/1.1 on http-8085
+     [java] Sep 18, 2007 1:14:17 PM org.apache.coyote.http11.Http11Protocol start
+     [java] INFO: Starting Coyote HTTP/1.1 on http-8085
+     [java] Sep 18, 2007 1:14:17 PM org.apache.tuscany.sca.http.tomcat.TomcatServer addServletMapping
+     [java] INFO: Added Servlet mapping: http://localhost:8085/QuoteJoinService
+     [java] Sep 18, 2007 1:14:17 PM org.apache.tuscany.sca.http.tomcat.TomcatServer addServletMapping
+     [java] INFO: Added Servlet mapping: http://localhost:8085/AvailQuoteProviderService
+     [java] XQuery Quote server started (press enter to shutdown)
+     [java] Sep 18, 2007 1:16:54 PM org.apache.coyote.http11.Http11Protocol destroy
+     [java] INFO: Stopping Coyote HTTP/1.1 on http-8085
+
+BUILD SUCCESSFUL
+Total time: 2 minutes 51 seconds
+
+
+The client side:
+Buildfile: build.xml
+
+init:
+
+generate-sdo:
+     [java] >>  Generating code
+     [java] >>  Generating packages
+     [java] >>  Generating package QuotePackageImpl
+     [java] >>  Generating Java interface org.example.quote.QuoteFactory
+     [java] >>  Generating /TargetProject/org/example/quote/QuoteFactory.java
+     [java] >>  Examining old /TargetProject/org/example/quote/QuoteFactory.java
+     [java] >>  Generating Java class org.example.quote.impl.QuoteFactoryImpl
+     [java] >>  Generating /TargetProject/org/example/quote/impl/QuoteFactoryImpl.java
+     [java] >>  Examining old /TargetProject/org/example/quote/impl/QuoteFactoryImpl.java
+     [java] >>  Generating Quote
+     [java] >>  Generating Java interface org.example.quote.Quote
+     [java] >>  Generating /TargetProject/org/example/quote/Quote.java
+     [java] >>  Examining old /TargetProject/org/example/quote/Quote.java
+     [java] >>  Generating Java class org.example.quote.impl.QuoteImpl
+     [java] >>  Generating /TargetProject/org/example/quote/impl/QuoteImpl.java
+     [java] >>  Examining old /TargetProject/org/example/quote/impl/QuoteImpl.java
+     [java] >>  Generating Response
+     [java] >>  Generating Java interface org.example.quote.QuoteResponse
+     [java] >>  Generating /TargetProject/org/example/quote/QuoteResponse.java
+     [java] >>  Examining old /TargetProject/org/example/quote/QuoteResponse.java
+     [java] >>  Generating Java class org.example.quote.impl.QuoteResponseImpl
+     [java] >>  Generating /TargetProject/org/example/quote/impl/QuoteResponseImpl.java
+     [java] >>  Examining old /TargetProject/org/example/quote/impl/QuoteResponseImpl.java
+     [java] >>  Generating code
+     [java] >>  Generating packages
+     [java] >>  Generating package AvailPackageImpl
+     [java] >>  Generating Java interface org.example.avail.AvailFactory
+     [java] >>  Generating /TargetProject/org/example/avail/AvailFactory.java
+     [java] >>  Examining old /TargetProject/org/example/avail/AvailFactory.java
+     [java] >>  Generating Java class org.example.avail.impl.AvailFactoryImpl
+     [java] >>  Generating /TargetProject/org/example/avail/impl/AvailFactoryImpl.java
+     [java] >>  Examining old /TargetProject/org/example/avail/impl/AvailFactoryImpl.java
+     [java] >>  Generating Quote
+     [java] >>  Generating Java interface org.example.avail.AvailQuote
+     [java] >>  Generating /TargetProject/org/example/avail/AvailQuote.java
+     [java] >>  Examining old /TargetProject/org/example/avail/AvailQuote.java
+     [java] >>  Generating Java class org.example.avail.impl.AvailQuoteImpl
+     [java] >>  Generating /TargetProject/org/example/avail/impl/AvailQuoteImpl.java
+     [java] >>  Examining old /TargetProject/org/example/avail/impl/AvailQuoteImpl.java
+     [java] >>  Generating Request
+     [java] >>  Generating Java interface org.example.avail.AvailRequest
+     [java] >>  Generating /TargetProject/org/example/avail/AvailRequest.java
+     [java] >>  Examining old /TargetProject/org/example/avail/AvailRequest.java
+     [java] >>  Generating Java class org.example.avail.impl.AvailRequestImpl
+     [java] >>  Generating /TargetProject/org/example/avail/impl/AvailRequestImpl.java
+     [java] >>  Examining old /TargetProject/org/example/avail/impl/AvailRequestImpl.java
+     [java] >>  Generating code
+     [java] >>  Generating packages
+     [java] >>  Generating package PricePackageImpl
+     [java] >>  Generating Java interface org.example.price.PriceFactory
+     [java] >>  Generating /TargetProject/org/example/price/PriceFactory.java
+     [java] >>  Examining old /TargetProject/org/example/price/PriceFactory.java
+     [java] >>  Generating Java class org.example.price.impl.PriceFactoryImpl
+     [java] >>  Generating /TargetProject/org/example/price/impl/PriceFactoryImpl.java
+     [java] >>  Examining old /TargetProject/org/example/price/impl/PriceFactoryImpl.java
+     [java] >>  Generating Quote
+     [java] >>  Generating Java interface org.example.price.PriceQuote
+     [java] >>  Generating /TargetProject/org/example/price/PriceQuote.java
+     [java] >>  Examining old /TargetProject/org/example/price/PriceQuote.java
+     [java] >>  Generating Java class org.example.price.impl.PriceQuoteImpl
+     [java] >>  Generating /TargetProject/org/example/price/impl/PriceQuoteImpl.java
+     [java] >>  Examining old /TargetProject/org/example/price/impl/PriceQuoteImpl.java
+     [java] >>  Generating Request
+     [java] >>  Generating Java interface org.example.price.PriceRequest
+     [java] >>  Generating /TargetProject/org/example/price/PriceRequest.java
+     [java] >>  Examining old /TargetProject/org/example/price/PriceRequest.java
+     [java] >>  Generating Java class org.example.price.impl.PriceRequestImpl
+     [java] >>  Generating /TargetProject/org/example/price/impl/PriceRequestImpl.java
+     [java] >>  Examining old /TargetProject/org/example/price/impl/PriceRequestImpl.java
+     [java] >>  Generating Requests
+     [java] >>  Generating Java interface org.example.price.PriceRequests
+     [java] >>  Generating /TargetProject/org/example/price/PriceRequests.java
+     [java] >>  Examining old /TargetProject/org/example/price/PriceRequests.java
+     [java] >>  Generating Java class org.example.price.impl.PriceRequestsImpl
+     [java] >>  Generating /TargetProject/org/example/price/impl/PriceRequestsImpl.java
+     [java] >>  Examining old /TargetProject/org/example/price/impl/PriceRequestsImpl.java
+     [java] >>  Generating Ship Address
+     [java] >>  Generating Java interface org.example.price.ShipAddress
+     [java] >>  Generating /TargetProject/org/example/price/ShipAddress.java
+     [java] >>  Examining old /TargetProject/org/example/price/ShipAddress.java
+     [java] >>  Generating Java class org.example.price.impl.ShipAddressImpl
+     [java] >>  Generating /TargetProject/org/example/price/impl/ShipAddressImpl.java
+     [java] >>  Examining old /TargetProject/org/example/price/impl/ShipAddressImpl.java
+
+compile:
+
+run:
+     [java] Input quote for the price list:
+     [java] <?xml version="1.0" encoding="ASCII"?>
+     [java] <priceQuote xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:pri="http://www.example.org/price" xsi:type="pri:PriceQuote">
+     [java]   <customerName>Acme Inc</customerName>
+     [java]   <shipAddress street="12 Springs Rd" city="Morris Plains" state="nj" zip="07960"/>
+     [java]   <priceRequests>
+     [java]     <priceRequest>
+     [java]       <widgetId>12</widgetId>
+     [java]       <price>1.0</price>
+     [java]     </priceRequest>
+     [java]     <priceRequest>
+     [java]       <widgetId>134</widgetId>
+     [java]       <price>34.1</price>
+     [java]     </priceRequest>
+     [java]     <priceRequest>
+     [java]       <widgetId>211</widgetId>
+     [java]       <price>10.0</price>
+     [java]     </priceRequest>
+     [java]   </priceRequests>
+     [java] </priceQuote>
+     [java] 
+     [java] Input quote for the availability:
+     [java] <?xml version="1.0" encoding="ASCII"?>
+     [java] <availQuote xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ava="http://www.example.org/avail" xsi:type="ava:AvailQuote">
+     [java]   <availRequest>
+     [java]     <widgetId>12</widgetId>
+     [java]     <requestedQuantity>10</requestedQuantity>
+     [java]     <quantityAvail>true</quantityAvail>
+     [java]     <shipDate>2003-03-22</shipDate>
+     [java]   </availRequest>
+     [java]   <availRequest>
+     [java]     <widgetId>134</widgetId>
+     [java]     <requestedQuantity>345</requestedQuantity>
+     [java]     <quantityAvail>false</quantityAvail>
+     [java]     <shipDate>BackOrder</shipDate>
+     [java]   </availRequest>
+     [java]   <availRequest>
+     [java]     <widgetId>211</widgetId>
+     [java]     <requestedQuantity>100</requestedQuantity>
+     [java]     <quantityAvail>true</quantityAvail>
+     [java]     <shipDate>2003-04-21</shipDate>
+     [java]   </availRequest>
+     [java] </availQuote>
+     [java] 
+     [java] 
+     [java] Output quote from local join:
+     [java] <?xml version="1.0" encoding="ASCII"?>
+     [java] <quote xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:quo="http://www.example.org/quote" xsi:type="quo:Quote">
+     [java]   <name>Acme Inc</name>
+     [java]   <address>12 Springs Rd,Morris Plains,NJ,07960</address>
+     [java]   <quoteResponse>
+     [java]     <widgetId>12</widgetId>
+     [java]     <unitPrice>1.0</unitPrice>
+     [java]     <requestedQuantity>10</requestedQuantity>
+     [java]     <fillOrder>true</fillOrder>
+     [java]     <shipDate>2003-03-22</shipDate>
+     [java]     <taxRate>0.1</taxRate>
+     [java]     <totalCost>11.0</totalCost>
+     [java]   </quoteResponse>
+     [java]   <quoteResponse>
+     [java]     <widgetId>134</widgetId>
+     [java]     <unitPrice>34.1</unitPrice>
+     [java]     <requestedQuantity>345</requestedQuantity>
+     [java]     <fillOrder>false</fillOrder>
+     [java]     <shipDate>BackOrder</shipDate>
+     [java]     <taxRate>0.1</taxRate>
+     [java]     <totalCost>0.0</totalCost>
+     [java]   </quoteResponse>
+     [java]   <quoteResponse>
+     [java]     <widgetId>211</widgetId>
+     [java]     <unitPrice>10.0</unitPrice>
+     [java]     <requestedQuantity>100</requestedQuantity>
+     [java]     <fillOrder>true</fillOrder>
+     [java]     <shipDate>2003-04-21</shipDate>
+     [java]     <taxRate>0.1</taxRate>
+     [java]     <totalCost>1100.0</totalCost>
+     [java]   </quoteResponse>
+     [java] </quote>
+     [java] 
+     [java] 
+     [java] Output quote from local join (second invokation):
+     [java] <?xml version="1.0" encoding="ASCII"?>
+     [java] <quote xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:quo="http://www.example.org/quote" xsi:type="quo:Quote">
+     [java]   <name>Acme Inc</name>
+     [java]   <address>12 Springs Rd,Morris Plains,NJ,07960</address>
+     [java]   <quoteResponse>
+     [java]     <widgetId>12</widgetId>
+     [java]     <unitPrice>1.0</unitPrice>
+     [java]     <requestedQuantity>10</requestedQuantity>
+     [java]     <fillOrder>true</fillOrder>
+     [java]     <shipDate>2003-03-22</shipDate>
+     [java]     <taxRate>0.2</taxRate>
+     [java]     <totalCost>12.0</totalCost>
+     [java]   </quoteResponse>
+     [java]   <quoteResponse>
+     [java]     <widgetId>134</widgetId>
+     [java]     <unitPrice>34.1</unitPrice>
+     [java]     <requestedQuantity>345</requestedQuantity>
+     [java]     <fillOrder>false</fillOrder>
+     [java]     <shipDate>BackOrder</shipDate>
+     [java]     <taxRate>0.2</taxRate>
+     [java]     <totalCost>0.0</totalCost>
+     [java]   </quoteResponse>
+     [java]   <quoteResponse>
+     [java]     <widgetId>211</widgetId>
+     [java]     <unitPrice>10.0</unitPrice>
+     [java]     <requestedQuantity>100</requestedQuantity>
+     [java]     <fillOrder>true</fillOrder>
+     [java]     <shipDate>2003-04-21</shipDate>
+     [java]     <taxRate>0.2</taxRate>
+     [java]     <totalCost>1200.0</totalCost>
+     [java]   </quoteResponse>
+     [java] </quote>
+     [java] 
+     [java] 
+     [java] Output quote from web service join:
+     [java] <?xml version="1.0" encoding="ASCII"?>
+     [java] <quote xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:quo="http://www.example.org/quote" xsi:type="quo:Quote">
+     [java]   <name>Acme Inc</name>
+     [java]   <address>12 Springs Rd,Morris Plains,NJ,07960</address>
+     [java]   <quoteResponse>
+     [java]     <widgetId>12</widgetId>
+     [java]     <unitPrice>1.0</unitPrice>
+     [java]     <requestedQuantity>10</requestedQuantity>
+     [java]     <fillOrder>true</fillOrder>
+     [java]     <shipDate>2003-03-22</shipDate>
+     [java]     <taxRate>0.1</taxRate>
+     [java]     <totalCost>11.0</totalCost>
+     [java]   </quoteResponse>
+     [java]   <quoteResponse>
+     [java]     <widgetId>134</widgetId>
+     [java]     <unitPrice>34.1</unitPrice>
+     [java]     <requestedQuantity>345</requestedQuantity>
+     [java]     <fillOrder>false</fillOrder>
+     [java]     <shipDate>BackOrder</shipDate>
+     [java]     <taxRate>0.1</taxRate>
+     [java]     <totalCost>0.0</totalCost>
+     [java]   </quoteResponse>
+     [java]   <quoteResponse>
+     [java]     <widgetId>211</widgetId>
+     [java]     <unitPrice>10.0</unitPrice>
+     [java]     <requestedQuantity>100</requestedQuantity>
+     [java]     <fillOrder>true</fillOrder>
+     [java]     <shipDate>2003-04-21</shipDate>
+     [java]     <taxRate>0.1</taxRate>
+     [java]     <totalCost>1100.0</totalCost>
+     [java]   </quoteResponse>
+     [java] </quote>
+     [java] 
+     [java] 
+     [java] Output quote from properties join:
+     [java] <?xml version="1.0" encoding="ASCII"?>
+     [java] <quote xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:quo="http://www.example.org/quote" xsi:type="quo:Quote">
+     [java]   <name>Acme Inc</name>
+     [java]   <address>12 Springs Rd,Morris Plains,NJ,07960</address>
+     [java]   <quoteResponse>
+     [java]     <widgetId>12</widgetId>
+     [java]     <unitPrice>1.0</unitPrice>
+     [java]     <requestedQuantity>10</requestedQuantity>
+     [java]     <fillOrder>true</fillOrder>
+     [java]     <shipDate>2003-03-22</shipDate>
+     [java]     <taxRate>0.1</taxRate>
+     [java]     <totalCost>11.0</totalCost>
+     [java]   </quoteResponse>
+     [java]   <quoteResponse>
+     [java]     <widgetId>134</widgetId>
+     [java]     <unitPrice>34.1</unitPrice>
+     [java]     <requestedQuantity>345</requestedQuantity>
+     [java]     <fillOrder>false</fillOrder>
+     [java]     <shipDate>BackOrder</shipDate>
+     [java]     <taxRate>0.1</taxRate>
+     [java]     <totalCost>0.0</totalCost>
+     [java]   </quoteResponse>
+     [java]   <quoteResponse>
+     [java]     <widgetId>211</widgetId>
+     [java]     <unitPrice>10.0</unitPrice>
+     [java]     <requestedQuantity>100</requestedQuantity>
+     [java]     <fillOrder>true</fillOrder>
+     [java]     <shipDate>2003-04-21</shipDate>
+     [java]     <taxRate>0.1</taxRate>
+     [java]     <totalCost>1100.0</totalCost>
+     [java]   </quoteResponse>
+     [java] </quote>
+     [java] 
+     [java] 
+     [java] Output quote from external references join:
+     [java] <?xml version="1.0" encoding="ASCII"?>
+     [java] <quote xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:quo="http://www.example.org/quote" xsi:type="quo:Quote">
+     [java]   <name>Acme Inc</name>
+     [java]   <address>12 Springs Rd,Morris Plains,NJ,07960</address>
+     [java]   <quoteResponse>
+     [java]     <widgetId>12</widgetId>
+     [java]     <unitPrice>1.0</unitPrice>
+     [java]     <requestedQuantity>10</requestedQuantity>
+     [java]     <fillOrder>true</fillOrder>
+     [java]     <shipDate>2003-03-22</shipDate>
+     [java]     <taxRate>0.1</taxRate>
+     [java]     <totalCost>11.0</totalCost>
+     [java]   </quoteResponse>
+     [java]   <quoteResponse>
+     [java]     <widgetId>134</widgetId>
+     [java]     <unitPrice>34.1</unitPrice>
+     [java]     <requestedQuantity>345</requestedQuantity>
+     [java]     <fillOrder>false</fillOrder>
+     [java]     <shipDate>BackOrder</shipDate>
+     [java]     <taxRate>0.1</taxRate>
+     [java]     <totalCost>0.0</totalCost>
+     [java]   </quoteResponse>
+     [java]   <quoteResponse>
+     [java]     <widgetId>211</widgetId>
+     [java]     <unitPrice>10.0</unitPrice>
+     [java]     <requestedQuantity>100</requestedQuantity>
+     [java]     <fillOrder>true</fillOrder>
+     [java]     <shipDate>2003-04-21</shipDate>
+     [java]     <taxRate>0.1</taxRate>
+     [java]     <totalCost>1100.0</totalCost>
+     [java]   </quoteResponse>
+     [java] </quote>
+     [java] 
+
+BUILD SUCCESSFUL
+Total time: 16 seconds
+
+
+
+Sample Overview
+---------------
+
+ 1. There is a central component for invoking the different
+    scenarios: QuoteJoinLocalComponent
+ 2. It provides the following cases:
+    - invoke XQuery component in the current assembly, by providing all needed
+      information as input parameters
+    - invoke XQuery component in external assembly, which is exposed as a web 
+      service
+    - invoke XQuery component in the current assembly, which retrieves the needed
+      information from the component properties
+    - invoke XQuery component in the current assembly, which retrieves the needed
+      information from its references to other components:
+         - one of the components is in the current assembly
+         - the other component is in anther assembly and it is exposed (and accessed)
+           as web service
+    
+  3. All of the XQuery components have reference to a component for calculation of the
+    total price 
+  4. SDO is used for data interchange
+
+src/main/resources
+    wsdl
+        AvailQuote.xsd 
+        PriceQuote.xsd
+        Quote.xsd
+        quotejoin.wsdl
+    META-INF
+        sca
+            quote_join_external_references.xq --- the external references xquery script
+            quote_join_properties.xq --- the property-based join xquery script
+            quote_join.xq --- the join xquery script
+    xqueryquotews.composite --- composite file for the client side
+    xqueryquotewsclient.composite --- composite file for the service side
+    
+    build.xml                            - the Ant build file
+    pom.xml                              - the Maven build file   
+
+
+Building And Running The Sample Using Ant
+-----------------------------------------
+cd quote-xquery
+ant compile 
+ant run-server
+
+you should see: 
+Buildfile: build.xml
+
+run:
+ 
+
+
+Building And Running The Sample Using Maven 
+-------------------------------------------
+With either the binary or source distributions the sample can be built and run 
+using Maven as follows. 
+
+cd quote-xquery
+mvn
+
+
+This shows that the Junit test cases have run successfully. 

Added: incubator/tuscany/java/sca/samples/quote-xquery/build.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/quote-xquery/build.xml?rev=577910&view=auto
==============================================================================
--- incubator/tuscany/java/sca/samples/quote-xquery/build.xml (added)
+++ incubator/tuscany/java/sca/samples/quote-xquery/build.xml Thu Sep 20 13:43:32 2007
@@ -0,0 +1,118 @@
+<!--
+ * 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.    
+-->
+<project name="sample-quote-xquery" default="compile">
+	<property name="test.class" value="xquery.quote.XQueryQuoteClient" />
+	<property name="test.server.class" value="xquery.quote.XQueryQuoteServer" />
+	<property name="test.jar" value="sample-quote-xquery.jar" />
+
+	<target name="init">
+		<mkdir dir="target/classes" />
+	</target>
+
+	<property name="tuscany.sca.manifest.location" value="../../lib/tuscany-sca-manifest.jar" />
+
+	<path id="project.classpath">
+		<pathelement path="target/classes" />
+		<pathelement path="target/sdo-source" />
+		<pathelement location="${tuscany.sca.manifest.location}" />
+	</path>
+
+	<target name="generate-sdo" depends="init">
+		<java classname="org.apache.tuscany.sdo.generate.XSD2JavaGenerator" fork="true">
+			<arg value="-targetDirectory" />
+			<arg value="target/sdo-source" />
+			<arg value="-noNotification" />
+			<arg value="-noContainment" />
+			<arg value="-noUnsettable" />
+			<arg value="src/main/resources/wsdl/Quote.xsd" />
+
+			<classpath refid="project.classpath" />
+		</java>
+		<java classname="org.apache.tuscany.sdo.generate.XSD2JavaGenerator" fork="true">
+			<arg value="-targetDirectory" />
+			<arg value="target/sdo-source" />
+			<arg value="-noNotification" />
+			<arg value="-noContainment" />
+			<arg value="-noUnsettable" />
+			<arg value="src/main/resources/wsdl/AvailQuote.xsd" />
+
+			<classpath refid="project.classpath" />
+		</java>
+		<java classname="org.apache.tuscany.sdo.generate.XSD2JavaGenerator" fork="true">
+			<arg value="-targetDirectory" />
+			<arg value="target/sdo-source" />
+			<arg value="-noNotification" />
+			<arg value="-noContainment" />
+			<arg value="-noUnsettable" />
+			<arg value="src/main/resources/wsdl/PriceQuote.xsd" />
+
+			<classpath refid="project.classpath" />
+		</java>
+
+	</target>
+
+
+	<target name="compile" depends="init, generate-sdo">
+		<javac srcdir="src/main/java" destdir="target/classes" debug="on" source="1.5" target="1.5">
+			<classpath refid="project.classpath" />
+		</javac>
+		<copy todir="target/classes">
+			<fileset dir="src/main/resources" />
+		</copy>
+		<jar destfile="target/${test.jar}" basedir="target/classes">
+			<manifest>
+				<attribute name="Main-Class" value="${test.class}" />
+			</manifest>
+		</jar>
+
+	</target>
+
+	<target name="run-classes">
+		<java classname="${test.class}" fork="true">
+			<classpath>
+				<pathelement path="target/classes" />
+			</classpath>
+			<classpath refid="project.classpath" />
+		</java>
+	</target>
+
+	<target name="run" depends="compile">
+		<java classname="${test.class}" fork="true">
+			<classpath>
+				<pathelement path="target/${test.jar}" />
+			</classpath>
+			<classpath refid="project.classpath" />
+		</java>
+	</target>
+
+	<target name="run-server" depends="compile">
+		<java classname="${test.server.class}" fork="true">
+			<classpath>
+				<pathelement path="target/${test.jar}" />
+			</classpath>
+			<classpath refid="project.classpath" />
+		</java>
+	</target>
+
+	<target name="clean">
+		<delete quiet="true" includeemptydirs="true">
+			<fileset dir="target" />
+		</delete>
+	</target>
+</project>

Modified: incubator/tuscany/java/sca/samples/quote-xquery/src/main/java/xquery/quote/AvailQuoteProviderImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/quote-xquery/src/main/java/xquery/quote/AvailQuoteProviderImpl.java?rev=577910&r1=577909&r2=577910&view=diff
==============================================================================
--- incubator/tuscany/java/sca/samples/quote-xquery/src/main/java/xquery/quote/AvailQuoteProviderImpl.java (original)
+++ incubator/tuscany/java/sca/samples/quote-xquery/src/main/java/xquery/quote/AvailQuoteProviderImpl.java Thu Sep 20 13:43:32 2007
@@ -25,6 +25,6 @@
 public class AvailQuoteProviderImpl implements AvailQuoteProviderService {
 
     public AvailQuote provideAvailQuote(String dummyString) {
-        return TestHelper.buildAvailQuoteData();
+        return QuoteDataUtil.buildAvailQuoteData();
     }
 }

Modified: incubator/tuscany/java/sca/samples/quote-xquery/src/main/java/xquery/quote/PriceQuoteProviderImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/quote-xquery/src/main/java/xquery/quote/PriceQuoteProviderImpl.java?rev=577910&r1=577909&r2=577910&view=diff
==============================================================================
--- incubator/tuscany/java/sca/samples/quote-xquery/src/main/java/xquery/quote/PriceQuoteProviderImpl.java (original)
+++ incubator/tuscany/java/sca/samples/quote-xquery/src/main/java/xquery/quote/PriceQuoteProviderImpl.java Thu Sep 20 13:43:32 2007
@@ -22,6 +22,6 @@
 
 public class PriceQuoteProviderImpl implements PriceQuoteProvider {
     public PriceQuote providePriceQuote() {
-        return TestHelper.buildPriceQuoteData();
+        return QuoteDataUtil.buildPriceQuoteData();
     }
 }

Added: incubator/tuscany/java/sca/samples/quote-xquery/src/main/java/xquery/quote/QuoteDataUtil.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/quote-xquery/src/main/java/xquery/quote/QuoteDataUtil.java?rev=577910&view=auto
==============================================================================
--- incubator/tuscany/java/sca/samples/quote-xquery/src/main/java/xquery/quote/QuoteDataUtil.java (added)
+++ incubator/tuscany/java/sca/samples/quote-xquery/src/main/java/xquery/quote/QuoteDataUtil.java Thu Sep 20 13:43:32 2007
@@ -0,0 +1,107 @@
+/*
+ * 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.    
+ */
+package xquery.quote;
+
+import java.io.IOException;
+import java.math.BigInteger;
+
+
+import org.example.avail.AvailFactory;
+import org.example.avail.AvailQuote;
+import org.example.avail.AvailRequest;
+import org.example.price.PriceFactory;
+import org.example.price.PriceQuote;
+import org.example.price.PriceRequest;
+import org.example.price.PriceRequests;
+import org.example.price.ShipAddress;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.helper.XMLHelper;
+
+public class QuoteDataUtil {
+
+    public static AvailQuote buildAvailQuoteData() {
+        AvailQuote availQuote = AvailFactory.INSTANCE.createAvailQuote();
+        AvailRequest availRequest = AvailFactory.INSTANCE.createAvailRequest();
+        availRequest.setWidgetId(BigInteger.valueOf(12));
+        availRequest.setRequestedQuantity(10);
+        availRequest.setQuantityAvail(true);
+        availRequest.setShipDate("2003-03-22");
+        availQuote.getAvailRequest().add(availRequest);
+
+        availRequest = AvailFactory.INSTANCE.createAvailRequest();
+        availRequest.setWidgetId(BigInteger.valueOf(134));
+        availRequest.setRequestedQuantity(345);
+        availRequest.setQuantityAvail(false);
+        availRequest.setShipDate("BackOrder");
+        availQuote.getAvailRequest().add(availRequest);
+
+        availRequest = AvailFactory.INSTANCE.createAvailRequest();
+        availRequest.setWidgetId(BigInteger.valueOf(211));
+        availRequest.setRequestedQuantity(100);
+        availRequest.setQuantityAvail(true);
+        availRequest.setShipDate("2003-04-21");
+        availQuote.getAvailRequest().add(availRequest);
+
+        return availQuote;
+    }
+
+    public static PriceQuote buildPriceQuoteData() {
+        PriceQuote priceQuote = PriceFactory.INSTANCE.createPriceQuote();
+        priceQuote.setCustomerName("Acme Inc");
+
+        ShipAddress shipAddress = PriceFactory.INSTANCE.createShipAddress();
+        shipAddress.setStreet("12 Springs Rd");
+        shipAddress.setCity("Morris Plains");
+        shipAddress.setState("nj");
+        shipAddress.setZip("07960");
+        priceQuote.setShipAddress(shipAddress);
+
+        PriceRequests priceRequests = PriceFactory.INSTANCE.createPriceRequests();
+        PriceRequest priceRequest = PriceFactory.INSTANCE.createPriceRequest();
+        priceRequest.setWidgetId(BigInteger.valueOf(12));
+        priceRequest.setPrice(1.00f);
+        priceRequests.getPriceRequest().add(priceRequest);
+
+        priceRequest = PriceFactory.INSTANCE.createPriceRequest();
+        priceRequest.setWidgetId(BigInteger.valueOf(134));
+        priceRequest.setPrice(34.10f);
+        priceRequests.getPriceRequest().add(priceRequest);
+
+        priceRequest = PriceFactory.INSTANCE.createPriceRequest();
+        priceRequest.setWidgetId(BigInteger.valueOf(211));
+        priceRequest.setPrice(10.00f);
+        priceRequests.getPriceRequest().add(priceRequest);
+
+        priceQuote.setPriceRequests(priceRequests);
+
+        return priceQuote;
+    }
+
+    public static void serializeToSystemOut(DataObject object, String name) {
+        XMLHelper helper = XMLHelper.INSTANCE;
+
+        try {
+            helper.save(object, null, name, System.out);
+            System.out.println();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+}

Added: incubator/tuscany/java/sca/samples/quote-xquery/src/main/java/xquery/quote/XQueryQuoteClient.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/quote-xquery/src/main/java/xquery/quote/XQueryQuoteClient.java?rev=577910&view=auto
==============================================================================
--- incubator/tuscany/java/sca/samples/quote-xquery/src/main/java/xquery/quote/XQueryQuoteClient.java (added)
+++ incubator/tuscany/java/sca/samples/quote-xquery/src/main/java/xquery/quote/XQueryQuoteClient.java Thu Sep 20 13:43:32 2007
@@ -0,0 +1,145 @@
+/*
+ * 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.    
+ */
+package xquery.quote;
+
+import org.apache.tuscany.sca.host.embedded.SCADomain;
+import org.example.avail.AvailQuote;
+import org.example.price.PriceQuote;
+import org.example.quote.Quote;
+
+import commonj.sdo.DataObject;
+
+/**
+ * Integration test for the XQuery implementation type
+ * @version $Rev: 577067 $ $Date: 2007-09-18 22:10:03 +0100 (Tue, 18 Sep 2007) $
+ * This test covers the most important integration scenarios for the xquery
+ * implementation type and its corresponding saxon data bindings:
+ * 
+ * 1. There is a central component for invoking the different
+ *    scenarios: QuoteJoinLocalComponent
+ * 2. It provides the following tests:
+ *    - invoke XQuery component in the current assembly, by providing all needed
+ *      information as input parameters
+ *    - invoke XQuery component in external assembly, which is exposed as a web 
+ *      service
+ *    - invoke XQuery component in the current assembly, which retrieves the needed
+ *      information from the component properties
+ *    - invoke XQuery component in the current assembly, which retrieves the needed
+ *      information from its references to other components:
+ *         - one of the components is in the current assembly
+ *         - the other component is in anther assembly and it is exposed (and accessed)
+ *           as web service
+ *    
+ *  3. All of the XQuery components have reference to a component for calculation of the
+ *    total price 
+ *  4. SDO is used for data interchange
+ */
+public class XQueryQuoteClient {
+
+    public static boolean SHOW_DEBUG_MSG = false;
+
+    private SCADomain scaDomain;
+
+    private QuoteJoinLocal quoteJoinLocal;
+
+    public void startClient() throws Exception {
+        try {
+            scaDomain = SCADomain.newInstance("xqueryquotewsclient.composite");
+            quoteJoinLocal = scaDomain.getService(QuoteJoinLocal.class, "QuoteJoinLocalComponent");
+        } catch (Throwable t) {
+            t.printStackTrace();
+        }
+    }
+
+    public void testQuoteJoin() {
+        AvailQuote availQuote = QuoteDataUtil.buildAvailQuoteData();
+        PriceQuote priceQuote = QuoteDataUtil.buildPriceQuoteData();
+
+        if (SHOW_DEBUG_MSG) {
+            System.out.println("Input quote for the price list:");
+            QuoteDataUtil.serializeToSystemOut((DataObject)priceQuote, "priceQuote");
+            System.out.println();
+            System.out.println("Input quote for the availability:");
+            QuoteDataUtil.serializeToSystemOut((DataObject)availQuote, "availQuote");
+            System.out.println();
+        }
+
+        Quote quote = quoteJoinLocal.joinPriceAndAvailQuotes(priceQuote, availQuote, 0.1f);
+        if (SHOW_DEBUG_MSG) {
+            System.out.println();
+            System.out.println("Output quote from local join:");
+            QuoteDataUtil.serializeToSystemOut((DataObject)quote, "quote");
+            System.out.println();
+        }
+        //        TestHelper.assertQuote(availQuote, priceQuote, quote, 0.1f);
+
+        quote = quoteJoinLocal.joinPriceAndAvailQuotes(priceQuote, availQuote, 0.2f);
+        if (SHOW_DEBUG_MSG) {
+            System.out.println();
+            System.out.println("Output quote from local join (second invokation):");
+            QuoteDataUtil.serializeToSystemOut((DataObject)quote, "quote");
+            System.out.println();
+        }
+        //        TestHelper.assertQuote(availQuote, priceQuote, quote, 0.2f);
+
+        quote = quoteJoinLocal.joinPriceAndAvailQuotesWs(priceQuote, availQuote, 0.1f);
+        if (SHOW_DEBUG_MSG) {
+            System.out.println();
+            System.out.println("Output quote from web service join:");
+            QuoteDataUtil.serializeToSystemOut((DataObject)quote, "quote");
+            System.out.println();
+        }
+        //        TestHelper.assertQuote(availQuote, priceQuote, quote, 0.1f);
+
+        quote = quoteJoinLocal.joinPriceAndAvailQuotes();
+        if (SHOW_DEBUG_MSG) {
+            System.out.println();
+            System.out.println("Output quote from properties join:");
+            QuoteDataUtil.serializeToSystemOut((DataObject)quote, "quote");
+            System.out.println();
+        }
+        // TestHelper.assertQuote(availQuote, priceQuote, quote, 0.1f);
+
+        quote = quoteJoinLocal.joinPriceAndAvailQuotes(0.1f);
+        if (SHOW_DEBUG_MSG) {
+            System.out.println();
+            System.out.println("Output quote from external references join:");
+            QuoteDataUtil.serializeToSystemOut((DataObject)quote, "quote");
+            System.out.println();
+        }
+        // TestHelper.assertQuote(availQuote, priceQuote, quote, 0.1f);
+    }
+
+    public void stopClient() throws Exception {
+        if (scaDomain != null) {
+            scaDomain.close();
+        }
+    }
+
+    public static void main(String[] args) throws Exception {
+        SHOW_DEBUG_MSG = true;
+        XQueryQuoteClient client = new XQueryQuoteClient();
+        client.startClient();
+        try {
+            client.testQuoteJoin();
+        } finally {
+            client.stopClient();
+        }
+    }
+}

Added: incubator/tuscany/java/sca/samples/quote-xquery/src/main/java/xquery/quote/XQueryQuoteServer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/quote-xquery/src/main/java/xquery/quote/XQueryQuoteServer.java?rev=577910&view=auto
==============================================================================
--- incubator/tuscany/java/sca/samples/quote-xquery/src/main/java/xquery/quote/XQueryQuoteServer.java (added)
+++ incubator/tuscany/java/sca/samples/quote-xquery/src/main/java/xquery/quote/XQueryQuoteServer.java Thu Sep 20 13:43:32 2007
@@ -0,0 +1,39 @@
+/*
+ * 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.    
+ */
+package xquery.quote;
+
+import java.io.IOException;
+
+import org.apache.tuscany.sca.host.embedded.SCADomain;
+
+public class XQueryQuoteServer {
+
+    public static void main(String[] args) {
+        SCADomain scaDomain = SCADomain.newInstance("xqueryquotews.composite");
+        try {
+            System.out.println("XQuery Quote server is started (press enter to shutdown).");
+            System.in.read();
+            System.out.println("XQuery Quote server is stopping...");
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        scaDomain.close();
+        System.out.println("XQuery Quote server is now stopped.");
+    }
+}

Modified: incubator/tuscany/java/sca/samples/quote-xquery/src/test/java/xquery/quote/XQueryQuoteClientTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/quote-xquery/src/test/java/xquery/quote/XQueryQuoteClientTestCase.java?rev=577910&r1=577909&r2=577910&view=diff
==============================================================================
--- incubator/tuscany/java/sca/samples/quote-xquery/src/test/java/xquery/quote/XQueryQuoteClientTestCase.java (original)
+++ incubator/tuscany/java/sca/samples/quote-xquery/src/test/java/xquery/quote/XQueryQuoteClientTestCase.java Thu Sep 20 13:43:32 2007
@@ -18,11 +18,19 @@
  */
 package xquery.quote;
 
+import java.util.List;
+
+import junit.framework.TestCase;
+
 import org.apache.tuscany.sca.host.embedded.SCADomain;
 import org.apache.tuscany.sca.host.embedded.SCATestCaseRunner;
 import org.example.avail.AvailQuote;
+import org.example.avail.AvailRequest;
 import org.example.price.PriceQuote;
+import org.example.price.PriceRequest;
+import org.example.price.ShipAddress;
 import org.example.quote.Quote;
+import org.example.quote.QuoteResponse;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -79,15 +87,15 @@
 
     @Test
     public void testQuoteJoin() {
-        AvailQuote availQuote = TestHelper.buildAvailQuoteData();
-        PriceQuote priceQuote = TestHelper.buildPriceQuoteData();
+        AvailQuote availQuote = QuoteDataUtil.buildAvailQuoteData();
+        PriceQuote priceQuote = QuoteDataUtil.buildPriceQuoteData();
 
         if (SHOW_DEBUG_MSG) {
             System.out.println("Input quote for the price list:");
-            TestHelper.serializeToSystemOut((DataObject)priceQuote, "priceQuote");
+            QuoteDataUtil.serializeToSystemOut((DataObject)priceQuote, "priceQuote");
             System.out.println();
             System.out.println("Input quote for the availability:");
-            TestHelper.serializeToSystemOut((DataObject)availQuote, "availQuote");
+            QuoteDataUtil.serializeToSystemOut((DataObject)availQuote, "availQuote");
             System.out.println();
         }
 
@@ -95,51 +103,90 @@
         if (SHOW_DEBUG_MSG) {
             System.out.println();
             System.out.println("Output quote from local join:");
-            TestHelper.serializeToSystemOut((DataObject)quote, "quote");
+            QuoteDataUtil.serializeToSystemOut((DataObject)quote, "quote");
             System.out.println();
         }
-        TestHelper.assertQuote(availQuote, priceQuote, quote, 0.1f);
+        XQueryQuoteClientTestCase.assertQuote(availQuote, priceQuote, quote, 0.1f);
 
         quote = quoteJoinLocal.joinPriceAndAvailQuotes(priceQuote, availQuote, 0.2f);
         if (SHOW_DEBUG_MSG) {
             System.out.println();
             System.out.println("Output quote from local join (second invokation):");
-            TestHelper.serializeToSystemOut((DataObject)quote, "quote");
+            QuoteDataUtil.serializeToSystemOut((DataObject)quote, "quote");
             System.out.println();
         }
-        TestHelper.assertQuote(availQuote, priceQuote, quote, 0.2f);
+        XQueryQuoteClientTestCase.assertQuote(availQuote, priceQuote, quote, 0.2f);
 
         quote = quoteJoinLocal.joinPriceAndAvailQuotesWs(priceQuote, availQuote, 0.1f);
         if (SHOW_DEBUG_MSG) {
             System.out.println();
             System.out.println("Output quote from web service join:");
-            TestHelper.serializeToSystemOut((DataObject)quote, "quote");
+            QuoteDataUtil.serializeToSystemOut((DataObject)quote, "quote");
             System.out.println();
         }
-        TestHelper.assertQuote(availQuote, priceQuote, quote, 0.1f);
+        XQueryQuoteClientTestCase.assertQuote(availQuote, priceQuote, quote, 0.1f);
 
         quote = quoteJoinLocal.joinPriceAndAvailQuotes();
         if (SHOW_DEBUG_MSG) {
             System.out.println();
             System.out.println("Output quote from properties join:");
-            TestHelper.serializeToSystemOut((DataObject)quote, "quote");
+            QuoteDataUtil.serializeToSystemOut((DataObject)quote, "quote");
             System.out.println();
         }
-        TestHelper.assertQuote(availQuote, priceQuote, quote, 0.1f);
+        XQueryQuoteClientTestCase.assertQuote(availQuote, priceQuote, quote, 0.1f);
 
         quote = quoteJoinLocal.joinPriceAndAvailQuotes(0.1f);
         if (SHOW_DEBUG_MSG) {
             System.out.println();
             System.out.println("Output quote from external references join:");
-            TestHelper.serializeToSystemOut((DataObject)quote, "quote");
+            QuoteDataUtil.serializeToSystemOut((DataObject)quote, "quote");
             System.out.println();
         }
-        TestHelper.assertQuote(availQuote, priceQuote, quote, 0.1f);
+        XQueryQuoteClientTestCase.assertQuote(availQuote, priceQuote, quote, 0.1f);
     }
 
     @After
     public void stopClient() throws Exception {
         server.after();
         scaDomain.close();
+    }
+
+    public static void assertQuote(AvailQuote availQuote, PriceQuote priceQuote, Quote quote, float taxRate) {
+        QuoteCalculatorImpl quoteCalculatorImpl = new QuoteCalculatorImpl();
+    
+        TestCase.assertEquals(priceQuote.getCustomerName(), quote.getName());
+        ShipAddress shipAddress = priceQuote.getShipAddress();
+        TestCase.assertEquals(shipAddress.getStreet() + ","
+            + shipAddress.getCity()
+            + ","
+            + shipAddress.getState().toUpperCase()
+            + ","
+            + shipAddress.getZip(), quote.getAddress());
+        List availRequests = availQuote.getAvailRequest();
+        List priceRequests = priceQuote.getPriceRequests().getPriceRequest();
+        List quoteResponses = quote.getQuoteResponse();
+        TestCase.assertEquals(availRequests.size(), priceRequests.size());
+        TestCase.assertEquals(availRequests.size(), quoteResponses.size());
+    
+        for (int i = 0; i < availRequests.size(); i++) {
+            AvailRequest availRequest = (AvailRequest)availRequests.get(i);
+            PriceRequest priceRequest = (PriceRequest)priceRequests.get(i);
+            QuoteResponse quoteResponse = (QuoteResponse)quoteResponses.get(i);
+            TestCase.assertEquals(availRequest.getWidgetId(), quoteResponse.getWidgetId());
+            TestCase.assertEquals(priceRequest.getPrice(), quoteResponse.getUnitPrice());
+            TestCase.assertEquals(availRequest.getRequestedQuantity(), quoteResponse.getRequestedQuantity());
+            TestCase.assertEquals(availRequest.isQuantityAvail(), quoteResponse.isFillOrder());
+            if (availRequest.getShipDate() == null) {
+                TestCase.assertNull(quoteResponse.getShipDate());
+            } else {
+                TestCase.assertEquals(availRequest.getShipDate(), quoteResponse.getShipDate());
+            }
+            TestCase.assertEquals(taxRate, quoteResponse.getTaxRate());
+            TestCase.assertEquals(quoteCalculatorImpl.calculateTotalPrice(taxRate,
+                                                                          availRequest.getRequestedQuantity(),
+                                                                          priceRequest.getPrice(),
+                                                                          availRequest.isQuantityAvail()),
+                                                                          quoteResponse.getTotalCost());
+        }
     }
 }

Propchange: incubator/tuscany/java/sca/tools/registry-inspector/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Thu Sep 20 13:43:32 2007
@@ -1 +1,5 @@
 *.classpath
+.externalToolBuilders
+.project
+.settings
+target



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org