[jboss-svn-commits] JBL Code SVN: r5305 - in labs/jbossesb/trunk/product/docs/samples: . trailblazer trailblazer/bankloanbrokerdemo trailblazer/bankloanbrokerdemo/conf trailblazer/bankloanbrokerdemo/java trailblazer/bankloanbrokerdemo/java/src trailblazer/bankloanbrokerdemo/java/src/org trailblazer/bankloanbrokerdemo/java/src/org/jboss trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/adapters trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/creditagency trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/sam! ples/loanbroker/web
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Jul 27 08:59:08 EDT 2006
Author: daniel.brum at jboss.com
Date: 2006-07-27 08:59:05 -0400 (Thu, 27 Jul 2006)
New Revision: 5305
Added:
labs/jbossesb/trunk/product/docs/samples/trailblazer/
labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/
labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/conf/
labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/conf/LoanBrokerConfig.xml
labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/conf/ObjStore.xml
labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/
labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/
labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/
labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/
labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/
labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/
labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/
labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/
labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/
labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessCreditRequest.java
labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessCreditResponse.java
labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/adapters/
labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/adapters/CustomerAdapter.java
labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/creditagency/
labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/creditagency/CreditAgency.java
labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/creditagency/CreditAgencyJMSConsumer.java
labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/creditagency/CreditCheckRequest.java
labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/creditagency/CreditCheckResponse.java
labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain/
labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain/CreditRating.java
labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain/Customer.java
labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain/LoanBrokerConstants.java
labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/
labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/LaunchDummy.java
labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/LoanBrokerWS.java
labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/WebCustomer.java
Log:
Loan Broker example
Added: labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/conf/LoanBrokerConfig.xml
===================================================================
--- labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/conf/LoanBrokerConfig.xml 2006-07-27 12:41:50 UTC (rev 5304)
+++ labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/conf/LoanBrokerConfig.xml 2006-07-27 12:59:05 UTC (rev 5305)
@@ -0,0 +1,29 @@
+<ListenOnJMS
+ parmsReloadSecs="60"
+>
+ <CreditRequest
+ actionClass="org.jboss.soa.esb.samples.loanbroker.actions.ProcessCreditRequest"
+ maxThreads="1"
+ listenQueue="queue/A"
+ listenMsgSelector="sample_loanbroker_servicecode='creditRequest'"
+ >
+
+ <NotificationList type="OK">
+ <target class="NotifyQueues" >
+ <queue jndiName="queue/A">
+ <messageProp name="sample_loanbroker_servicecode" value="creditResponse" />
+ </queue>
+ </target>
+ </NotificationList>
+
+ </CreditRequest>
+
+ <CreditResponse
+ actionClass="org.jboss.soa.esb.samples.loanbroker.actions.ProcessCreditResponse"
+ maxThreads="1"
+ listenQueue="queue/A"
+ listenMsgSelector="sample_loanbroker_servicecode='creditResponse'"
+ >
+
+ </CreditResponse>
+</ListenOnJMS>
Added: labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/conf/ObjStore.xml
===================================================================
--- labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/conf/ObjStore.xml 2006-07-27 12:41:50 UTC (rev 5304)
+++ labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/conf/ObjStore.xml 2006-07-27 12:59:05 UTC (rev 5305)
@@ -0,0 +1,19 @@
+<ObjectStore
+ dataSourceJndiName="java:JbossEsbDS"
+ uidTable="uid_table"
+ batchTable="batches" >
+
+ <Class name="org.jboss.soa.esb.common.bizclasses.Person"
+ table="object_snap"
+ type="Person"
+ encrypt="false" >
+ <Index table="people_index" />
+ </Class>
+
+ <Class name="org.jboss.soa.esb.samples.loanbroker.domain.Customer"
+ table="object_snap"
+ type="Customer"
+ encrypt="false" >
+ <Index table="customer_index" />
+ </Class>
+</ObjectStore>
Added: labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessCreditRequest.java
===================================================================
--- labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessCreditRequest.java 2006-07-27 12:41:50 UTC (rev 5304)
+++ labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessCreditRequest.java 2006-07-27 12:59:05 UTC (rev 5305)
@@ -0,0 +1,50 @@
+package org.jboss.soa.esb.samples.loanbroker.actions;
+
+import org.jboss.soa.esb.processors.*;
+import org.jboss.soa.esb.samples.loanbroker.creditagency.CreditCheckRequest;
+import org.jboss.soa.esb.samples.loanbroker.creditagency.CreditCheckResponse;
+import org.jboss.soa.esb.helpers.*;
+
+import com.sun.mail.iap.Response;
+
+import javax.jms.*;
+
+import java.util.Random;
+
+
+public class ProcessCreditRequest extends EsbMsgProcessor
+{
+ public Integer creditScore;
+
+ /*
+ * the base class sets up the parameter tree being used by this action class
+ */
+ public ProcessCreditRequest(DomElement p_parms) throws Exception
+ {
+ super(p_parms);
+ }
+
+ public void processMessage(Message p_oMsg) throws Exception
+ {
+ if (! (p_oMsg instanceof ObjectMessage))
+ throw new Exception("Message must be a ObjectMessage");
+ System.out.println(p_oMsg);
+ CreditCheckRequest creditRequest = (CreditCheckRequest)((ObjectMessage)p_oMsg).getObject();
+
+ //use the notification framework to send back our response
+ //use a dummy score between 0 and 10
+ Random generator = new Random();
+ creditScore = new Integer(generator.nextInt(10));
+ }
+
+ protected void checkParms() throws Exception
+ {
+ }
+
+ //this is how the response is sent back, through OK notification
+ //you could also send back a special ERROR credit score condition
+ public Object getOkNotification()
+ {
+ return creditScore;
+ }
+}
Added: labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessCreditResponse.java
===================================================================
--- labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessCreditResponse.java 2006-07-27 12:41:50 UTC (rev 5304)
+++ labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessCreditResponse.java 2006-07-27 12:59:05 UTC (rev 5305)
@@ -0,0 +1,24 @@
+package org.jboss.soa.esb.samples.loanbroker.actions;
+
+import java.util.Random;
+
+import javax.jms.Message;
+import javax.jms.ObjectMessage;
+
+import org.jboss.soa.esb.helpers.DomElement;
+import org.jboss.soa.esb.processors.EsbMsgProcessor;
+import org.jboss.soa.esb.samples.loanbroker.creditagency.CreditCheckRequest;
+
+public class ProcessCreditResponse extends EsbMsgProcessor {
+
+ public ProcessCreditResponse(DomElement p_oP) throws Exception {
+ super(p_oP);
+
+ }
+
+ public void processMessage(Message p_oMsg) throws Exception
+ {
+ System.out.println(p_oMsg);
+ }
+
+}
Added: labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/adapters/CustomerAdapter.java
===================================================================
--- labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/adapters/CustomerAdapter.java 2006-07-27 12:41:50 UTC (rev 5304)
+++ labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/adapters/CustomerAdapter.java 2006-07-27 12:59:05 UTC (rev 5305)
@@ -0,0 +1,67 @@
+package org.jboss.soa.esb.samples.loanbroker.adapters;
+
+import java.text.*;
+
+import org.jboss.soa.esb.samples.loanbroker.domain.Customer;
+import org.jboss.soa.esb.samples.loanbroker.web.WebCustomer;
+import org.jboss.soa.esb.util.*;
+import org.jboss.soa.esb.common.bizclasses.*;
+
+public class CustomerAdapter
+{
+ // No objects of this class - only static methods
+ private CustomerAdapter() {}
+
+ private static final NumberFormat s_NF = new DecimalFormat("#########0.00");
+
+ public static Customer esbFromWeb (WebCustomer p_o)
+ {
+ Person oP = new Person((String)null);
+ oP.setField(Person.ATTRIB.fmlyN, p_o.name);
+
+ Address oAdd = new Address((String)null);
+ oAdd.setField(Address.ATTRIB.strLine1, p_o.address);
+ oAdd.setRole("loan");
+ oP.addAddress(oAdd);
+
+ Customer oRet = new Customer((String)null);
+ oRet.setField(Customer.ATTRIB.empName ,p_o.employerName);
+ oRet.setField(Customer.ATTRIB.salary ,s_NF.format(p_o.salary));
+ oRet.setField(Customer.ATTRIB.loanDur ,Integer.toString(p_o.loanDuration));
+ oRet.setField(Customer.ATTRIB.loanAmt ,s_NF.format(p_o.loanAmount));
+
+ return oRet;
+ }//_________________________________________
+
+ public static WebCustomer webFromEsb (Customer p_o)
+ {
+ String sName = null;
+ String sAddr = null;
+ Person oP = p_o.getPerson();
+ if (null!=oP)
+ { sName = oP.getField(Person.ATTRIB.fmlyN);
+ Address oAdd = oP.getAddressRole("loan");
+ sAddr = (null==oAdd) ? null : oAdd.getField(Address.ATTRIB.strLine1);
+ }
+
+ String sEmployer = p_o.getField(Customer.ATTRIB.empName);
+ String sAux = p_o.getField(Customer.ATTRIB.salary);
+ double dSalary = 0.;
+ if (! EsbUtil.isNullString(sAux))
+ try {dSalary = s_NF.parse(sAux).doubleValue();}
+ catch (Exception e) {/* OK leave it at zero */ }
+
+ sAux = p_o.getField(Customer.ATTRIB.loanDur);
+ int iLoanDur = (null==sAux)? 0 : Integer.parseInt(sAux);
+
+ double dAmount = 0.;
+ sAux = p_o.getField(Customer.ATTRIB.loanAmt);
+ if (! EsbUtil.isNullString(sAux))
+ try {dAmount = s_NF.parse(sAux).doubleValue();}
+ catch (Exception e) {/* OK leave it at zero */ }
+
+ return new WebCustomer(sName,sAddr,sEmployer,dSalary,iLoanDur,dAmount);
+ }//_________________________________________
+
+
+}
Added: labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/creditagency/CreditAgency.java
===================================================================
--- labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/creditagency/CreditAgency.java 2006-07-27 12:41:50 UTC (rev 5304)
+++ labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/creditagency/CreditAgency.java 2006-07-27 12:59:05 UTC (rev 5305)
@@ -0,0 +1,11 @@
+package org.jboss.soa.esb.samples.loanbroker.creditagency;
+
+public class CreditAgency {
+
+ public static CreditCheckResponse getScore(CreditCheckRequest cr) {
+ //return a score based on some random formula here
+
+ return null;
+
+ }
+}
Added: labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/creditagency/CreditAgencyJMSConsumer.java
===================================================================
--- labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/creditagency/CreditAgencyJMSConsumer.java 2006-07-27 12:41:50 UTC (rev 5304)
+++ labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/creditagency/CreditAgencyJMSConsumer.java 2006-07-27 12:59:05 UTC (rev 5305)
@@ -0,0 +1,71 @@
+package org.jboss.soa.esb.samples.loanbroker.creditagency;
+
+import org.jboss.soa.esb.samples.loanbroker.domain.*;
+
+import javax.jms.*;
+import javax.naming.*;
+
+import org.jboss.soa.esb.helpers.*;
+
+public class CreditAgencyJMSConsumer
+{
+ private static final String JNDI_URL = "localhost";
+ private static final String JNDI_TYPE = AppServerContext.SERVER_TYPE.jboss.toString();
+
+ private Context m_oCtx;
+
+ public CreditAgencyJMSConsumer(String p_sq) throws Exception
+ {
+ consumeMessages(p_sq);
+ Thread.sleep(1000);
+ } //__________________________________
+
+ public int consumeMessages(String p_sName) throws Exception
+ {
+
+ m_oCtx = AppServerContext.getServerContext(JNDI_TYPE,JNDI_URL);
+
+ MessageConsumer oCns = null;
+ oCns = getQueue(p_sName);
+ while (true)
+ { Message oMsg = oCns.receive(200);
+ if (null==oMsg) {
+ continue; }
+ CreditCheckRequest creditRequest = (CreditCheckRequest)((ObjectMessage)oMsg).getObject();
+// System.out.println("JBossESB - CreditAgency received request...");
+// dumpMessage(oMsg); //comment out if you don't want to see this
+
+ }
+
+ } //__________________________________
+
+ void dumpMessage(Message pM)
+ {
+ System.out.println(pM);
+ } //__________________________________
+
+ QueueReceiver getQueue(String p_sJndi) throws Exception
+ {
+ QueueConnection oQconn = null;
+ QueueSession oQsess = null;
+ QueueConnectionFactory qcf = (QueueConnectionFactory) m_oCtx
+ .lookup("ConnectionFactory");
+
+ oQconn = qcf.createQueueConnection();
+ oQsess = oQconn.createQueueSession(false
+ ,QueueSession.AUTO_ACKNOWLEDGE);
+ javax.jms.Queue oQueue
+ = (javax.jms.Queue) m_oCtx.lookup(p_sJndi);
+
+ QueueReceiver oRcv = oQsess.createReceiver(oQueue);
+ oQconn.start();
+ return oRcv;
+ } //__________________________________
+
+
+
+ public static void main(String args[]) throws Exception{
+ new CreditAgencyJMSConsumer(LoanBrokerConstants.CREDIT_CHECK_QUEUE);
+ }
+
+} //____________________________________________________________________________
Added: labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/creditagency/CreditCheckRequest.java
===================================================================
--- labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/creditagency/CreditCheckRequest.java 2006-07-27 12:41:50 UTC (rev 5304)
+++ labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/creditagency/CreditCheckRequest.java 2006-07-27 12:59:05 UTC (rev 5305)
@@ -0,0 +1,41 @@
+package org.jboss.soa.esb.samples.loanbroker.creditagency;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Random;
+
+/*
+ * class used internally by the CreditAgency
+ */
+
+public class CreditCheckRequest implements Serializable{
+ public long requestID;
+ public long timestamp;
+ public double amount, salary;
+ public int duration;
+ public String customerID;
+
+ private static Random generator = new Random();
+
+
+ public CreditCheckRequest(double salary, int duration, String customerID) {
+ this.requestID=generator.nextLong() ; //generate some fake random number for the request ID
+ this.timestamp=System.currentTimeMillis();
+ this.salary=salary;
+ this.duration=duration;
+ this.customerID=customerID;
+ }
+
+ public String toString() {
+ StringBuffer buff = new StringBuffer("-- JBossESB: CreditRequest message --");
+ buff.append("\t requestID: " + this.requestID + "\n");
+ buff.append("\t customer ID: " + this.customerID + "\n");
+ buff.append("\t amount: " + this.amount + "\n");
+ buff.append("\t duration: " + this.duration + "\n");
+ buff.append("\t salary: " + this.salary + "\n");
+
+ return buff.toString();
+
+ }
+
+}
Added: labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/creditagency/CreditCheckResponse.java
===================================================================
--- labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/creditagency/CreditCheckResponse.java 2006-07-27 12:41:50 UTC (rev 5304)
+++ labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/creditagency/CreditCheckResponse.java 2006-07-27 12:59:05 UTC (rev 5305)
@@ -0,0 +1,16 @@
+package org.jboss.soa.esb.samples.loanbroker.creditagency;
+
+import java.io.*;
+
+public class CreditCheckResponse implements Serializable{
+ public long requestID;
+ public long timestamp;
+ public int score;
+
+ public CreditCheckResponse(long requestID, int score) {
+ this.requestID=requestID;
+ this.timestamp=System.currentTimeMillis();
+ this.score = score;
+ }
+
+}
Added: labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain/CreditRating.java
===================================================================
--- labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain/CreditRating.java 2006-07-27 12:41:50 UTC (rev 5304)
+++ labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain/CreditRating.java 2006-07-27 12:59:05 UTC (rev 5305)
@@ -0,0 +1,56 @@
+package org.jboss.soa.esb.samples.loanbroker.domain;
+
+import java.util.*;
+
+import org.jboss.soa.esb.util.*;
+
+public class CreditRating extends BaseBusinessObject
+{
+ public enum ATTRIB
+ {score
+ };
+ private EnumMap<ATTRIB,String>m_oData;
+
+ public CreditRating(String p_sElem) {super(p_sElem);}
+ public CreditRating(String p_sElem, long p_lUid){super(p_sElem, p_lUid);}
+
+ @SuppressWarnings("unchecked")
+ public CreditRating(BobjStdDTO p_oDto) throws Exception
+ { super(p_oDto);
+
+ for (ATTRIB oCurr : ATTRIB.values())
+ setField(oCurr,p_oDto.getAttr(oCurr.toString()));
+ } //__________________________________
+
+ public BobjStdDTO toDTO() throws Exception
+ { BobjStdDTO oRet = super.toDTO();
+
+ for (ATTRIB oCurr : ATTRIB.values())
+ oRet.addAttr(oCurr.toString(), getField(oCurr));
+ return oRet;
+ }//_________________________________________
+
+ public String setField(ATTRIB pKey, String pVal)
+ { if (null==pKey) return null;
+ String sRet = (null==m_oData)? null : m_oData.remove(pKey);
+ if (! EsbUtil.isNullString(pVal))
+ { if (null==m_oData)
+ m_oData = new EnumMap<ATTRIB,String>(ATTRIB.class);
+ m_oData.put(pKey,pVal);
+ }
+ return sRet;
+ } //__________________________________
+
+ public String getField(ATTRIB pKey)
+ { if (null==pKey) return null;
+ if (null==m_oData) return null;
+ return m_oData.get(pKey);
+ } //__________________________________
+
+ public void setScore(int pI) {setField(ATTRIB.score, Integer.toString(pI)); }
+ public int getScore()
+ { try { return Integer.getInteger(getField(ATTRIB.score)); }
+ catch (Exception e) { return 0; }
+ } //__________________________________
+}
+
\ No newline at end of file
Added: labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain/Customer.java
===================================================================
--- labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain/Customer.java 2006-07-27 12:41:50 UTC (rev 5304)
+++ labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain/Customer.java 2006-07-27 12:59:05 UTC (rev 5305)
@@ -0,0 +1,99 @@
+package org.jboss.soa.esb.samples.loanbroker.domain;
+
+import java.util.*;
+import java.text.*;
+
+import org.jboss.soa.esb.util.*;
+import org.jboss.soa.esb.common.bizclasses.*;
+
+public class Customer extends BaseBusinessObject
+{
+ public enum ATTRIB
+ {empName
+ ,salary
+ ,loanDur
+ ,loanAmt
+ };
+ private EnumMap<ATTRIB,String>m_oData;
+
+ public enum OBJ
+ {person
+ ,rating
+ }
+
+ private Person person;
+ private CreditRating rating;
+
+ public Customer(String p_sElem) {super(p_sElem);}
+ public Customer(String p_sElem, long p_lUid){super(p_sElem, p_lUid);}
+
+ @SuppressWarnings("unchecked")
+ public Customer(BobjStdDTO p_oDto) throws Exception
+ { super(p_oDto);
+
+ for (ATTRIB oCurr : ATTRIB.values())
+ setField(oCurr,p_oDto.getAttr(oCurr.toString()));
+ person = (Person) p_oDto.getBobj(OBJ.person.toString());
+ rating = (CreditRating)p_oDto.getBobj(OBJ.rating.toString());
+ } //__________________________________
+
+ public BobjStdDTO toDTO() throws Exception
+ { BobjStdDTO oRet = super.toDTO();
+
+ for (ATTRIB oCurr : ATTRIB.values())
+ oRet.addAttr(oCurr.toString(), getField(oCurr));
+ oRet.addBobj(OBJ.person.toString(),person);
+ oRet.addBobj(OBJ.rating.toString(),rating);
+ return oRet;
+ }//_________________________________________
+
+ private static final NumberFormat s_NF = new DecimalFormat("#########0.00");
+ public Customer(String name, String address, String employerName, double salary, int loanDuration, double loanAMount)
+ {
+ getPerson();
+ person.setField(Person.ATTRIB.fmlyN, name);
+
+ Address oAdd = new Address((String)null);
+ oAdd.setField(Address.ATTRIB.strLine1, address);
+ person.addAddress(oAdd);
+
+ setField(ATTRIB.empName ,employerName);
+ setField(ATTRIB.salary ,s_NF.format(salary));
+ setField(ATTRIB.loanDur ,Integer.toString(loanDuration));
+ setField(ATTRIB.loanAmt ,s_NF.format(loanAMount));
+ }//_________________________________________
+
+ public String setField(ATTRIB pKey, String pVal)
+ { if (null==pKey) return null;
+ String sRet = (null==m_oData)? null : m_oData.remove(pKey);
+ if (! EsbUtil.isNullString(pVal))
+ { if (null==m_oData)
+ m_oData = new EnumMap<ATTRIB,String>(ATTRIB.class);
+ m_oData.put(pKey,pVal);
+ }
+ return sRet;
+ } //__________________________________
+
+ public String getField(ATTRIB pKey)
+ { if (null==pKey) return null;
+ if (null==m_oData) return null;
+ return m_oData.get(pKey);
+ } //__________________________________
+
+ public void setperson(Person pO) { person = pO; }
+ public Person getPerson()
+ { return (null!=person)? person : (person=new Person((String)null));
+ }
+
+ public void setRating(CreditRating pO) { rating = pO; }
+ public CreditRating getRating()
+ { return (null!=rating)? rating : (rating=new CreditRating((String)null));
+ }
+
+ public String[] locator() {
+ if (null==person) return new String[] {"","",""};
+ return person.locator();
+ }
+
+}
+
\ No newline at end of file
Added: labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain/LoanBrokerConstants.java
===================================================================
--- labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain/LoanBrokerConstants.java 2006-07-27 12:41:50 UTC (rev 5304)
+++ labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain/LoanBrokerConstants.java 2006-07-27 12:59:05 UTC (rev 5305)
@@ -0,0 +1,10 @@
+package org.jboss.soa.esb.samples.loanbroker.domain;
+
+public class LoanBrokerConstants {
+ public static final String SELECTOR_SERVICE = "sample_loanbroker_servicecode";
+ public static final String CREDIT_CHECK_REQUEST = "creditRequest";
+ public static final String CREDIT_CHECK_RESPONSE = "creditResponse";
+ public static final String CREDIT_CHECK_QUEUE = "queue/A";
+
+
+}
Added: labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/LaunchDummy.java
===================================================================
--- labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/LaunchDummy.java 2006-07-27 12:41:50 UTC (rev 5304)
+++ labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/LaunchDummy.java 2006-07-27 12:59:05 UTC (rev 5305)
@@ -0,0 +1,15 @@
+package org.jboss.soa.esb.samples.loanbroker.web;
+
+import org.jboss.soa.esb.listeners.JmsQueueListener;
+
+public class LaunchDummy {
+
+ /**
+ * @param args
+ */
+ public static void main(String[] args) throws Exception{
+ JmsQueueListener jms = new JmsQueueListener(args [0]);
+
+ }
+
+}
Added: labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/LoanBrokerWS.java
===================================================================
--- labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/LoanBrokerWS.java 2006-07-27 12:41:50 UTC (rev 5304)
+++ labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/LoanBrokerWS.java 2006-07-27 12:59:05 UTC (rev 5305)
@@ -0,0 +1,105 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*
+*/
+
+package org.jboss.soa.esb.samples.loanbroker.web;
+
+
+import javax.jws.WebMethod;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+import javax.jws.soap.SOAPBinding.Use;
+
+import javax.naming.Context;
+import javax.naming.NamingException;
+import javax.naming.InitialContext;
+import javax.rmi.PortableRemoteObject;
+
+import javax.jms.*;
+
+
+import java.util.Properties;
+
+import org.jboss.soa.esb.samples.loanbroker.adapters.CustomerAdapter;
+import org.jboss.soa.esb.samples.loanbroker.creditagency.CreditCheckRequest;
+import org.jboss.soa.esb.samples.loanbroker.domain.LoanBrokerConstants;
+import org.jboss.soa.esb.services.*;
+import org.jboss.soa.esb.common.*;
+import org.jboss.soa.esb.helpers.AppServerContext;
+
+//Change targetNameSpace to your deployment info
+ at WebService(name = "LoanBrokerWS", targetNamespace="http://localhost/loanbroker")
+ at SOAPBinding(style = SOAPBinding.Style.RPC)
+public class LoanBrokerWS
+{
+ private static final String JNDI_URL = "localhost";
+ private static final String JNDI_TYPE = AppServerContext.SERVER_TYPE.jboss.toString();
+
+ at WebMethod
+//method name is .NET friendly
+public void RequestLoan(WebCustomer customer) {
+ try {
+
+ //get handle to the JBossESB Event object store
+ IpersistHandler esbHandler = PersistHandlerFactory.getPersistHandler("remote",
+ EsbSysProps.getJndiServerType(),
+ EsbSysProps.getJndiServerURL());
+
+ //convert the WebCustomer to an ESB Customer capable of being persisted to the event store
+ long lUid = esbHandler.addObject(CustomerAdapter.esbFromWeb(customer));
+
+ //create the CreditCheckRequest object expected by the CreditAgency service
+ //we are not going to persist this request to the CreditAgency, but you might want to...
+ CreditCheckRequest creditRequest = new CreditCheckRequest(customer.salary,
+ customer.loanDuration,
+ Long.toString(lUid));
+
+ //Send the CreditRequest to the queue which the JMSListener process is listening to
+ Context ctx = AppServerContext.getServerContext(JNDI_TYPE, JNDI_URL);
+ Queue queue = (Queue) ctx.lookup(LoanBrokerConstants.CREDIT_CHECK_QUEUE);
+ QueueConnectionFactory factory = (QueueConnectionFactory) ctx.lookup("ConnectionFactory");
+ QueueConnection cnn = factory.createQueueConnection();
+ QueueSession sess = cnn.createQueueSession(false,QueueSession.AUTO_ACKNOWLEDGE);
+ ObjectMessage msg = sess.createObjectMessage(creditRequest);
+ MessageProducer sender = sess.createSender(queue);
+ sender = sess.createSender(queue);
+ msg.setStringProperty(LoanBrokerConstants.SELECTOR_SERVICE, LoanBrokerConstants.CREDIT_CHECK_REQUEST);
+ sender.send(msg);
+
+
+ //only for test here
+ //msg.setStringProperty(LoanBrokerConstants.SELECTOR_SERVICE, LoanBrokerConstants.CREDIT_CHECK_RESPONSE);
+ //sender.send(msg);
+
+ } catch (Exception e) {
+ e.printStackTrace ();
+ }
+
+}
+
+public static void main(String args[]) throws Exception{
+ LoanBrokerWS ws = new LoanBrokerWS();
+ WebCustomer customer = new WebCustomer("John Doe", "123 My St.", "JBoss", 50.00, 12, 100.00);
+ ws.RequestLoan(customer);
+
+ }
+}
Added: labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/WebCustomer.java
===================================================================
--- labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/WebCustomer.java 2006-07-27 12:41:50 UTC (rev 5304)
+++ labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/WebCustomer.java 2006-07-27 12:59:05 UTC (rev 5305)
@@ -0,0 +1,34 @@
+package org.jboss.soa.esb.samples.loanbroker.web;
+
+public class WebCustomer
+{
+ public String name ,address ,employerName;
+ public double salary ,loanAmount;
+ public int loanDuration;
+ private int creditScore;
+
+ public WebCustomer(String name, String address, String employerName, double salary, int loanDuration, double loanAmount)
+ {
+ this.name = name;
+ this.address = address;
+ this.employerName = employerName;
+ this.salary = salary;
+ this.loanAmount = loanAmount;
+ this.loanDuration = loanDuration;
+ this.creditScore = 0;
+
+ }//_________________________________________
+
+ //Using .NET friendly method names for accessors
+ public String GetName() { return this.name; }
+ public void SetName(String val) { this.name=val; }
+
+ public String GetAddress(){ return this.address; }
+ public void SetAddress(String val){ this.address=val; }
+
+
+
+
+
+
+}
More information about the jboss-svn-commits
mailing list