JBoss JBPM SVN: r6700 - jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/context/exe.
by do-not-reply@jboss.org
Author: bradsdavis
Date: 2010-09-29 14:45:19 -0400 (Wed, 29 Sep 2010)
New Revision: 6700
Modified:
jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/context/exe/VariableContainer.java
Log:
Committed change the VariableContainer for logging service bug.
Modified: jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/context/exe/VariableContainer.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/context/exe/VariableContainer.java 2010-09-28 22:08:09 UTC (rev 6699)
+++ jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/context/exe/VariableContainer.java 2010-09-29 18:45:19 UTC (rev 6700)
@@ -15,6 +15,7 @@
import org.jbpm.context.log.VariableDeleteLog;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.graph.exe.Token;
+import org.jbpm.logging.db.DbLoggingService;
public abstract class VariableContainer implements Serializable {
@@ -198,12 +199,13 @@
variableInstance.removeReferences();
// is engine running in memory only or with logging enabled?
JbpmContext jbpmContext = JbpmContext.getCurrentJbpmContext();
- if (jbpmContext == null || jbpmContext.getServices().getLoggingService() != null) {
+ if (jbpmContext == null || (jbpmContext.getServices().getLoggingService() !=null )) {
// record variable deletion
// do not actually delete variable instance because log refers to it
getToken().addLog(new VariableDeleteLog(variableInstance));
}
- else {
+
+ if (jbpmContext != null && ((jbpmContext.getServices().getLoggingService() != null) && !(jbpmContext.getServices().getLoggingService() instanceof DbLoggingService))){
// delete variable instance here before all references to it are lost
Session session = jbpmContext.getSession();
if (session != null) session.delete(variableInstance);
13 years, 7 months
JBoss JBPM SVN: r6699 - jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/ejb.
by do-not-reply@jboss.org
Author: bradsdavis
Date: 2010-09-28 18:08:09 -0400 (Tue, 28 Sep 2010)
New Revision: 6699
Modified:
jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/ejb/CommandListenerBean.java
jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/ejb/JobListenerBean.java
Log:
Added logging. Added override for subclass.
Modified: jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/ejb/CommandListenerBean.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/ejb/CommandListenerBean.java 2010-09-28 21:03:54 UTC (rev 6698)
+++ jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/ejb/CommandListenerBean.java 2010-09-28 22:08:09 UTC (rev 6699)
@@ -114,6 +114,10 @@
log.debug("Command: "+ReflectionToStringBuilder.toString(command)+" sent with Message["+message.toString()+"]");
}
result = commandService.execute(command);
+
+ if(log.isTraceEnabled()) {
+ log.trace("Command: "+ReflectionToStringBuilder.toString(command)+" sent with Message["+message.toString()+"] Completed Successfully. Committing.");
+ }
}
catch (RuntimeException e) {
// if this is a locking exception, keep it quiet
Modified: jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/ejb/JobListenerBean.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/ejb/JobListenerBean.java 2010-09-28 21:03:54 UTC (rev 6698)
+++ jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/ejb/JobListenerBean.java 2010-09-28 22:08:09 UTC (rev 6699)
@@ -1,11 +1,13 @@
package org.jbpm.ejb;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+
import javax.jms.JMSException;
import javax.jms.Message;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-
import org.jbpm.command.Command;
import org.jbpm.jms.ExecuteJobCommand;
@@ -26,9 +28,11 @@
*/
public class JobListenerBean extends CommandListenerBean {
+ private static final DateFormat sdf = new SimpleDateFormat("yyyy.MM.dd G 'at' HH:mm:ss z");
private static final long serialVersionUID = 1L;
private static final Log log = LogFactory.getLog(JobListenerBean.class);
+ @Override
protected Command extractCommand(Message message) throws JMSException {
// checking for jobId property
if (message.propertyExists("jobId")) {
13 years, 7 months
JBoss JBPM SVN: r6698 - in jbpm4/trunk/modules/test-cfg/src/test: resources/org/jbpm/test/custom/cal/cfg and 1 other directory.
by do-not-reply@jboss.org
Author: alex.guizar(a)jboss.com
Date: 2010-09-28 17:03:54 -0400 (Tue, 28 Sep 2010)
New Revision: 6698
Modified:
jbpm4/trunk/modules/test-cfg/src/test/java/org/jbpm/test/custom/cal/cfg/CustomBusinessCalendarCfgTest.java
jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/custom/cal/cfg/jbpm.cfg.xml
Log:
test saturday working day in custom business calendar configuration
Modified: jbpm4/trunk/modules/test-cfg/src/test/java/org/jbpm/test/custom/cal/cfg/CustomBusinessCalendarCfgTest.java
===================================================================
--- jbpm4/trunk/modules/test-cfg/src/test/java/org/jbpm/test/custom/cal/cfg/CustomBusinessCalendarCfgTest.java 2010-09-28 20:49:32 UTC (rev 6697)
+++ jbpm4/trunk/modules/test-cfg/src/test/java/org/jbpm/test/custom/cal/cfg/CustomBusinessCalendarCfgTest.java 2010-09-28 21:03:54 UTC (rev 6698)
@@ -22,15 +22,12 @@
package org.jbpm.test.custom.cal.cfg;
import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
import org.jbpm.api.ProcessInstance;
import org.jbpm.api.job.Job;
import org.jbpm.pvm.internal.util.Clock;
import org.jbpm.test.JbpmCustomCfgTestCase;
-
/**
* @author Tom Baeyens
*/
@@ -59,10 +56,10 @@
"</process>"
);
- GregorianCalendar gregorianCalendar = new GregorianCalendar();
- gregorianCalendar.set(2009, Calendar.JANUARY, 30, 11, 0, 0);
- Date clockDate = gregorianCalendar.getTime();
- Clock.setExplicitTime(clockDate);
+ Calendar calendar = Calendar.getInstance();
+ calendar.set(2009, Calendar.JANUARY, 30, 11, 0, 0);
+ calendar.set(Calendar.MILLISECOND, 0);
+ Clock.setExplicitTime(calendar.getTime());
try {
ProcessInstance processInstance = executionService.startProcessInstanceByKey("CustomBusinessCalendarCfg");
@@ -71,20 +68,14 @@
.processInstanceId(processInstance.getId())
.uniqueResult();
- Date duedate = job.getDueDate();
-
- gregorianCalendar = new GregorianCalendar();
- gregorianCalendar.setTime(duedate);
- assertEquals(2009, gregorianCalendar.get(Calendar.YEAR));
- assertEquals(Calendar.NOVEMBER, gregorianCalendar.get(Calendar.MONTH));
- assertEquals(2, gregorianCalendar.get(Calendar.DAY_OF_MONTH));
- assertEquals(10, gregorianCalendar.get(Calendar.HOUR_OF_DAY));
- assertEquals(0, gregorianCalendar.get(Calendar.MINUTE));
- assertEquals(0, gregorianCalendar.get(Calendar.SECOND));
+ calendar.add(Calendar.HOUR, 8);
+ // there are 15 hours between 18:00 and 9:00 next day
+ calendar.add(Calendar.HOUR, 15);
- } finally {
+ assertEquals(calendar.getTimeInMillis(), job.getDueDate().getTime());
+ }
+ finally {
Clock.setExplicitTime(null);
}
-
}
}
Modified: jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/custom/cal/cfg/jbpm.cfg.xml
===================================================================
--- jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/custom/cal/cfg/jbpm.cfg.xml 2010-09-28 20:49:32 UTC (rev 6697)
+++ jbpm4/trunk/modules/test-cfg/src/test/resources/org/jbpm/test/custom/cal/cfg/jbpm.cfg.xml 2010-09-28 21:03:54 UTC (rev 6698)
@@ -14,7 +14,7 @@
<wednesday hours="9:00-18:00"/>
<thursday hours="9:00-18:00"/>
<friday hours="9:00-18:00"/>
- <holiday period="01/02/2009 - 31/10/2009"/>
+ <saturday hours="9:00-18:00"/>
</business-calendar>
</process-engine-context>
13 years, 7 months
JBoss JBPM SVN: r6697 - jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/resources/META-INF.
by do-not-reply@jboss.org
Author: bradsdavis
Date: 2010-09-28 16:49:32 -0400 (Tue, 28 Sep 2010)
New Revision: 6697
Modified:
jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/resources/META-INF/ejb-jar.xml
jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/resources/META-INF/jboss.xml
Log:
Added activation configs.
Modified: jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/resources/META-INF/ejb-jar.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/resources/META-INF/ejb-jar.xml 2010-09-28 20:44:59 UTC (rev 6696)
+++ jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/resources/META-INF/ejb-jar.xml 2010-09-28 20:49:32 UTC (rev 6697)
@@ -54,7 +54,22 @@
<display-name>jBPM Command Listener</display-name>
<ejb-name>CommandListenerBean</ejb-name>
<mapped-name>queue/JbpmCommandQueue</mapped-name>
-
+ <ejb-class>org.jbpm.ejb.CommandListenerBean</ejb-class>
+ <messaging-type>javax.jms.MessageListener</messaging-type>
+ <activation-config>
+ <activation-config-property>
+ <activation-config-property-name>destination</activation-config-property-name>
+ <activation-config-property-value>queue/JbpmCommandQueue</activation-config-property-value>
+ </activation-config-property>
+ <activation-config-property>
+ <activation-config-property-name>dLQJNDIName</activation-config-property-name>
+ <activation-config-property-value>queue/JbpmDLQ</activation-config-property-value>
+ </activation-config-property>
+ <activation-config-property>
+ <activation-config-property-name>maxSession</activation-config-property-name>
+ <activation-config-property-value>150</activation-config-property-value>
+ </activation-config-property>
+ </activation-config>
<resource-ref>
<description>
Logical name of the factory that provides JMS connections for sending result messages.
@@ -75,7 +90,20 @@
<ejb-class>org.jbpm.ejb.JobListenerBean</ejb-class>
<messaging-type>javax.jms.MessageListener</messaging-type>
<message-destination-type>javax.jms.Queue</message-destination-type>
-
+ <activation-config>
+ <activation-config-property>
+ <activation-config-property-name>destination</activation-config-property-name>
+ <activation-config-property-value>queue/JbpmJobQueue</activation-config-property-value>
+ </activation-config-property>
+ <activation-config-property>
+ <activation-config-property-name>dLQJNDIName</activation-config-property-name>
+ <activation-config-property-value>queue/JbpmDLQ</activation-config-property-value>
+ </activation-config-property>
+ <activation-config-property>
+ <activation-config-property-name>maxSession</activation-config-property-name>
+ <activation-config-property-value>150</activation-config-property-value>
+ </activation-config-property>
+ </activation-config>
<resource-ref>
<description>
Logical name of the factory that provides JMS connections for sending result messages.
@@ -86,25 +114,5 @@
</resource-ref>
</message-driven>
- <message-driven>
- <description>
- Listens for timer references and runs the timers through the command service.
- </description>
- <display-name>jBPM Timer Listener</display-name>
- <ejb-name>TimerListenerBean</ejb-name>
- <mapped-name>queue/JbpmTimerQueue</mapped-name>
- <ejb-class>org.jbpm.ejb.JobListenerBean</ejb-class>
- <messaging-type>javax.jms.MessageListener</messaging-type>
- <message-destination-type>javax.jms.Queue</message-destination-type>
-
- <resource-ref>
- <description>
- Logical name of the factory that provides JMS connections for sending result messages.
- Required for command messages that indicate a reply destination.
- </description>
- <res-ref-name>jms/JbpmConnectionFactory</res-ref-name>
- <mapped-name>java:JmsXA</mapped-name>
- </resource-ref>
- </message-driven>
</enterprise-beans>
</ejb-jar>
Modified: jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/resources/META-INF/jboss.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/resources/META-INF/jboss.xml 2010-09-28 20:44:59 UTC (rev 6696)
+++ jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/resources/META-INF/jboss.xml 2010-09-28 20:49:32 UTC (rev 6697)
@@ -1,11 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS 5.0//EN"
- "http://www.jboss.org/j2ee/dtd/jboss_5_0.dtd">
<jboss>
- <enterprise-beans>
- <session>
- <ejb-name>CommandServiceBean</ejb-name>
- <local-jndi-name>java:jbpm/CommandServiceBean</local-jndi-name>
- </session>
- </enterprise-beans>
+ <enterprise-beans>
+ <message-driven>
+ <ejb-name>CommandListenerBean</ejb-name>
+ <depends>jboss.esb.destination:service=Queue,name=JbpmCommandQueue</depends>
+ <depends>jboss.esb.destination:service=Queue,name=JbpmDLQ</depends>
+ <aop-domain-name>AsyncRequestListenerBean MDB</aop-domain-name>
+ </message-driven>
+ <message-driven>
+ <ejb-name>JobListenerBean</ejb-name>
+ <depends>jboss.esb.destination:service=Queue,name=JbpmJobQueue</depends>
+ <depends>jboss.esb.destination:service=Queue,name=JbpmDLQ</depends>
+ <aop-domain-name>AsyncRequestListenerBean MDB</aop-domain-name>
+ </message-driven>
+ <session>
+ <ejb-name>CommandServiceBean</ejb-name>
+ <local-jndi-name>java:jbpm/CommandServiceBean</local-jndi-name>
+ </session>
+ </enterprise-beans>
</jboss>
+
+
13 years, 7 months
JBoss JBPM SVN: r6696 - jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/ejb.
by do-not-reply@jboss.org
Author: bradsdavis
Date: 2010-09-28 16:44:59 -0400 (Tue, 28 Sep 2010)
New Revision: 6696
Modified:
jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/ejb/CommandListenerBean.java
Log:
Reflect the Command object and the Message ID to the logs in debug mode for tracability.
Modified: jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/ejb/CommandListenerBean.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/ejb/CommandListenerBean.java 2010-09-28 15:56:33 UTC (rev 6695)
+++ jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/ejb/CommandListenerBean.java 2010-09-28 20:44:59 UTC (rev 6696)
@@ -38,6 +38,7 @@
import javax.jms.ObjectMessage;
import javax.jms.Session;
+import org.apache.commons.lang.builder.ReflectionToStringBuilder;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jbpm.command.Command;
@@ -109,15 +110,18 @@
// execute command via local command executor bean
Object result;
try {
- result = commandService.execute(command);
+ if(log.isDebugEnabled()) {
+ log.debug("Command: "+ReflectionToStringBuilder.toString(command)+" sent with Message["+message.toString()+"]");
+ }
+ result = commandService.execute(command);
}
catch (RuntimeException e) {
// if this is a locking exception, keep it quiet
if (DbPersistenceService.isLockingException(e)) {
- StaleObjectLogConfigurer.getStaleObjectExceptionsLog().error("failed to execute " + command, e);
+ StaleObjectLogConfigurer.getStaleObjectExceptionsLog().error(message.toString()+"failed to execute " + command, e);
}
else {
- log.error("failed to execute " + command, e);
+ log.error(message.toString()+" failed to execute " + command, e);
}
// MDBs are not supposed to throw exceptions
messageDrivenContext.setRollbackOnly();
13 years, 7 months
JBoss JBPM SVN: r6695 - jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/jms.
by do-not-reply@jboss.org
Author: bradsdavis
Date: 2010-09-28 11:56:33 -0400 (Tue, 28 Sep 2010)
New Revision: 6695
Modified:
jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/jms/JmsConnectorService.java
jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/jms/JmsConnectorServiceFactory.java
Log:
Added setter methods for overridden properties.
Modified: jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/jms/JmsConnectorService.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/jms/JmsConnectorService.java 2010-09-28 12:30:32 UTC (rev 6694)
+++ jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/jms/JmsConnectorService.java 2010-09-28 15:56:33 UTC (rev 6695)
@@ -120,6 +120,6 @@
}
public void close() {
- //nothing to do...
+ //nothing to do...
}
}
Modified: jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/jms/JmsConnectorServiceFactory.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/jms/JmsConnectorServiceFactory.java 2010-09-28 12:30:32 UTC (rev 6694)
+++ jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/jms/JmsConnectorServiceFactory.java 2010-09-28 15:56:33 UTC (rev 6695)
@@ -58,6 +58,14 @@
private String connectionFactoryJndiName = "java:comp/env/jms/JbpmConnectionFactory";
private String destinationJndiName = "java:comp/env/jms/JobQueue";
+ public void setConnectionFactoryJndiName(String connectionFactoryJndiName) {
+ this.connectionFactoryJndiName = connectionFactoryJndiName;
+ }
+
+ public void setDestinationJndiName(String destinationJndiName) {
+ this.destinationJndiName = destinationJndiName;
+ }
+
private JbpmConfiguration jbpmConfiguration;
private ConnectionFactory connectionFactory;
13 years, 7 months
JBoss JBPM SVN: r6694 - jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/jms.
by do-not-reply@jboss.org
Author: bradsdavis
Date: 2010-09-28 08:30:32 -0400 (Tue, 28 Sep 2010)
New Revision: 6694
Modified:
jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/jms/JmsConnectorService.java
Log:
Added close method.
Modified: jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/jms/JmsConnectorService.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/jms/JmsConnectorService.java 2010-09-28 12:28:49 UTC (rev 6693)
+++ jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/jms/JmsConnectorService.java 2010-09-28 12:30:32 UTC (rev 6694)
@@ -118,4 +118,8 @@
public void deleteTimersByProcessInstance(ProcessInstance processInstance) {
jobSession.deleteJobsForProcessInstance(processInstance);
}
+
+ public void close() {
+ //nothing to do...
+ }
}
13 years, 7 months
JBoss JBPM SVN: r6693 - jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/jms.
by do-not-reply@jboss.org
Author: bradsdavis
Date: 2010-09-28 08:28:49 -0400 (Tue, 28 Sep 2010)
New Revision: 6693
Modified:
jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/jms/JmsConnectorService.java
Log:
Moved the JMS connection.
Modified: jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/jms/JmsConnectorService.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/jms/JmsConnectorService.java 2010-09-28 12:21:22 UTC (rev 6692)
+++ jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/jms/JmsConnectorService.java 2010-09-28 12:28:49 UTC (rev 6693)
@@ -51,8 +51,6 @@
private final JobSession jobSession;
- private final Connection connection;
-
private final JmsConnectorServiceFactory factory;
public JmsConnectorService(JmsConnectorServiceFactory factory) throws JMSException {
@@ -61,7 +59,6 @@
jobSession = jbpmContext.getJobSession();
this.factory = factory;
- this.connection = factory.getConnectionFactory().createConnection();
}
public void send(Job job) {
@@ -70,10 +67,12 @@
}
void sendWithoutSaving(Job job) {
+ Connection connection = null;
MessageProducer messageProducer = null;
Session session = null;
try {
- session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ connection = factory.getConnectionFactory().createConnection();
+ session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
messageProducer = session.createProducer(factory.getDestination());
Message message = session.createMessage();
populateMessage(message, job);
@@ -85,6 +84,7 @@
finally {
JmsUtil.closeSilently(messageProducer);
JmsUtil.closeSilently(session);
+ JmsUtil.closeSilently(connection);
}
}
@@ -118,8 +118,4 @@
public void deleteTimersByProcessInstance(ProcessInstance processInstance) {
jobSession.deleteJobsForProcessInstance(processInstance);
}
-
- public void close() {
- JmsUtil.closeSilently(connection);
- }
}
13 years, 7 months
JBoss JBPM SVN: r6692 - jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/jms.
by do-not-reply@jboss.org
Author: bradsdavis
Date: 2010-09-28 08:21:22 -0400 (Tue, 28 Sep 2010)
New Revision: 6692
Modified:
jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/jms/JmsUtil.java
Log:
Commented the JMSUtil.
Modified: jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/jms/JmsUtil.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/jms/JmsUtil.java 2010-09-28 12:18:27 UTC (rev 6691)
+++ jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/jms/JmsUtil.java 2010-09-28 12:21:22 UTC (rev 6692)
@@ -8,6 +8,12 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+/**
+ * Utility for handling common JMS tasks.
+ *
+ * @author Brad Davis
+ *
+ */
public class JmsUtil {
private static final Log log = LogFactory.getLog(JmsUtil.class);
@@ -15,6 +21,10 @@
//seal
}
+ /**
+ * Call within the finally block to cleanup message producers.
+ * @param producer
+ */
public static void closeSilently(MessageProducer producer)
{
if(producer!=null) {
@@ -26,6 +36,10 @@
}
}
+ /**
+ * Call within the finally block to cleanup JMS sessions.
+ * @param session
+ */
public static void closeSilently(Session session)
{
if(session!=null) {
@@ -37,6 +51,10 @@
}
}
+ /**
+ * Call within the finally block to cleanup JMS connections.
+ * @param connection
+ */
public static void closeSilently(Connection connection)
{
if(connection!=null) {
13 years, 7 months
JBoss JBPM SVN: r6691 - jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/ejb.
by do-not-reply@jboss.org
Author: bradsdavis
Date: 2010-09-28 08:18:27 -0400 (Tue, 28 Sep 2010)
New Revision: 6691
Modified:
jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/ejb/CommandListenerBean.java
Log:
Handled the closing of sessions, connections, and producers.
Modified: jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/ejb/CommandListenerBean.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/ejb/CommandListenerBean.java 2010-09-28 12:16:40 UTC (rev 6690)
+++ jbpm3/branches/jbpm-3.2-soa/enterprise-jee5/src/main/java/org/jbpm/ejb/CommandListenerBean.java 2010-09-28 12:18:27 UTC (rev 6691)
@@ -34,13 +34,14 @@
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
+import javax.jms.MessageProducer;
import javax.jms.ObjectMessage;
import javax.jms.Session;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-
import org.jbpm.command.Command;
+import org.jbpm.jms.JmsUtil;
import org.jbpm.persistence.db.DbPersistenceService;
import org.jbpm.persistence.db.StaleObjectLogConfigurer;
@@ -90,8 +91,10 @@
@Resource
private MessageDrivenContext messageDrivenContext;
+
@EJB(name = "ejb/LocalCommandService")
private LocalCommandService commandService;
+
@Resource(name = "jms/JbpmConnectionFactory", shareable = true)
private ConnectionFactory jmsConnectionFactory;
@@ -111,8 +114,7 @@
catch (RuntimeException e) {
// if this is a locking exception, keep it quiet
if (DbPersistenceService.isLockingException(e)) {
- StaleObjectLogConfigurer.getStaleObjectExceptionsLog().error("failed to execute "
- + command, e);
+ StaleObjectLogConfigurer.getStaleObjectExceptionsLog().error("failed to execute " + command, e);
}
else {
log.error("failed to execute " + command, e);
@@ -163,20 +165,27 @@
private void sendResult(Serializable result, Destination destination, String correlationId)
throws JMSException {
if (log.isDebugEnabled()) log.debug("sending " + result + " to " + destination);
- Connection jmsConnection = jmsConnectionFactory.createConnection();
+
+ Connection jmsConnection = null;
+ Session jmsSession = null;
+ MessageProducer producer = null;
try {
/*
* if the connection supports xa, the session will be transacted, else the session will
* auto acknowledge; in either case no explicit transaction control must be performed -
* see ejb 2.1 - 17.3.5
*/
- Session jmsSession = jmsConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ jmsConnection = jmsConnectionFactory.createConnection();
+ jmsSession = jmsConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Message resultMessage = jmsSession.createObjectMessage(result);
resultMessage.setJMSCorrelationID(correlationId);
- jmsSession.createProducer(destination).send(resultMessage);
+ producer = jmsSession.createProducer(destination);
+ producer.send(resultMessage);
}
finally {
- jmsConnection.close();
+ JmsUtil.closeSilently(producer);
+ JmsUtil.closeSilently(jmsSession);
+ JmsUtil.closeSilently(jmsConnection);
}
}
}
13 years, 7 months