001: /*
002: * The Apache Software License, Version 1.1
003: *
004: *
005: * Copyright (c) 2002 The Apache Software Foundation. All rights
006: * reserved.
007: *
008: * Redistribution and use in source and binary forms, with or without
009: * modification, are permitted provided that the following conditions
010: * are met:
011: *
012: * 1. Redistributions of source code must retain the above copyright
013: * notice, this list of conditions and the following disclaimer.
014: *
015: * 2. Redistributions in binary form must reproduce the above copyright
016: * notice, this list of conditions and the following disclaimer in
017: * the documentation and/or other materials provided with the
018: * distribution.
019: *
020: * 3. The end-user documentation included with the redistribution,
021: * if any, must include the following acknowledgment:
022: * "This product includes software developed by the
023: * Apache Software Foundation (http://www.apache.org/)."
024: * Alternately, this acknowledgment may appear in the software itself,
025: * if and wherever such third-party acknowledgments normally appear.
026: *
027: * 4. The names "WSIF" and "Apache Software Foundation" must
028: * not be used to endorse or promote products derived from this
029: * software without prior written permission. For written
030: * permission, please contact apache@apache.org.
031: *
032: * 5. Products derived from this software may not be called "Apache",
033: * nor may "Apache" appear in their name, without prior written
034: * permission of the Apache Software Foundation.
035: *
036: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
037: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
038: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
039: * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
040: * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
041: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
042: * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
043: * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
044: * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
045: * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
046: * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
047: * SUCH DAMAGE.
048: * ====================================================================
049: *
050: * This software consists of voluntary contributions made by many
051: * individuals on behalf of the Apache Software Foundation and was
052: * originally based on software copyright (c) 2001, 2002, International
053: * Business Machines, Inc., http://www.apache.org. For more
054: * information on the Apache Software Foundation, please see
055: * <http://www.apache.org/>.
056: */
057:
058: package com.myeis;
059:
060: import java.io.*;
061: import org.apache.wsif.providers.jca.toolplugin.*;
062: import com.myeis.repository.*;
063: import com.myeis.services.*;
064: import com.myeis.services.internal.*;
065:
066: public class MyEIS {
067:
068: public byte[] doIt(byte[] input) {
069:
070: /*
071: * This method represents the actual sample backend (i.e. this method mimics what a real back end system would typically do).
072: * Based on the function name certain tasks are executed.
073: */
074:
075: try {
076: ByteArrayInputStream inputStream = new ByteArrayInputStream(
077: input);
078:
079: // get the function name
080: ObjectInputStream headerInputStream = new ObjectInputStream(
081: inputStream);
082: String functionName = (String) headerInputStream
083: .readObject();
084:
085: if (functionName.equals("IMPORT_PORTTYPES")) {
086: // import service porttypes
087: ObjectInputStream payloadInputStream = new ObjectInputStream(
088: inputStream);
089: String queryString = (String) payloadInputStream
090: .readObject();
091: PortTypeArray portTypeArray = (new Repository())
092: .getPortTypes(queryString);
093:
094: ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
095: ObjectOutputStream objectOutputStream = new ObjectOutputStream(
096: outputStream);
097: objectOutputStream.writeObject(portTypeArray);
098: objectOutputStream.flush();
099:
100: return outputStream.toByteArray();
101: }
102: if (functionName.equals("IMPORT_DEFINITION")) {
103: // import service definitions
104: ObjectInputStream payloadInputStream = new ObjectInputStream(
105: inputStream);
106: PortTypeSelection selection = (PortTypeSelection) payloadInputStream
107: .readObject();
108: ImportDefinition importDefinition = (new Repository())
109: .getDefinition(selection);
110:
111: ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
112: ObjectOutputStream objectOutputStream = new ObjectOutputStream(
113: outputStream);
114: objectOutputStream.writeObject(importDefinition);
115: objectOutputStream.flush();
116:
117: return outputStream.toByteArray();
118: }
119: if (functionName.equals("IMPORT_RAWMETADATA")) {
120: // import raw metadata
121: ObjectInputStream payloadInputStream = new ObjectInputStream(
122: inputStream);
123: String queryString = (String) payloadInputStream
124: .readObject();
125: byte[] result = (new Repository())
126: .getRawEISMetaData(queryString);
127:
128: return result;
129: }
130: if (functionName.equals("CUSTOMERINFO_getCustomer")) {
131: // invoke a business service
132: ObjectInputStream payloadInputStream = new ObjectInputStream(
133: inputStream);
134: String number = (String) payloadInputStream
135: .readObject();
136: CustomerDataObject customer = (new CustomerInfo())
137: .getCustomer(number);
138:
139: ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
140: ObjectOutputStream objectOutputStream = new ObjectOutputStream(
141: outputStream);
142: objectOutputStream.writeObject(customer);
143: objectOutputStream.flush();
144:
145: return outputStream.toByteArray();
146: }
147: if (functionName
148: .equals("PURCHASEORDERINFO_getPurchaseOrder")) {
149: // invoke a business service
150: ObjectInputStream payloadInputStream = new ObjectInputStream(
151: inputStream);
152: String number = (String) payloadInputStream
153: .readObject();
154: PurchaseOrderDataObject purchaseOrder = (new PurchaseOrderInfo())
155: .getPurchaseOrder(number);
156:
157: ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
158: ObjectOutputStream objectOutputStream = new ObjectOutputStream(
159: outputStream);
160: objectOutputStream.writeObject(purchaseOrder);
161: objectOutputStream.flush();
162:
163: return outputStream.toByteArray();
164: }
165:
166: if (functionName.equals("CUSTOMERINFO_getAddress")) {
167: // invoke a business service
168: ObjectInputStream payloadInputStream = new ObjectInputStream(
169: inputStream);
170: String number = (String) payloadInputStream
171: .readObject();
172: AddressDataObject address = (new CustomerInfo())
173: .getAddress(number);
174:
175: ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
176: ObjectOutputStream objectOutputStream = new ObjectOutputStream(
177: outputStream);
178: objectOutputStream.writeObject(address);
179: objectOutputStream.flush();
180:
181: return outputStream.toByteArray();
182: }
183: // process other business services here
184:
185: } catch (Exception e) {
186: e.printStackTrace();
187: }
188:
189: return null;
190: }
191:
192: }
|