Package xquery.quote

Source Code of xquery.quote.XQueryQuoteClient

/*
* 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();
        }
    }
}
TOP

Related Classes of xquery.quote.XQueryQuoteClient

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.