[overlord-commits] Overlord SVN: r753 - in cdl/trunk/samples/jbossesb: common/creditAgency/src/main/java/org/jboss/overlord/examples/creditAgency and 2 other directories.

overlord-commits at lists.jboss.org overlord-commits at lists.jboss.org
Tue Aug 18 02:09:58 EDT 2009


Author: jeff.yuchang
Date: 2009-08-18 02:09:57 -0400 (Tue, 18 Aug 2009)
New Revision: 753

Modified:
   cdl/trunk/samples/jbossesb/client/src/com/acme/services/buyer/WSBuyerClient.java
   cdl/trunk/samples/jbossesb/common/creditAgency/src/main/java/org/jboss/overlord/examples/creditAgency/CreditAgencyDecision.java
   cdl/trunk/samples/jbossesb/common/creditAgency/src/main/java/org/jboss/overlord/examples/creditAgency/SetCreditCheckInvalidMessageAction.java
   cdl/trunk/samples/jbossesb/common/creditAgency/src/main/java/org/jboss/overlord/examples/creditAgency/SetCreditCheckResponseMessageAction.java
   cdl/trunk/samples/jbossesb/common/creditAgency/src/main/java/org/jboss/overlord/examples/wsdl/CreditAgencyService.java
   cdl/trunk/samples/jbossesb/common/creditAgency/src/main/resources/META-INF/jboss-esb.xml
Log:
* finished the ws proxy. 



Modified: cdl/trunk/samples/jbossesb/client/src/com/acme/services/buyer/WSBuyerClient.java
===================================================================
--- cdl/trunk/samples/jbossesb/client/src/com/acme/services/buyer/WSBuyerClient.java	2009-08-17 08:36:30 UTC (rev 752)
+++ cdl/trunk/samples/jbossesb/client/src/com/acme/services/buyer/WSBuyerClient.java	2009-08-18 06:09:57 UTC (rev 753)
@@ -54,6 +54,7 @@
         String msg = new String(StreamUtils.readStream(WSBuyerClient.class.getResourceAsStream("/soap_message_" + messageNum + ".xml")));
         return msg;
     }
+    
 	
 	/**
 	 * @param args

Modified: cdl/trunk/samples/jbossesb/common/creditAgency/src/main/java/org/jboss/overlord/examples/creditAgency/CreditAgencyDecision.java
===================================================================
--- cdl/trunk/samples/jbossesb/common/creditAgency/src/main/java/org/jboss/overlord/examples/creditAgency/CreditAgencyDecision.java	2009-08-17 08:36:30 UTC (rev 752)
+++ cdl/trunk/samples/jbossesb/common/creditAgency/src/main/java/org/jboss/overlord/examples/creditAgency/CreditAgencyDecision.java	2009-08-18 06:09:57 UTC (rev 753)
@@ -20,7 +20,10 @@
 package org.jboss.overlord.examples.creditAgency;
 
 import org.jboss.savara.jbossesb.Decision;
+import org.jboss.savara.jbossesb.XMLUtils;
 import org.jboss.soa.esb.message.Message;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
 
 /**
  * @author <a href="mailto:cyu at redhat.com">Jeff Yu</a>
@@ -28,11 +31,29 @@
  */
 public class CreditAgencyDecision implements Decision {
 
-	/* (non-Javadoc)
+	/* 
 	 * @see org.jboss.soa.overlord.jbossesb.Decision#executeDecision(org.jboss.soa.esb.message.Message)
+	 * 
+	 * return true if amount is less than 500.
+	 * 
 	 */
 	public boolean executeDecision(Message message) {
-		return true;
+		try {
+			String xmlMsg = (String)message.getBody().get();
+			Node node = XMLUtils.getNode(xmlMsg);
+			NodeList nodeList = node.getChildNodes();
+			for (int i =0; i < nodeList.getLength(); i++) {
+				if ("amount".equals(nodeList.item(i).getNodeName())) {
+					String value = nodeList.item(i).getTextContent();
+					if (500 >= Integer.valueOf(value).intValue()) {
+						return true;
+					}
+				}
+			}
+			return false;
+		} catch (Exception e) {
+			return false;
+		}
 	}
 
 }

Modified: cdl/trunk/samples/jbossesb/common/creditAgency/src/main/java/org/jboss/overlord/examples/creditAgency/SetCreditCheckInvalidMessageAction.java
===================================================================
--- cdl/trunk/samples/jbossesb/common/creditAgency/src/main/java/org/jboss/overlord/examples/creditAgency/SetCreditCheckInvalidMessageAction.java	2009-08-17 08:36:30 UTC (rev 752)
+++ cdl/trunk/samples/jbossesb/common/creditAgency/src/main/java/org/jboss/overlord/examples/creditAgency/SetCreditCheckInvalidMessageAction.java	2009-08-18 06:09:57 UTC (rev 753)
@@ -25,6 +25,7 @@
 import org.jboss.soa.esb.helpers.ConfigTree;
 import org.jboss.soa.esb.message.Message;
 import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
 
 public class SetCreditCheckInvalidMessageAction extends AbstractActionLifecycle {
 	
@@ -37,10 +38,25 @@
 	}
 	
 	public Message process(Message message) throws Exception{
+		StringBuffer sbuffer = new StringBuffer();
 		
 		Node node = XMLUtils.getNode((String)message.getBody().get());
 		String idValue = node.getAttributes().getNamedItem("id").getNodeValue();
-		message.getBody().add("<CreditCheckInvalid id=\"" + idValue +"\"></CreditCheckInvalid>");
+		sbuffer.append("<CreditCheckInvalid id=\"" + idValue +"\">");
+		
+		NodeList list = node.getChildNodes();
+		for (int i =0; i < list.getLength(); i++) {
+			if ("amount".equals(list.item(i).getNodeName())) {
+				sbuffer.append("<amount>" + list.item(i).getTextContent() + "</amount>");
+			}
+			if ("account".equals(list.item(i).getNodeName())) {
+				sbuffer.append("<account>" + list.item(i).getTextContent()+"</account>");
+			}
+		}
+		
+		sbuffer.append("</CreditCheckInvalid>");
+		
+		message.getBody().add(sbuffer.toString());
 
 		logger.info("Updated credit message: " + message.getBody().get());
 

Modified: cdl/trunk/samples/jbossesb/common/creditAgency/src/main/java/org/jboss/overlord/examples/creditAgency/SetCreditCheckResponseMessageAction.java
===================================================================
--- cdl/trunk/samples/jbossesb/common/creditAgency/src/main/java/org/jboss/overlord/examples/creditAgency/SetCreditCheckResponseMessageAction.java	2009-08-17 08:36:30 UTC (rev 752)
+++ cdl/trunk/samples/jbossesb/common/creditAgency/src/main/java/org/jboss/overlord/examples/creditAgency/SetCreditCheckResponseMessageAction.java	2009-08-18 06:09:57 UTC (rev 753)
@@ -25,6 +25,7 @@
 import org.jboss.soa.esb.helpers.ConfigTree;
 import org.jboss.soa.esb.message.Message;
 import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
 
 public class SetCreditCheckResponseMessageAction extends AbstractActionLifecycle {
 	
@@ -37,11 +38,26 @@
 	}
 	
 	public Message process(Message message) throws Exception{
+		StringBuffer sbuffer = new StringBuffer();
 		
 		Node node = XMLUtils.getNode((String)message.getBody().get());
 		String idValue = node.getAttributes().getNamedItem("id").getNodeValue();
-		message.getBody().add("<CreditCheckOk id=\"" + idValue +"\"></CreditCheckOk>");
+		sbuffer.append("<CreditCheckOk id=\"" + idValue +"\">");
 		
+		NodeList list = node.getChildNodes();
+		for (int i =0; i < list.getLength(); i++) {
+			if ("amount".equals(list.item(i).getNodeName())) {
+				sbuffer.append("<amount>" + list.item(i).getTextContent() + "</amount>");
+			}
+			if ("account".equals(list.item(i).getNodeName())) {
+				sbuffer.append("<account>" + list.item(i).getTextContent()+"</account>");
+			}
+		}
+		
+		sbuffer.append("</CreditCheckOk>");
+		
+		message.getBody().add(sbuffer.toString());
+		
 		logger.info("Updated credit message: "+message.getBody().get() +"' by thread of " + Thread.currentThread().getName());
 
 		return(message);

Modified: cdl/trunk/samples/jbossesb/common/creditAgency/src/main/java/org/jboss/overlord/examples/wsdl/CreditAgencyService.java
===================================================================
--- cdl/trunk/samples/jbossesb/common/creditAgency/src/main/java/org/jboss/overlord/examples/wsdl/CreditAgencyService.java	2009-08-17 08:36:30 UTC (rev 752)
+++ cdl/trunk/samples/jbossesb/common/creditAgency/src/main/java/org/jboss/overlord/examples/wsdl/CreditAgencyService.java	2009-08-18 06:09:57 UTC (rev 753)
@@ -26,6 +26,15 @@
 import javax.jws.soap.SOAPBinding;
 
 import org.jboss.overlord.examples.xsd.PurchaseDetailsType;
+import org.jboss.savara.jbossesb.MessageUtil;
+import org.jboss.savara.jbossesb.XMLUtils;
+import org.jboss.soa.esb.client.ServiceInvoker;
+import org.jboss.soa.esb.listeners.message.MessageDeliverException;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.message.format.MessageType;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
 
 
 /**
@@ -41,11 +50,55 @@
     public PurchaseDetailsType checkCredit(@WebParam(name = "CreditCheckRequest", partName = "CreditCheckRequest")
         PurchaseDetailsType creditCheckRequest) throws CreditCheckInvalid {
     	
-    	System.out.println("The amount is: " + creditCheckRequest.getAmount());
-    	if (creditCheckRequest.getAmount() >= 500) {
-    		CreditCheckInvalid invalid = new CreditCheckInvalid(null, creditCheckRequest);
-    		throw invalid;
-    	}    	
-    	return creditCheckRequest;
+    	Message message = getRequestMessage(creditCheckRequest);
+        
+    	try {
+			ServiceInvoker invoker = new ServiceInvoker("org.pi4soa.purchase.purchasegoods", "PurchaseGoodsProcess_CreditAgency");
+			Message response = invoker.deliverSync(message, 20000);
+    	
+			PurchaseDetailsType result = getConvertedResponse(response);
+			
+			String messageType = MessageUtil.getMessageType(response.getBody().get());
+			if ("CreditCheckInvalid".equalsIgnoreCase(messageType)) {
+				throw new CreditCheckInvalid(null, result);
+			}
+			return result;
+		} catch (Exception e) {
+			throw new CreditCheckInvalid(null, creditCheckRequest);
+		}
+		 	
     }
+
+	private PurchaseDetailsType getConvertedResponse(Message response) throws Exception {
+		Node node = XMLUtils.getNode((String)response.getBody().get());
+		String idValue = node.getAttributes().getNamedItem("id").getNodeValue();
+		String amountNo = null;
+		String accountNo = null;
+		NodeList list = node.getChildNodes();
+		for (int i =0; i < list.getLength(); i++) {
+			if ("amount".equals(list.item(i).getNodeName())) {
+				amountNo = list.item(i).getTextContent();
+			}
+			if ("account".equals(list.item(i).getNodeName())) {
+				accountNo = list.item(i).getTextContent();
+			}
+		}
+		
+		PurchaseDetailsType result = new PurchaseDetailsType();
+		result.setId(Integer.valueOf(idValue));
+		result.setAccount(Integer.valueOf(accountNo));
+		result.setAmount(Integer.valueOf(amountNo));
+		return result;
+	}
+
+	private Message getRequestMessage(PurchaseDetailsType creditCheckRequest) {
+		Message message = MessageFactory.getInstance().getMessage(MessageType.JBOSS_XML);
+        StringBuffer sbuffer = new StringBuffer();
+        sbuffer.append("<CreditCheckRequest id=\"" + creditCheckRequest.getId() +"\">");
+        sbuffer.append("<account>" + creditCheckRequest.getAccount() + "</account>");
+        sbuffer.append("<amount>" + creditCheckRequest.getAmount() + "</amount>");
+        sbuffer.append("</CreditCheckRequest>");    	
+        message.getBody().add(sbuffer.toString());
+		return message;
+	}
 }

Modified: cdl/trunk/samples/jbossesb/common/creditAgency/src/main/resources/META-INF/jboss-esb.xml
===================================================================
--- cdl/trunk/samples/jbossesb/common/creditAgency/src/main/resources/META-INF/jboss-esb.xml	2009-08-17 08:36:30 UTC (rev 752)
+++ cdl/trunk/samples/jbossesb/common/creditAgency/src/main/resources/META-INF/jboss-esb.xml	2009-08-18 06:09:57 UTC (rev 753)
@@ -39,7 +39,7 @@
             <listeners>
                 <jms-listener busidref="busId1" maxThreads="1" name="esb-stateless-creditAgency"/>
             </listeners>
-            <actions mep="OneWay">
+            <actions mep="OneWay">  
                 <action name="c1" process="process" class="org.jboss.savara.jbossesb.actions.SwitchAction">
                     <property name="serviceDescriptionName" value="{org.pi4soa.purchase.purchasegoods}PurchaseGoodsProcess-CreditAgency"/>
                     <property name="conversationType" value="overlord.cdl.samples.Common at CreditAgency"/>



More information about the overlord-commits mailing list