KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > sun > j2ee > blueprints > opc > powebservice > PoEndpointBean


1 /*
2 * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * - Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 *
11 * - Redistribution in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in
13 * the documentation and/or other materials provided with the
14 * distribution.
15 *
16 * Neither the name of Sun Microsystems, Inc. or the names of
17 * contributors may be used to endorse or promote products derived
18 * from this software without specific prior written permission.
19 *
20 * This software is provided "AS IS," without a warranty of any
21 * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
22 * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
23 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY
24 * EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES
25 * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
26 * DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN
27 * OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR
28 * FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR
29 * PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF
30 * LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE,
31 * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
32 *
33 * You acknowledge that Software is not designed, licensed or intended
34 * for use in the design, construction, operation or maintenance of
35 * any nuclear facility.
36 */

37
38 package com.sun.j2ee.blueprints.opc.powebservice;
39
40 import java.util.*;
41 import java.rmi.*;
42
43 import javax.ejb.*;
44 import javax.jms.*;
45
46 import com.sun.j2ee.blueprints.servicelocator.*;
47 import com.sun.j2ee.blueprints.servicelocator.ejb.*;
48 import com.sun.j2ee.blueprints.opc.purchaseorder.*;
49 import com.sun.j2ee.blueprints.opc.JNDINames;
50 import com.sun.j2ee.blueprints.opc.utils.*;
51 import com.sun.j2ee.blueprints.opc.serviceexceptions.*;
52
53 /**
54  * This class is the entry point for purchase orders submitted
55  * by adventure builder web site application when a user
56  * submits an order.
57  */

58 public class PoEndpointBean implements SessionBean {
59
60     private SessionContext sc;
61  
62     public PoEndpointBean(){}
63     
64     public void ejbCreate() throws CreateException {}
65
66     /**
67      * Accept a purchase order, place the order in a JMS queue and return the
68      * order id so that the caller can have a correlation id for the order
69      */

70     public String JavaDoc submitPurchaseOrder(PurchaseOrder po)
71   throws InvalidPOException, ProcessingException, RemoteException {
72
73         //validate PO, make sure all required info is provided.
74
if (po == null) {
75             throw new InvalidPOException("The Purchase Order received was empty!!!!");
76         } else if ( po.getUserId() == null ||
77                     po.getEmailId() == null ||
78                     po.getLocale() == null ||
79                     po.getOrderDate() == null ||
80                     po.getShippingInfo() == null ||
81                     po.getBillingInfo() == null ||
82                     po.getTotalPrice() == 0 ||
83                     po.getCreditCard() == null ||
84                     po.getHeadCount() == 0 ||
85                     po.getStartDate() == null ||
86                     po.getEndDate() == null ||
87                     po.getDepartureCity()== null ) {
88             throw new InvalidPOException("No field in the purchase order can be null!");
89         }
90   if(JMSUtils.sendMessage(JNDINames.WORKFLOW_MGR_MDB_QUEUE,
91         JNDINames.DOC_TYPE, JNDINames.PO_DOCUMENT,
92         (Object JavaDoc)po) == false)
93       throw new ProcessingException("Irrecoverable error while submitting the order for processing");
94         return po.getPoId();
95     }
96         
97     public void setSessionContext(SessionContext sc) {
98         this.sc = sc;
99     }
100     
101     public void ejbRemove() throws RemoteException {}
102
103     //empty for Stateless EJBs
104
public void ejbActivate() {}
105
106     //empty for Stateless EJBs
107
public void ejbPassivate() {}
108    
109 }
110
Popular Tags