[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