[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