[jbpm-commits] JBoss JBPM SVN: r6814 - in jbpm3/branches/jbpm-3.2-soa/core/src: main/java/org/jbpm/util and 7 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Wed Nov 10 17:27:36 EST 2010
Author: alex.guizar at jboss.com
Date: 2010-11-10 17:27:35 -0500 (Wed, 10 Nov 2010)
New Revision: 6814
Removed:
jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/util/DateDbTestUtil.java
jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/util/StringUtilTest.java
Modified:
jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/graph/def/EventCallback.java
jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/util/Semaphore.java
jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/context/exe/VariableInstanceDbTest.java
jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/context/log/VariableUpdateDbTest.java
jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/graph/log/NodeLogDbTest.java
jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/jbpm1071/JBPM1071Test.java
jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/logging/log/ProcessLogDbTest.java
jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/scheduler/exe/TimerDbTest.java
jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/util/ByteUtilTest.java
Log:
JBPM-2959 deprecate org.jbpm.util.Semaphore, replace it with class from backport-util-concurrent;
take out that awful DateDbTestUtil class, instead trim milliseconds from persisted Dates with Calendar
Modified: jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/graph/def/EventCallback.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/graph/def/EventCallback.java 2010-11-10 21:11:56 UTC (rev 6813)
+++ jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/graph/def/EventCallback.java 2010-11-10 22:27:35 UTC (rev 6814)
@@ -35,8 +35,10 @@
import org.jbpm.JbpmContext;
import org.jbpm.JbpmException;
-import org.jbpm.util.Semaphore;
+import edu.emory.mathcs.backport.java.util.concurrent.Semaphore;
+import edu.emory.mathcs.backport.java.util.concurrent.TimeUnit;
+
public class EventCallback implements Serializable {
public static final int DEFAULT_TIMEOUT = 5 * 60 * 1000;
@@ -103,7 +105,7 @@
}
public static void waitForEvent(String event) {
- waitForEvent(1, event, DEFAULT_TIMEOUT);
+ waitForEvent(event, DEFAULT_TIMEOUT);
}
public static void waitForEvent(String event, long timeout) {
@@ -119,7 +121,7 @@
if (debug) log.debug("waiting for " + event);
Semaphore eventSemaphore = getEventSemaphore(event);
try {
- if (!eventSemaphore.tryAcquire(occurrences, timeout)) {
+ if (!eventSemaphore.tryAcquire(occurrences, timeout, TimeUnit.MILLISECONDS)) {
throw new JbpmException("event '" + event + "' did not occur within " + timeout + " ms");
}
if (debug) log.debug("received '" + event + "' notification");
@@ -133,7 +135,8 @@
synchronized (eventSemaphores) {
Semaphore semaphore = (Semaphore) eventSemaphores.get(event);
if (semaphore == null) {
- semaphore = new Semaphore(0);
+ // request fail semaphore to support atomic multi-acquire
+ semaphore = new Semaphore(0, true);
eventSemaphores.put(event, semaphore);
}
return semaphore;
Modified: jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/util/Semaphore.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/util/Semaphore.java 2010-11-10 21:11:56 UTC (rev 6813)
+++ jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/util/Semaphore.java 2010-11-10 22:27:35 UTC (rev 6814)
@@ -9,6 +9,7 @@
*
* @see <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/Semaphore.html"
* >java.util.concurrent.Semaphore</a>
+ * @deprecated not in use anymore
*/
public class Semaphore implements Serializable {
Modified: jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/context/exe/VariableInstanceDbTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/context/exe/VariableInstanceDbTest.java 2010-11-10 21:11:56 UTC (rev 6813)
+++ jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/context/exe/VariableInstanceDbTest.java 2010-11-10 22:27:35 UTC (rev 6814)
@@ -31,7 +31,6 @@
import org.jbpm.db.AbstractDbTestCase;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;
-import org.jbpm.util.DateDbTestUtil;
public class VariableInstanceDbTest extends AbstractDbTestCase {
@@ -50,14 +49,12 @@
}
public void testVariableInstanceString() {
- contextInstance.setVariable("comment",
- "it's not the size that matters, it's how you use it.");
+ contextInstance.setVariable("comment", "it's not the size that matters, it's how you use it.");
processInstance = saveAndReload(processInstance);
contextInstance = processInstance.getContextInstance();
- assertEquals("it's not the size that matters, it's how you use it.",
- contextInstance.getVariable("comment"));
+ assertEquals("it's not the size that matters, it's how you use it.", contextInstance.getVariable("comment"));
}
public void testVariableInstanceLong() {
@@ -154,29 +151,16 @@
}
public void testDate() {
- final Date now = Calendar.getInstance().getTime();
+ // discard milliseconds as some databases have second precision only
+ Calendar calendar = Calendar.getInstance();
+ calendar.set(Calendar.MILLISECOND, 0);
+ Date now = calendar.getTime();
contextInstance.setVariable("a", now);
processInstance = saveAndReload(processInstance);
contextInstance = processInstance.getContextInstance();
- final Date result = (Date) contextInstance.getVariable("a");
- // assertEquals(expected, result);
- log.info("Now: "
- + now
- + ", "
- + now.getTime()
- + ", "
- + DateDbTestUtil.getInstance().convertDateToSeconds(now));
- log.info("Now: "
- + result
- + ", "
- + result.getTime()
- + ", "
- + DateDbTestUtil.getInstance().convertDateToSeconds(result));
- assertEquals(DateDbTestUtil.getInstance().convertDateToSeconds(now),
- DateDbTestUtil.getInstance().convertDateToSeconds(result));
- assertEquals(DateDbTestUtil.getInstance().convertDateToSeconds(now),
- DateDbTestUtil.getInstance().convertDateToSeconds(result));
+ Date result = (Date) contextInstance.getVariable("a");
+ assertEquals(now, result);
}
public void testNullUpdate() {
Modified: jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/context/log/VariableUpdateDbTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/context/log/VariableUpdateDbTest.java 2010-11-10 21:11:56 UTC (rev 6813)
+++ jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/context/log/VariableUpdateDbTest.java 2010-11-10 22:27:35 UTC (rev 6814)
@@ -33,7 +33,6 @@
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.logging.exe.LoggingInstance;
-import org.jbpm.util.DateDbTestUtil;
public class VariableUpdateDbTest extends AbstractDbTestCase {
@@ -74,17 +73,20 @@
}
public void testDateUpdateLog() {
- final Date now = Calendar.getInstance().getTime();
- final Date future = new Date(now.getTime() + 5);
+ // discard milliseconds as some databases have second precision only
+ Calendar calendar = Calendar.getInstance();
+ calendar.set(Calendar.MILLISECOND, 0);
+ Date now = calendar.getTime();
+ calendar.add(Calendar.SECOND, 2);
+ Date future = calendar.getTime();
contextInstance.setVariable("a", now);
jbpmContext.save(processInstance);
contextInstance.setVariable("a", future);
VariableUpdateLog variableLog = saveAndReloadUpdateLog(processInstance);
- DateDbTestUtil dbUtilInst = DateDbTestUtil.getInstance();
- assertEquals(dbUtilInst.convertDateToSeconds(now), dbUtilInst.convertDateToSeconds((Date) variableLog.getOldValue()));
- assertEquals(dbUtilInst.convertDateToSeconds(future), dbUtilInst.convertDateToSeconds((Date) variableLog.getNewValue()));
+ assertEquals(now, variableLog.getOldValue());
+ assertEquals(future, variableLog.getNewValue());
}
public void testDoubleUpdateLog() {
Modified: jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/graph/log/NodeLogDbTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/graph/log/NodeLogDbTest.java 2010-11-10 21:11:56 UTC (rev 6813)
+++ jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/graph/log/NodeLogDbTest.java 2010-11-10 22:27:35 UTC (rev 6814)
@@ -26,7 +26,6 @@
import org.jbpm.db.AbstractDbTestCase;
import org.jbpm.graph.def.Node;
-import org.jbpm.util.DateDbTestUtil;
public class NodeLogDbTest extends AbstractDbTestCase {
@@ -46,15 +45,16 @@
Node node = new Node();
session.save(node);
- Date enter = new Date();
- Date leave = new Date(enter.getTime() + 5);
+ // discard milliseconds as some databases have second precision only
+ Calendar calendar = Calendar.getInstance();
+ calendar.set(Calendar.MILLISECOND, 0);
+ Date enter = calendar.getTime();
+ calendar.add(Calendar.SECOND, 2);
+ Date leave = calendar.getTime();
NodeLog nodeLog = new NodeLog(node, enter, leave);
nodeLog = (NodeLog) saveAndReload(nodeLog);
- // assertEquals(enter.getTime(), nodeLog.getEnter().getTime());
- assertEquals(DateDbTestUtil.getInstance().convertDateToSeconds(enter), DateDbTestUtil
- .getInstance()
- .convertDateToSeconds(nodeLog.getEnter()));
+ assertEquals(enter, nodeLog.getEnter());
session.delete(nodeLog);
session.delete(node);
@@ -64,19 +64,16 @@
Node node = new Node();
session.save(node);
- final Date enter = Calendar.getInstance().getTime();
- Date leave = new Date(enter.getTime() + 5);
+ // discard milliseconds as some databases have second precision only
+ Calendar calendar = Calendar.getInstance();
+ calendar.set(Calendar.MILLISECOND, 0);
+ Date enter = calendar.getTime();
+ calendar.add(Calendar.SECOND, 2);
+ Date leave = calendar.getTime();
NodeLog nodeLog = new NodeLog(node, enter, leave);
nodeLog = (NodeLog) saveAndReload(nodeLog);
- // assertEquals(leave.getTime(), nodeLog.getLeave().getTime());
- log.info("************************************************************");
- log.info("Enter: " + DateDbTestUtil.getInstance().convertDateToSeconds(enter));
- log.info("Enter: " + DateDbTestUtil.getInstance().convertDateToSeconds(leave));
- log.info("************************************************************");
- assertEquals(DateDbTestUtil.getInstance().convertDateToSeconds(leave), DateDbTestUtil
- .getInstance()
- .convertDateToSeconds(nodeLog.getLeave()));
+ assertEquals(leave, nodeLog.getLeave());
session.delete(nodeLog);
session.delete(node);
Modified: jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/jbpm1071/JBPM1071Test.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/jbpm1071/JBPM1071Test.java 2010-11-10 21:11:56 UTC (rev 6813)
+++ jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/jbpm1071/JBPM1071Test.java 2010-11-10 22:27:35 UTC (rev 6814)
@@ -15,8 +15,9 @@
import org.jbpm.graph.exe.Comment;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.graph.exe.Token;
-import org.jbpm.util.Semaphore;
+import edu.emory.mathcs.backport.java.util.concurrent.Semaphore;
+
/**
* Possible problem in concurrent signaling from multiple threads.
*
Modified: jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/logging/log/ProcessLogDbTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/logging/log/ProcessLogDbTest.java 2010-11-10 21:11:56 UTC (rev 6813)
+++ jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/logging/log/ProcessLogDbTest.java 2010-11-10 22:27:35 UTC (rev 6814)
@@ -21,12 +21,12 @@
*/
package org.jbpm.logging.log;
+import java.util.Calendar;
import java.util.Date;
import java.util.Iterator;
import org.jbpm.db.AbstractDbTestCase;
import org.jbpm.graph.exe.Token;
-import org.jbpm.util.DateDbTestUtil;
public class ProcessLogDbTest extends AbstractDbTestCase {
@@ -38,14 +38,15 @@
}
public void testProcessLogDate() {
- Date now = new Date();
+ // discard milliseconds as some databases have second precision only
+ Calendar calendar = Calendar.getInstance();
+ calendar.set(Calendar.MILLISECOND, 0);
+ Date now = calendar.getTime();
+
ProcessLog processLog = new MessageLog();
processLog.setDate(now);
processLog = saveAndReload(processLog);
- // assertEquals(now, processLog.getDate());
- // assertEquals(now.getTime(), processLog.getDate().getTime());
- assertEquals(DateDbTestUtil.getInstance().convertDateToSeconds(now), DateDbTestUtil.getInstance()
- .convertDateToSeconds(processLog.getDate()));
+ assertEquals(now, processLog.getDate());
session.delete(processLog);
}
Modified: jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/scheduler/exe/TimerDbTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/scheduler/exe/TimerDbTest.java 2010-11-10 21:11:56 UTC (rev 6813)
+++ jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/scheduler/exe/TimerDbTest.java 2010-11-10 22:27:35 UTC (rev 6814)
@@ -38,12 +38,14 @@
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.job.Timer;
import org.jbpm.taskmgmt.exe.TaskInstance;
-import org.jbpm.util.DateDbTestUtil;
public class TimerDbTest extends AbstractDbTestCase {
public void testSaveTimer() {
- final Date now = Calendar.getInstance().getTime();
+ // discard milliseconds as some databases have second precision only
+ Calendar ncal = Calendar.getInstance();
+ ncal.set(Calendar.MILLISECOND, 0);
+ Date now = ncal.getTime();
Timer timer = new Timer();
timer.setName("timer-name");
@@ -57,14 +59,7 @@
timer = (Timer) session.load(Timer.class, new Long(timer.getId()));
assertEquals("timer-name", timer.getName());
- // we test for the same date in a simple format
- // DateFormat df = SimpleDateFormat.getDateInstance();
- // assertEquals(df.format(now), df.format(timer.getDueDate()));
-
- // we test for each part of the date to see where we fail per database
- // to help with debugging.
- Calendar ncal = new GregorianCalendar();
- ncal.setTime(now);
+ // test each calendar field to ensure second precision across all databases
Calendar tcal = new GregorianCalendar();
tcal.setTime(timer.getDueDate());
assertEquals(ncal.get(Calendar.YEAR), tcal.get(Calendar.YEAR));
@@ -73,8 +68,6 @@
assertEquals(ncal.get(Calendar.HOUR_OF_DAY), tcal.get(Calendar.HOUR_OF_DAY));
assertEquals(ncal.get(Calendar.MINUTE), tcal.get(Calendar.MINUTE));
assertEquals(ncal.get(Calendar.SECOND), tcal.get(Calendar.SECOND));
- assertEquals(DateDbTestUtil.getInstance().convertDateToSeconds(now), DateDbTestUtil.getInstance()
- .convertDateToSeconds(timer.getDueDate()));
assertEquals("transition-name", timer.getTransitionName());
assertEquals("repeat-duration", timer.getRepeat());
}
Modified: jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/util/ByteUtilTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/util/ByteUtilTest.java 2010-11-10 21:11:56 UTC (rev 6813)
+++ jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/util/ByteUtilTest.java 2010-11-10 22:27:35 UTC (rev 6814)
@@ -6,22 +6,23 @@
public class ByteUtilTest extends AbstractJbpmTestCase {
-
public void testBytesToString() {
byte[] bytes = new byte[] {
- (byte) 0x00, (byte) 0x01, (byte) 0x10, (byte) 0x11, (byte) 0x12, (byte) 0x21, (byte) 0x99, (byte) 0x9a,
- (byte) 0xa9, (byte) 0xbc, (byte) 0xde, (byte) 0xff, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00
+ (byte) 0x00, (byte) 0x01, (byte) 0x10, (byte) 0x11, (byte) 0x12, (byte) 0x21,
+ (byte) 0x99, (byte) 0x9a, (byte) 0xa9, (byte) 0xbc, (byte) 0xde, (byte) 0xff,
+ (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00
};
-
+
assertEquals("000110111221999aa9bcdeff00000000", ByteUtil.toString(bytes));
}
-
+
public void testBytesFromString() {
byte[] bytes = new byte[] {
- (byte) 0x00, (byte) 0x01, (byte) 0x10, (byte) 0x11, (byte) 0x12, (byte) 0x21, (byte) 0x99, (byte) 0x9a,
- (byte) 0xa9, (byte) 0xbc, (byte) 0xde, (byte) 0xff, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00
+ (byte) 0x00, (byte) 0x01, (byte) 0x10, (byte) 0x11, (byte) 0x12, (byte) 0x21,
+ (byte) 0x99, (byte) 0x9a, (byte) 0xa9, (byte) 0xbc, (byte) 0xde, (byte) 0xff,
+ (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00
};
-
+
assertTrue(Arrays.equals(bytes, ByteUtil.fromString("000110111221999aa9bcdeff00000000")));
}
}
Deleted: jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/util/DateDbTestUtil.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/util/DateDbTestUtil.java 2010-11-10 21:11:56 UTC (rev 6813)
+++ jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/util/DateDbTestUtil.java 2010-11-10 22:27:35 UTC (rev 6814)
@@ -1,26 +0,0 @@
-package org.jbpm.util;
-
-public class DateDbTestUtil {
- private static DateDbTestUtil instance;
-
- private DateDbTestUtil() {}
-
- public static DateDbTestUtil getInstance() {
- if(instance == null) {
- instance = new DateDbTestUtil();
- }
- return instance;
- }
-
- /**
- * This method returns the number of seconds by absolutely ignoring the
- * milliseconds. No ceiling or flooring is done.
- *
- * @param date
- * @return Date converted to seconds.
- */
- public long convertDateToSeconds(java.util.Date date) {
- return ((date.getTime()) - (date.getTime() % 1000)) / 1000;
- }
-
-}
Deleted: jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/util/StringUtilTest.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/util/StringUtilTest.java 2010-11-10 21:11:56 UTC (rev 6813)
+++ jbpm3/branches/jbpm-3.2-soa/core/src/test/java/org/jbpm/util/StringUtilTest.java 2010-11-10 22:27:35 UTC (rev 6814)
@@ -1,12 +0,0 @@
-package org.jbpm.util;
-
-import org.jbpm.AbstractJbpmTestCase;
-
-
-public class StringUtilTest extends AbstractJbpmTestCase {
-
- public void testConv() {
- // System.out.println(StringUtil.toHexString(new byte[]{(byte) 0x5a,(byte) 0x23,(byte) 0x7c,(byte) 0x0b}));
- // System.out.println(StringUtil.toHexStringHibernate(new byte[]{(byte) 0x5a,(byte) 0x23,(byte) 0x7c,(byte) 0x0b}));
- }
-}
More information about the jbpm-commits
mailing list