diff options
Diffstat (limited to 'sca-java-1.x/trunk/samples/quote-xquery/README')
-rw-r--r-- | sca-java-1.x/trunk/samples/quote-xquery/README | 450 |
1 files changed, 450 insertions, 0 deletions
diff --git a/sca-java-1.x/trunk/samples/quote-xquery/README b/sca-java-1.x/trunk/samples/quote-xquery/README new file mode 100644 index 0000000000..cf8a4609a6 --- /dev/null +++ b/sca-java-1.x/trunk/samples/quote-xquery/README @@ -0,0 +1,450 @@ +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:
+
+Command Prompt 1:
+ant
+ant run-server
+
+Command Prompt 2:
+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 compilation:
+
+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
+BUILD SUCCESSFUL
+
+
+The service side:
+
+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
+
+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.
|