[jboss-svn-commits] JBL Code SVN: r5655 - in labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker: actions adapters domain web

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Aug 9 15:33:36 EDT 2006


Author: daniel.brum at jboss.com
Date: 2006-08-09 15:33:33 -0400 (Wed, 09 Aug 2006)
New Revision: 5655

Modified:
   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/CustomerAdapter.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/LoanBrokerWS.java
   labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/WebCustomer.java
Log:


Modified: 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-08-09 19:00:36 UTC (rev 5654)
+++ labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessCreditRequest.java	2006-08-09 19:33:33 UTC (rev 5655)
@@ -76,7 +76,7 @@
 		
 		if (! (m_oCurr instanceof ObjectMessage))
 			throw new Exception("Message must be a ObjectMessage");
-		System.out.println(m_oCurr);
+//		System.out.println(m_oCurr);
 		CreditCheckRequest creditRequest = (CreditCheckRequest)((ObjectMessage)m_oCurr).getObject();
 		
 		//use the notification framework to send back our response

Modified: 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-08-09 19:00:36 UTC (rev 5654)
+++ labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessCreditResponse.java	2006-08-09 19:33:33 UTC (rev 5655)
@@ -25,18 +25,28 @@
 import java.io.Serializable;
 import java.util.Random;
 
-import javax.jms.Message;
 import javax.jms.*;
+import javax.naming.Context;
 
+//import org.jboss.remoting.samples.transporter.basic.Customer;
 import org.jboss.soa.esb.actions.*;
+import org.jboss.soa.esb.common.SystemProperties;
+import org.jboss.soa.esb.helpers.AppServerContext;
 import org.jboss.soa.esb.helpers.DomElement;
 import org.jboss.soa.esb.listeners.GpListener;
+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.creditagency.CreditCheckResponseNotification;
+import org.jboss.soa.esb.services.IpersistHandler;
+import org.jboss.soa.esb.services.PersistHandlerFactory;
+import org.jboss.soa.esb.samples.loanbroker.domain.*;
 
+
 import com.thoughtworks.xstream.XStream;
 
 public class ProcessCreditResponse extends AbstractAction {
+	
+	
 
 	public ProcessCreditResponse(DomElement p_oP, Object p_oCurr) throws Exception {
 		super(p_oP, p_oCurr);		
@@ -49,17 +59,30 @@
 		
 		if (! (m_oCurr instanceof ObjectMessage))
 			throw new Exception("Message must be a ObjectMessage");
-		System.out.println(m_oCurr);
+//		System.out.println(m_oCurr);
 		
-		//TODO: add code here to send information (customer and credit info to banks)		
+		//get the credit response information and send to banks		
 		String[] msg = (String[])((ObjectMessage)m_oCurr).getObject();				
 		CreditCheckResponseNotification response = CreditCheckResponseNotification.fromArray(msg);
 		System.out.println(response.toString());
 		
+//		get handle to the JBossESB Event object store
+		IpersistHandler esbHandler = PersistHandlerFactory.getPersistHandler("remote", 
+				SystemProperties.getJndiServerType(), 
+				SystemProperties.getJndiServerURL());
+
+		//convert the WebCustomer to an ESB Customer capable of being persisted to the event store		
+//		long lUid = esbHandler.addObject(CustomerAdapter.esbFromWeb(customer));		
+		Customer customer = (Customer) esbHandler.getObject(org.jboss.soa.esb.samples.loanbroker.domain.Customer.class, response.customerUID);
+		CreditRating rating = new CreditRating("");
+		rating.setScore(response.score);
+		customer.setRating(rating);
+		esbHandler.rplObject(customer);	//update the object store
 		
-		
-		
-		
+		//TODO: send JMS message to bank
+		sendJMSToBank(customer);
+		//TODO: send file csv to bank
+//		sendFileToBank(customer);
 	} //________________________________
 	
 	public Serializable getOkNotification()
@@ -90,6 +113,33 @@
 		}
 	} //________________________________
 	
+	private void sendJMSToBank(Customer customer) {
+		try {
+			Context ctx = AppServerContext.getServerContext(LoanBrokerConstants.JNDI_TYPE, LoanBrokerConstants.JNDI_URL);
+			Queue queue = (Queue) ctx.lookup(LoanBrokerConstants.BANK_JMS_REQUEST_QUEUE);
+			QueueConnectionFactory factory = (QueueConnectionFactory) ctx.lookup("ConnectionFactory");
+			QueueConnection cnn = factory.createQueueConnection();
+			QueueSession sess = cnn.createQueueSession(false,QueueSession.AUTO_ACKNOWLEDGE);
+			
+			//get a customer in the format required by the JMS Bank
+			BanksQuoteRequest quote = CustomerAdapter.bankQuoteFromCustomer(customer);
+			XStream xstream = new XStream();
+			String bankQuoteRequestXml=xstream.toXML(quote);
+			
+			TextMessage msg = sess.createTextMessage(bankQuoteRequestXml);
+			MessageProducer sender = sess.createSender(queue);
+			sender = sess.createSender(queue);			
+			sender.send(msg);
+		}catch(Exception e) {
+			e.printStackTrace();
+		}
+		
+	}
 	
+	private void sendFileToBank(Customer customer) {
+		
+	}
+	
+	
 
 }

Modified: 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-08-09 19:00:36 UTC (rev 5654)
+++ labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/adapters/CustomerAdapter.java	2006-08-09 19:33:33 UTC (rev 5655)
@@ -24,7 +24,7 @@
 
 import java.text.*;
 
-import org.jboss.soa.esb.samples.loanbroker.domain.Customer;
+import org.jboss.soa.esb.samples.loanbroker.domain.*;
 import org.jboss.soa.esb.samples.loanbroker.web.WebCustomer;
 import org.jboss.soa.esb.util.*;
 import org.jboss.soa.esb.common.bizclasses.*;
@@ -51,7 +51,9 @@
     	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));
+    	oRet.setField(Customer.ATTRIB.ssn		,Integer.toString(p_o.ssn));
     	
+    	
     	return oRet;
     }//_________________________________________
     
@@ -75,6 +77,8 @@
 
 		sAux	= p_o.getField(Customer.ATTRIB.loanDur);
 		int	iLoanDur	= (null==sAux)? 0 : Integer.parseInt(sAux);
+		sAux	= p_o.getField(Customer.ATTRIB.ssn);
+		int	ssn	= (null==sAux)? 0 : Integer.parseInt(sAux);
 
 		double dAmount = 0.;
 		sAux = p_o.getField(Customer.ATTRIB.loanAmt);
@@ -82,8 +86,22 @@
 			try   {dAmount = s_NF.parse(sAux).doubleValue();}
 			catch (Exception e) {/*  OK  leave it at zero  */ }
     	
-    	return new WebCustomer(sName,sAddr,sEmployer,dSalary,iLoanDur,dAmount);
+    	return new WebCustomer(sName,sAddr,sEmployer,dSalary,iLoanDur,dAmount,ssn);
     }//_________________________________________
+	
+	public static BanksQuoteRequest bankQuoteFromCustomer(Customer p_o) {
+		BanksQuoteRequest bankRequest = new BanksQuoteRequest();
+		CreditRating rating = p_o.getRating();
+		bankRequest.creditScore = rating.getScore();
+		bankRequest.loanAmount 	= Double.parseDouble(p_o.getField(Customer.ATTRIB.loanAmt));
+		bankRequest.loanTerm	= Integer.parseInt(p_o.getField(Customer.ATTRIB.loanDur));
+		bankRequest.ssn			= Integer.parseInt(p_o.getField(Customer.ATTRIB.ssn));
+		
+		return bankRequest;
+		
+		
+		
+	}
     
 
 }

Modified: 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-08-09 19:00:36 UTC (rev 5654)
+++ labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain/Customer.java	2006-08-09 19:33:33 UTC (rev 5655)
@@ -35,6 +35,7 @@
 	,salary
 	,loanDur
 	,loanAmt
+	,ssn
 	};
 	private EnumMap<ATTRIB,String>m_oData;
 
@@ -83,6 +84,7 @@
     	setField(ATTRIB.salary		,s_NF.format(salary));
     	setField(ATTRIB.loanDur		,Integer.toString(loanDuration));
     	setField(ATTRIB.loanAmt		,s_NF.format(loanAMount));
+    	setField(ATTRIB.ssn			,Integer.toString(loanDuration));
     }//_________________________________________
     
     public String setField(ATTRIB pKey, String pVal)
@@ -107,7 +109,14 @@
     {	return (null!=person)? person : (person=new Person((String)null)); 
     }
 
-    public void			setRating(CreditRating pO)	{	rating	= pO; }
+    public void			setRating(CreditRating pO)	{	rating	= pO;
+    	try {
+			System.out.println(this.toDTO().toXml());
+		} catch (Exception e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+    }
     public CreditRating getRating()
     {	return (null!=rating)? rating : (rating=new CreditRating((String)null)); 
     }

Modified: 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-08-09 19:00:36 UTC (rev 5654)
+++ labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain/LoanBrokerConstants.java	2006-08-09 19:33:33 UTC (rev 5655)
@@ -22,12 +22,16 @@
 
 package org.jboss.soa.esb.samples.loanbroker.domain;
 
+import org.jboss.soa.esb.helpers.AppServerContext;
+
 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";
 	public static final String BANK_JMS_REQUEST_QUEUE	= "queue/C";
+	public static final String JNDI_URL					= "localhost";
+	public static final String JNDI_TYPE				= AppServerContext.SERVER_TYPE.jboss.toString();
 	
 	
 

Modified: 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-08-09 19:00:36 UTC (rev 5654)
+++ labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/LoanBrokerWS.java	2006-08-09 19:33:33 UTC (rev 5655)
@@ -98,7 +98,7 @@
 
 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);
+	WebCustomer customer = new WebCustomer("John Doe", "123 My St.", "JBoss", 50.00, 12, 100.00,123456);
 	ws.RequestLoan(customer);
 		
 	}

Modified: 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-08-09 19:00:36 UTC (rev 5654)
+++ labs/jbossesb/trunk/product/docs/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/WebCustomer.java	2006-08-09 19:33:33 UTC (rev 5655)
@@ -20,6 +20,10 @@
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
 
+
+/*
+ * a simple web Customer to use in the web services call and not expose the internal esb Customer object
+ */
 package org.jboss.soa.esb.samples.loanbroker.web;
 
 public class WebCustomer 
@@ -28,8 +32,9 @@
 	public	double	salary	,loanAmount;
 	public	int		loanDuration;	
 	private int		creditScore;
+	public int		ssn;
 	
-	public WebCustomer(String name, String address, String employerName, double salary, int loanDuration, double loanAmount) 
+	public WebCustomer(String name, String address, String employerName, double salary, int loanDuration, double loanAmount, int ssn) 
     {
 		this.name			= name;
 		this.address		= address;
@@ -38,19 +43,8 @@
 		this.loanAmount		= loanAmount;
 		this.loanDuration	= loanDuration;
 		this.creditScore	= 0;
+		this.ssn 			= ssn;
 		
-    }//_________________________________________
-	
-	//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