[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