diff options
Diffstat (limited to 'branches/sca-java-1.2.1/samples/quote-xquery/README')
-rw-r--r-- | branches/sca-java-1.2.1/samples/quote-xquery/README | 450 |
1 files changed, 450 insertions, 0 deletions
diff --git a/branches/sca-java-1.2.1/samples/quote-xquery/README b/branches/sca-java-1.2.1/samples/quote-xquery/README new file mode 100644 index 0000000000..c380269deb --- /dev/null +++ b/branches/sca-java-1.2.1/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. |