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