Author: dblevins
Date: Tue Aug 28 03:50:09 2012
New Revision: 1377969

URL: http://svn.apache.org/viewvc?rev=1377969&view=rev
Log:
TOMEE-406 - Support Duration syntax in all known time related properties

Modified:
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/typed/ActiveMQResourceAdapterBuilder.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/typed/DataSourceBuilder.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/typed/JmsConnectionFactoryBuilder.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/typed/TransactionManagerBuilder.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/typed/util/ProviderGenerator.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/GeronimoConnectionManagerFactory.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/GeronimoTransactionManagerFactory.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapter.java
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java
    
openejb/trunk/openejb/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml
    
openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/typed/util/ServerContextTest.java
    
openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/core/mdb/JmsTest.java
    
openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapterTest.java

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/typed/ActiveMQResourceAdapterBuilder.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/typed/ActiveMQResourceAdapterBuilder.java?rev=1377969&r1=1377968&r2=1377969&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/typed/ActiveMQResourceAdapterBuilder.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/typed/ActiveMQResourceAdapterBuilder.java
 Tue Aug 28 03:50:09 2012
@@ -36,7 +36,7 @@ public class ActiveMQResourceAdapterBuil
     private String dataSource = "Default Unmanaged JDBC Database";
     @XmlJavaTypeAdapter(DurationAdapter.class)
     @XmlAttribute
-    private org.apache.openejb.util.Duration startupTimeout = 
org.apache.openejb.util.Duration.parse("10000");
+    private org.apache.openejb.util.Duration startupTimeout = 
org.apache.openejb.util.Duration.parse("10 seconds");
 
     public ActiveMQResourceAdapterBuilder() {
         
setClassName("org.apache.openejb.resource.activemq.ActiveMQResourceAdapter");

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/typed/DataSourceBuilder.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/typed/DataSourceBuilder.java?rev=1377969&r1=1377968&r2=1377969&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/typed/DataSourceBuilder.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/typed/DataSourceBuilder.java
 Tue Aug 28 03:50:09 2012
@@ -58,8 +58,9 @@ public class DataSourceBuilder extends R
     private int maxIdle = 20;
     @XmlAttribute
     private int minIdle = 0;
+    @XmlJavaTypeAdapter(DurationAdapter.class)
     @XmlAttribute
-    private int maxWait = -1;
+    private org.apache.openejb.util.Duration maxWaitTime = 
org.apache.openejb.util.Duration.parse("-1 millisecond");
     @XmlAttribute
     private String validationQuery = null;
     @XmlAttribute
@@ -68,12 +69,14 @@ public class DataSourceBuilder extends R
     private boolean testOnReturn = false;
     @XmlAttribute
     private boolean testWhileIdle = false;
+    @XmlJavaTypeAdapter(DurationAdapter.class)
     @XmlAttribute
-    private long timeBetweenEvictionRunsMillis = -1;
+    private org.apache.openejb.util.Duration timeBetweenEvictionRuns = 
org.apache.openejb.util.Duration.parse("-1 millisecond");
     @XmlAttribute
     private int numTestsPerEvictionRun = 3;
+    @XmlJavaTypeAdapter(DurationAdapter.class)
     @XmlAttribute
-    private long minEvictableIdleTimeMillis = 1800000;
+    private org.apache.openejb.util.Duration minEvictableIdleTime = 
org.apache.openejb.util.Duration.parse("30 minutes");
     @XmlAttribute
     private boolean poolPreparedStatements = false;
     @XmlAttribute
@@ -88,7 +91,7 @@ public class DataSourceBuilder extends R
         setType("javax.sql.DataSource");
         setId("DataSource");
 
-        setConstructor("serviceId, jtaManaged, jdbcDriver, definition");
+        setConstructor("serviceId, jtaManaged, jdbcDriver, definition, 
maxWaitTime, timeBetweenEvictionRuns, minEvictableIdleTime");
 
         setFactoryName("create");
 
@@ -294,17 +297,25 @@ public class DataSourceBuilder extends R
         return minIdle;
     }
 
-    public DataSourceBuilder withMaxWait(int maxWait) {
-        this.maxWait = maxWait;
+    public DataSourceBuilder withMaxWaitTime(org.apache.openejb.util.Duration 
maxWaitTime) {
+        this.maxWaitTime = maxWaitTime;
         return this;
     }
 
-    public void setMaxWait(int maxWait) {
-        this.maxWait = maxWait;
+    public void setMaxWaitTime(org.apache.openejb.util.Duration maxWaitTime) {
+        this.maxWaitTime = maxWaitTime;
     }
 
-    public int getMaxWait() {
-        return maxWait;
+    public org.apache.openejb.util.Duration getMaxWaitTime() {
+        return maxWaitTime;
+    }
+
+    public DataSourceBuilder withMaxWaitTime(long time, TimeUnit unit) {
+        return withMaxWaitTime(new Duration(time, unit));
+    }
+
+    public void setMaxWaitTime(long time, TimeUnit unit) {
+        setMaxWaitTime(new Duration(time, unit));
     }
 
     public DataSourceBuilder withValidationQuery(String validationQuery) {
@@ -359,25 +370,25 @@ public class DataSourceBuilder extends R
         return testWhileIdle;
     }
 
-    public DataSourceBuilder withTimeBetweenEvictionRunsMillis(long 
timeBetweenEvictionRunsMillis) {
-        this.timeBetweenEvictionRunsMillis = timeBetweenEvictionRunsMillis;
+    public DataSourceBuilder 
withTimeBetweenEvictionRuns(org.apache.openejb.util.Duration 
timeBetweenEvictionRuns) {
+        this.timeBetweenEvictionRuns = timeBetweenEvictionRuns;
         return this;
     }
 
-    public void setTimeBetweenEvictionRunsMillis(long 
timeBetweenEvictionRunsMillis) {
-        this.timeBetweenEvictionRunsMillis = timeBetweenEvictionRunsMillis;
+    public void setTimeBetweenEvictionRuns(org.apache.openejb.util.Duration 
timeBetweenEvictionRuns) {
+        this.timeBetweenEvictionRuns = timeBetweenEvictionRuns;
     }
 
-    public long getTimeBetweenEvictionRunsMillis() {
-        return timeBetweenEvictionRunsMillis;
+    public org.apache.openejb.util.Duration getTimeBetweenEvictionRuns() {
+        return timeBetweenEvictionRuns;
     }
 
     public DataSourceBuilder withTimeBetweenEvictionRuns(long time, TimeUnit 
unit) {
-        return 
withTimeBetweenEvictionRunsMillis(TimeUnit.MILLISECONDS.convert(time, unit));
+        return withTimeBetweenEvictionRuns(new Duration(time, unit));
     }
 
     public void setTimeBetweenEvictionRuns(long time, TimeUnit unit) {
-        setTimeBetweenEvictionRunsMillis(TimeUnit.MILLISECONDS.convert(time, 
unit));
+        setTimeBetweenEvictionRuns(new Duration(time, unit));
     }
 
     public DataSourceBuilder withNumTestsPerEvictionRun(int 
numTestsPerEvictionRun) {
@@ -393,25 +404,25 @@ public class DataSourceBuilder extends R
         return numTestsPerEvictionRun;
     }
 
-    public DataSourceBuilder withMinEvictableIdleTimeMillis(long 
minEvictableIdleTimeMillis) {
-        this.minEvictableIdleTimeMillis = minEvictableIdleTimeMillis;
+    public DataSourceBuilder 
withMinEvictableIdleTime(org.apache.openejb.util.Duration minEvictableIdleTime) 
{
+        this.minEvictableIdleTime = minEvictableIdleTime;
         return this;
     }
 
-    public void setMinEvictableIdleTimeMillis(long minEvictableIdleTimeMillis) 
{
-        this.minEvictableIdleTimeMillis = minEvictableIdleTimeMillis;
+    public void setMinEvictableIdleTime(org.apache.openejb.util.Duration 
minEvictableIdleTime) {
+        this.minEvictableIdleTime = minEvictableIdleTime;
     }
 
-    public long getMinEvictableIdleTimeMillis() {
-        return minEvictableIdleTimeMillis;
+    public org.apache.openejb.util.Duration getMinEvictableIdleTime() {
+        return minEvictableIdleTime;
     }
 
     public DataSourceBuilder withMinEvictableIdleTime(long time, TimeUnit 
unit) {
-        return 
withMinEvictableIdleTimeMillis(TimeUnit.MILLISECONDS.convert(time, unit));
+        return withMinEvictableIdleTime(new Duration(time, unit));
     }
 
     public void setMinEvictableIdleTime(long time, TimeUnit unit) {
-        setMinEvictableIdleTimeMillis(TimeUnit.MILLISECONDS.convert(time, 
unit));
+        setMinEvictableIdleTime(new Duration(time, unit));
     }
 
     public DataSourceBuilder withPoolPreparedStatements(boolean 
poolPreparedStatements) {

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/typed/JmsConnectionFactoryBuilder.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/typed/JmsConnectionFactoryBuilder.java?rev=1377969&r1=1377968&r2=1377969&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/typed/JmsConnectionFactoryBuilder.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/typed/JmsConnectionFactoryBuilder.java
 Tue Aug 28 03:50:09 2012
@@ -36,10 +36,12 @@ public class JmsConnectionFactoryBuilder
     private int poolMaxSize = 10;
     @XmlAttribute
     private int poolMinSize = 0;
+    @XmlJavaTypeAdapter(DurationAdapter.class)
     @XmlAttribute
-    private int connectionMaxWaitMilliseconds = 5000;
+    private org.apache.openejb.util.Duration connectionMaxWaitTime = 
org.apache.openejb.util.Duration.parse("5 seconds");
+    @XmlJavaTypeAdapter(DurationAdapter.class)
     @XmlAttribute
-    private int connectionMaxIdleMinutes = 15;
+    private org.apache.openejb.util.Duration connectionMaxIdleTime = 
org.apache.openejb.util.Duration.parse("15 Minutes");
 
     public JmsConnectionFactoryBuilder() {
         
setClassName("org.apache.activemq.ra.ActiveMQManagedConnectionFactory");
@@ -105,30 +107,46 @@ public class JmsConnectionFactoryBuilder
         return poolMinSize;
     }
 
-    public JmsConnectionFactoryBuilder withConnectionMaxWaitMilliseconds(int 
connectionMaxWaitMilliseconds) {
-        this.connectionMaxWaitMilliseconds = connectionMaxWaitMilliseconds;
+    public JmsConnectionFactoryBuilder 
withConnectionMaxWaitTime(org.apache.openejb.util.Duration 
connectionMaxWaitTime) {
+        this.connectionMaxWaitTime = connectionMaxWaitTime;
         return this;
     }
 
-    public void setConnectionMaxWaitMilliseconds(int 
connectionMaxWaitMilliseconds) {
-        this.connectionMaxWaitMilliseconds = connectionMaxWaitMilliseconds;
+    public void setConnectionMaxWaitTime(org.apache.openejb.util.Duration 
connectionMaxWaitTime) {
+        this.connectionMaxWaitTime = connectionMaxWaitTime;
     }
 
-    public int getConnectionMaxWaitMilliseconds() {
-        return connectionMaxWaitMilliseconds;
+    public org.apache.openejb.util.Duration getConnectionMaxWaitTime() {
+        return connectionMaxWaitTime;
     }
 
-    public JmsConnectionFactoryBuilder withConnectionMaxIdleMinutes(int 
connectionMaxIdleMinutes) {
-        this.connectionMaxIdleMinutes = connectionMaxIdleMinutes;
+    public JmsConnectionFactoryBuilder withConnectionMaxWaitTime(long time, 
TimeUnit unit) {
+        return withConnectionMaxWaitTime(new Duration(time, unit));
+    }
+
+    public void setConnectionMaxWaitTime(long time, TimeUnit unit) {
+        setConnectionMaxWaitTime(new Duration(time, unit));
+    }
+
+    public JmsConnectionFactoryBuilder 
withConnectionMaxIdleTime(org.apache.openejb.util.Duration 
connectionMaxIdleTime) {
+        this.connectionMaxIdleTime = connectionMaxIdleTime;
         return this;
     }
 
-    public void setConnectionMaxIdleMinutes(int connectionMaxIdleMinutes) {
-        this.connectionMaxIdleMinutes = connectionMaxIdleMinutes;
+    public void setConnectionMaxIdleTime(org.apache.openejb.util.Duration 
connectionMaxIdleTime) {
+        this.connectionMaxIdleTime = connectionMaxIdleTime;
+    }
+
+    public org.apache.openejb.util.Duration getConnectionMaxIdleTime() {
+        return connectionMaxIdleTime;
+    }
+
+    public JmsConnectionFactoryBuilder withConnectionMaxIdleTime(long time, 
TimeUnit unit) {
+        return withConnectionMaxIdleTime(new Duration(time, unit));
     }
 
-    public int getConnectionMaxIdleMinutes() {
-        return connectionMaxIdleMinutes;
+    public void setConnectionMaxIdleTime(long time, TimeUnit unit) {
+        setConnectionMaxIdleTime(new Duration(time, unit));
     }
 
     public Properties getProperties() {

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/typed/TransactionManagerBuilder.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/typed/TransactionManagerBuilder.java?rev=1377969&r1=1377968&r2=1377969&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/typed/TransactionManagerBuilder.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/typed/TransactionManagerBuilder.java
 Tue Aug 28 03:50:09 2012
@@ -28,8 +28,9 @@ import javax.xml.bind.annotation.adapter
 @XmlRootElement(name = "TransactionManager")
 public class TransactionManagerBuilder extends TransactionManager {
 
+    @XmlJavaTypeAdapter(DurationAdapter.class)
     @XmlAttribute
-    private long defaultTransactionTimeoutSeconds = 600;
+    private org.apache.openejb.util.Duration defaultTransactionTimeout = 
org.apache.openejb.util.Duration.parse("10 minutes");
     @XmlAttribute
     private boolean txRecovery = false;
     @XmlAttribute
@@ -38,8 +39,9 @@ public class TransactionManagerBuilder e
     private boolean checksumEnabled = true;
     @XmlAttribute
     private boolean adler32Checksum = true;
+    @XmlJavaTypeAdapter(DurationAdapter.class)
     @XmlAttribute
-    private long flushSleepTimeMilliseconds = 50;
+    private org.apache.openejb.util.Duration flushSleepTime = 
org.apache.openejb.util.Duration.parse("50 Milliseconds");
     @XmlAttribute
     private String logFileDir = "txlog";
     @XmlAttribute
@@ -62,7 +64,7 @@ public class TransactionManagerBuilder e
         setType("TransactionManager");
         setId("TransactionManager");
 
-        setConstructor("defaultTransactionTimeoutSeconds, txRecovery, tmId, 
bufferClassName, bufferSizeKb, checksumEnabled, adler32Checksum, 
flushSleepTimeMilliseconds, logFileDir, logFileExt, logFileName, 
maxBlocksPerFile, maxBuffers, maxLogFiles, minBuffers, 
threadsWaitingForceThreshold");
+        setConstructor("defaultTransactionTimeoutSeconds, 
defaultTransactionTimeout, txRecovery, tmId, bufferClassName, bufferSizeKb, 
checksumEnabled, adler32Checksum, flushSleepTimeMilliseconds, flushSleepTime, 
logFileDir, logFileExt, logFileName, maxBlocksPerFile, maxBuffers, maxLogFiles, 
minBuffers, threadsWaitingForceThreshold");
 
         setFactoryName("create");
 
@@ -73,25 +75,25 @@ public class TransactionManagerBuilder e
         return this;
     }
 
-    public TransactionManagerBuilder withDefaultTransactionTimeoutSeconds(long 
defaultTransactionTimeoutSeconds) {
-        this.defaultTransactionTimeoutSeconds = 
defaultTransactionTimeoutSeconds;
+    public TransactionManagerBuilder 
withDefaultTransactionTimeout(org.apache.openejb.util.Duration 
defaultTransactionTimeout) {
+        this.defaultTransactionTimeout = defaultTransactionTimeout;
         return this;
     }
 
-    public void setDefaultTransactionTimeoutSeconds(long 
defaultTransactionTimeoutSeconds) {
-        this.defaultTransactionTimeoutSeconds = 
defaultTransactionTimeoutSeconds;
+    public void setDefaultTransactionTimeout(org.apache.openejb.util.Duration 
defaultTransactionTimeout) {
+        this.defaultTransactionTimeout = defaultTransactionTimeout;
     }
 
-    public long getDefaultTransactionTimeoutSeconds() {
-        return defaultTransactionTimeoutSeconds;
+    public org.apache.openejb.util.Duration getDefaultTransactionTimeout() {
+        return defaultTransactionTimeout;
     }
 
     public TransactionManagerBuilder withDefaultTransactionTimeout(long time, 
TimeUnit unit) {
-        return 
withDefaultTransactionTimeoutSeconds(TimeUnit.SECONDS.convert(time, unit));
+        return withDefaultTransactionTimeout(new Duration(time, unit));
     }
 
     public void setDefaultTransactionTimeout(long time, TimeUnit unit) {
-        setDefaultTransactionTimeoutSeconds(TimeUnit.SECONDS.convert(time, 
unit));
+        setDefaultTransactionTimeout(new Duration(time, unit));
     }
 
     public TransactionManagerBuilder withTxRecovery(boolean txRecovery) {
@@ -146,25 +148,25 @@ public class TransactionManagerBuilder e
         return adler32Checksum;
     }
 
-    public TransactionManagerBuilder withFlushSleepTimeMilliseconds(long 
flushSleepTimeMilliseconds) {
-        this.flushSleepTimeMilliseconds = flushSleepTimeMilliseconds;
+    public TransactionManagerBuilder 
withFlushSleepTime(org.apache.openejb.util.Duration flushSleepTime) {
+        this.flushSleepTime = flushSleepTime;
         return this;
     }
 
-    public void setFlushSleepTimeMilliseconds(long flushSleepTimeMilliseconds) 
{
-        this.flushSleepTimeMilliseconds = flushSleepTimeMilliseconds;
+    public void setFlushSleepTime(org.apache.openejb.util.Duration 
flushSleepTime) {
+        this.flushSleepTime = flushSleepTime;
     }
 
-    public long getFlushSleepTimeMilliseconds() {
-        return flushSleepTimeMilliseconds;
+    public org.apache.openejb.util.Duration getFlushSleepTime() {
+        return flushSleepTime;
     }
 
     public TransactionManagerBuilder withFlushSleepTime(long time, TimeUnit 
unit) {
-        return 
withFlushSleepTimeMilliseconds(TimeUnit.MILLISECONDS.convert(time, unit));
+        return withFlushSleepTime(new Duration(time, unit));
     }
 
     public void setFlushSleepTime(long time, TimeUnit unit) {
-        setFlushSleepTimeMilliseconds(TimeUnit.MILLISECONDS.convert(time, 
unit));
+        setFlushSleepTime(new Duration(time, unit));
     }
 
     public TransactionManagerBuilder withLogFileDir(String logFileDir) {

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/typed/util/ProviderGenerator.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/typed/util/ProviderGenerator.java?rev=1377969&r1=1377968&r2=1377969&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/typed/util/ProviderGenerator.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/typed/util/ProviderGenerator.java
 Tue Aug 28 03:50:09 2012
@@ -368,7 +368,7 @@ public class ProviderGenerator extends R
             return Duration.class.getName();
         }
 
-        if (value.matches("[0-9]+ (m|h|s)[^ ]*")) {
+        if (value.matches("-?[0-9]+ +(m|h|s|M|H|S)[^ ]*")) {
             return Duration.class.getName();
         }
 

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/GeronimoConnectionManagerFactory.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/GeronimoConnectionManagerFactory.java?rev=1377969&r1=1377968&r2=1377969&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/GeronimoConnectionManagerFactory.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/GeronimoConnectionManagerFactory.java
 Tue Aug 28 03:50:09 2012
@@ -28,6 +28,7 @@ import org.apache.geronimo.connector.out
 import org.apache.geronimo.transaction.manager.NamedXAResourceFactory;
 import org.apache.geronimo.transaction.manager.RecoverableTransactionManager;
 import org.apache.openejb.OpenEJBRuntimeException;
+import org.apache.openejb.util.Duration;
 
 import javax.resource.spi.ManagedConnectionFactory;
 import javax.transaction.HeuristicMixedException;
@@ -38,6 +39,7 @@ import javax.transaction.RollbackExcepti
 import javax.transaction.SystemException;
 import javax.transaction.Transaction;
 import javax.transaction.TransactionManager;
+import java.util.concurrent.TimeUnit;
 
 public class GeronimoConnectionManagerFactory   {
     private String name;
@@ -149,6 +151,14 @@ public class GeronimoConnectionManagerFa
         this.connectionMaxWaitMilliseconds = connectionMaxWaitMilliseconds;
     }
 
+    public void setConnectionMaxWaitTime(Duration connectionMaxWait) {
+        if (connectionMaxWait.getUnit() == null) {
+            connectionMaxWait.setUnit(TimeUnit.MILLISECONDS);
+        }
+        final long milleseconds = 
TimeUnit.MILLISECONDS.convert(connectionMaxWait.getTime(), 
connectionMaxWait.getUnit());
+        setConnectionMaxWaitMilliseconds((int) milleseconds);
+    }
+
     public int getConnectionMaxIdleMinutes() {
         return connectionMaxIdleMinutes;
     }
@@ -157,6 +167,14 @@ public class GeronimoConnectionManagerFa
         this.connectionMaxIdleMinutes = connectionMaxIdleMinutes;
     }
 
+    public void setConnectionMaxIdleTime(Duration connectionMaxIdle) {
+        if (connectionMaxIdle.getUnit() == null) {
+            connectionMaxIdle.setUnit(TimeUnit.MINUTES);
+        }
+        final long minutes = 
TimeUnit.MINUTES.convert(connectionMaxIdle.getTime(), 
connectionMaxIdle.getUnit());
+        setConnectionMaxIdleMinutes((int) minutes);
+    }
+
     public GenericConnectionManager create() {
         PoolingSupport poolingSupport = createPoolingSupport();
 

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/GeronimoTransactionManagerFactory.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/GeronimoTransactionManagerFactory.java?rev=1377969&r1=1377968&r2=1377969&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/GeronimoTransactionManagerFactory.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/GeronimoTransactionManagerFactory.java
 Tue Aug 28 03:50:09 2012
@@ -25,8 +25,10 @@ import org.apache.geronimo.transaction.m
 import org.apache.geronimo.transaction.manager.XidFactoryImpl;
 import org.apache.geronimo.transaction.manager.WrapperNamedXAResource;
 import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.util.Duration;
 
 import javax.transaction.xa.XAResource;
+import java.util.concurrent.TimeUnit;
 
 /**
  * @version $Rev$ $Date$
@@ -36,14 +38,16 @@ public class GeronimoTransactionManagerF
     private static final byte[] DEFAULT_TM_ID = new byte[]{71, 84, 77, 73, 68};
     private static final int DEFAULT_BUFFER_SIZE = 32;
 
-    public static GeronimoTransactionManager create(int 
defaultTransactionTimeoutSeconds,
+    public static GeronimoTransactionManager create(Integer 
defaultTransactionTimeoutSeconds, // Deprecated, use defaultTransactionTimeout
+                                                    Duration 
defaultTransactionTimeout,
                                                     boolean txRecovery,
                                                     byte[] tmId,
                                                     String bufferClassName,
                                                     int bufferSizeKb,
                                                     boolean checksumEnabled,
                                                     boolean adler32Checksum,
-                                                    int 
flushSleepTimeMilliseconds,
+                                                    Integer 
flushSleepTimeMilliseconds, // Deprecated, use flushSleepTime
+                                                    Duration flushSleepTime,
                                                     String logFileDir,
                                                     String logFileExt,
                                                     String logFileName,
@@ -52,6 +56,21 @@ public class GeronimoTransactionManagerF
                                                     int maxLogFiles,
                                                     int minBuffers,
                                                     int 
threadsWaitingForceThreshold) throws Exception {
+
+        if (flushSleepTime.getUnit() == null) {
+            flushSleepTime.setUnit(TimeUnit.MILLISECONDS);
+        }
+        if (flushSleepTimeMilliseconds == null) {
+            flushSleepTimeMilliseconds = (int) 
TimeUnit.MILLISECONDS.convert(flushSleepTime.getTime(), 
flushSleepTime.getUnit());
+        }
+
+        if (defaultTransactionTimeout.getUnit() == null) {
+            defaultTransactionTimeout.setUnit(TimeUnit.SECONDS);
+        }
+        if (defaultTransactionTimeoutSeconds == null) {
+            defaultTransactionTimeoutSeconds = (int) 
TimeUnit.SECONDS.convert(defaultTransactionTimeout.getTime(), 
defaultTransactionTimeout.getUnit());
+        }
+
         XidFactory xidFactory = null;
         TransactionLog txLog = null;
         if (txRecovery) {

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapter.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapter.java?rev=1377969&r1=1377968&r2=1377969&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapter.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapter.java
 Tue Aug 28 03:50:09 2012
@@ -17,6 +17,7 @@
 package org.apache.openejb.resource.activemq;
 
 import org.apache.activemq.broker.BrokerService;
+import org.apache.openejb.util.Duration;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.URISupport;
 
@@ -28,6 +29,7 @@ import java.net.URISyntaxException;
 import java.util.Collection;
 import java.util.Iterator;
 import java.util.Properties;
+import java.util.concurrent.TimeUnit;
 
 public class ActiveMQResourceAdapter extends 
org.apache.activemq.ra.ActiveMQResourceAdapter {
 
@@ -51,9 +53,11 @@ public class ActiveMQResourceAdapter ext
         return Integer.parseInt(this.startupTimeout);
     }
 
-    public void setStartupTimeout(int startupTimeout) {
-        startupTimeout = (startupTimeout < 5000 ? 5000 : startupTimeout);
-        this.startupTimeout = "" + startupTimeout;
+    public void setStartupTimeout(Duration startupTimeout) {
+        if (startupTimeout.getUnit() == null) {
+            startupTimeout.setUnit(TimeUnit.MILLISECONDS);
+        }
+        this.startupTimeout = "" + 
TimeUnit.MILLISECONDS.convert(startupTimeout.getTime(), 
startupTimeout.getUnit());
     }
 
     @Override

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java?rev=1377969&r1=1377968&r2=1377969&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java
 Tue Aug 28 03:50:09 2012
@@ -23,6 +23,7 @@ import org.apache.openejb.resource.jdbc.
 import org.apache.openejb.resource.jdbc.logging.LoggingSqlDataSource;
 import org.apache.openejb.resource.jdbc.pool.DataSourceCreator;
 import org.apache.openejb.resource.jdbc.pool.DefaultDataSourceCreator;
+import org.apache.openejb.util.Duration;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 import org.apache.xbean.recipe.ObjectRecipe;
@@ -36,6 +37,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Properties;
 import java.util.TreeMap;
+import java.util.concurrent.TimeUnit;
 
 /**
  * @version $Rev$ $Date$
@@ -56,9 +58,12 @@ public class DataSourceFactory {
         put("bonecp", "org.apache.openejb.bonecp.BoneCPDataSourceCreator"); // 
bonecp
     }};
 
-    public static DataSource create(final String name, final boolean 
configuredManaged, final Class impl, final String definition) throws 
IllegalAccessException, InstantiationException, IOException {
+    public static DataSource create(final String name, final boolean 
configuredManaged, final Class impl, final String definition, Duration 
maxWaitTime, Duration timeBetweenEvictionRuns, Duration minEvictableIdleTime) 
throws IllegalAccessException, InstantiationException, IOException {
         final Properties properties = asProperties(definition);
 
+        convert(properties, maxWaitTime, "maxWaitTime", "maxWait");
+        convert(properties, timeBetweenEvictionRuns, 
"timeBetweenEvictionRuns", "timeBetweenEvictionRunsMillis");
+        convert(properties, minEvictableIdleTime, "minEvictableIdleTime", 
"minEvictableIdleTimeMillis");
         // these can be added and are managed by OpenEJB and not the 
DataSource itself
         properties.remove("Definition");
         properties.remove("JtaManaged");
@@ -123,6 +128,22 @@ public class DataSourceFactory {
         return ds;
     }
 
+    private static void convert(Properties properties, Duration duration, 
String key, String oldKey) {
+        properties.remove(key);
+
+        // If someone is using the legacy property, use it
+        if (properties.contains(oldKey)) return;
+        properties.remove(oldKey);
+
+        if (duration == null) return;
+        if (duration.getUnit() == null) {
+            duration.setUnit(TimeUnit.MILLISECONDS);
+        }
+
+        final long milliseconds = 
TimeUnit.MILLISECONDS.convert(duration.getTime(), duration.getUnit());
+        properties.put(oldKey, milliseconds + "");
+    }
+
     public static DataSourceCreator creator(final Object creatorName, boolean 
willBeProxied) {
         final DataSourceCreator defaultCreator = 
SystemInstance.get().getComponent(DataSourceCreator.class);
         final ClassLoader loader = 
Thread.currentThread().getContextClassLoader();

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml?rev=1377969&r1=1377968&r2=1377969&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml
 Tue Aug 28 03:50:09 2012
@@ -525,22 +525,48 @@
             service="TransactionManager"
             types="TransactionManager"
             factory-name="create"
-            constructor="defaultTransactionTimeoutSeconds, TxRecovery, tmId, 
bufferClassName, bufferSizeKb, checksumEnabled, adler32Checksum, 
flushSleepTimeMilliseconds, logFileDir, logFileExt, logFileName, 
maxBlocksPerFile, maxBuffers, maxLogFiles, minBuffers, 
threadsWaitingForceThreshold"
+            constructor="defaultTransactionTimeoutSeconds, 
defaultTransactionTimeout, TxRecovery, tmId, bufferClassName, bufferSizeKb, 
checksumEnabled, adler32Checksum, flushSleepTimeMilliseconds, flushSleepTime, 
logFileDir, logFileExt, logFileName, maxBlocksPerFile, maxBuffers, maxLogFiles, 
minBuffers, threadsWaitingForceThreshold"
             
class-name="org.apache.openejb.resource.GeronimoTransactionManagerFactory">
-           defaultTransactionTimeoutSeconds 600
-           TxRecovery false
-           bufferSizeKb 32
-           checksumEnabled true
-           adler32Checksum true
-           flushSleepTimeMilliseconds 50
-           logFileDir txlog
-           logFileExt log
-           logFileName howl
-           maxBlocksPerFile -1
-           maxBuffers 0
-           maxLogFiles 2
-           minBuffers 4
-           threadsWaitingForceThreshold -1
+      defaultTransactionTimeout 10 minutes
+
+      # When set to true, Howl logging is enabled
+      TxRecovery false
+
+      # Requires TxRecovery
+      bufferSizeKb 32
+
+      # Requires TxRecovery
+      checksumEnabled true
+
+      # Requires TxRecovery
+      adler32Checksum true
+
+      # Requires TxRecovery
+      flushSleepTime 50 Milliseconds
+
+      # Requires TxRecovery
+      logFileDir txlog
+
+      # Requires TxRecovery
+      logFileExt log
+
+      # Requires TxRecovery
+      logFileName howl
+
+      # Requires TxRecovery
+      maxBlocksPerFile -1
+
+      # Requires TxRecovery
+      maxBuffers 0
+
+      # Requires TxRecovery
+      maxLogFiles 2
+
+      # Requires TxRecovery
+      minBuffers 4
+
+      # Requires TxRecovery
+      threadsWaitingForceThreshold -1
     </ServiceProvider>
 
   <!--
@@ -553,7 +579,7 @@
           service="Resource"
           types="javax.sql.DataSource, DataSource"
           factory-name="create"
-          constructor="ServiceId, JtaManaged, JdbcDriver, Definition"
+          constructor="ServiceId, JtaManaged, JdbcDriver, Definition, 
MaxWaitTime, TimeBetweenEvictionRuns, MinEvictableIdleTime"
           class-name="org.apache.openejb.resource.jdbc.DataSourceFactory">
     ServiceId
 
@@ -655,7 +681,7 @@
     # to be returned before throwing an exception, or -1 to wait
     # indefinitely.
 
-    MaxWait    -1
+    MaxWaitTime        -1 millisecond
 
     # The SQL query that will be used to validate connections from
     # this pool before returning them to the caller. If specified,
@@ -697,7 +723,7 @@
     # connection evictor thread. When set to a negative number, no
     # idle connection evictor thread will be run.
 
-    TimeBetweenEvictionRunsMillis      -1
+    TimeBetweenEvictionRuns    -1 millisecond
 
     # The number of connectionss to examine during each run of the
     # idle connection evictor thread (if any).
@@ -708,7 +734,7 @@
     # pool before it is eligable for eviction by the idle
     # connection evictor (if any).
 
-    MinEvictableIdleTimeMillis 1800000
+    MinEvictableIdleTime       30 minutes
 
     # If true, a statement pool is created for each Connection and
     # PreparedStatements created by one of the following methods are
@@ -759,7 +785,7 @@
           service="Resource"
           types="javax.sql.DataSource, DataSource"
           factory-name="create"
-          constructor="ServiceId, JtaManaged, JdbcDriver, Definition"
+          constructor="ServiceId, JtaManaged, JdbcDriver, Definition, 
MaxWaitTime, TimeBetweenEvictionRuns, MinEvictableIdleTime"
           class-name="org.apache.openejb.resource.jdbc.DataSourceFactory">
     ServiceId
 
@@ -848,7 +874,7 @@
     # to be returned before throwing an exception, or -1 to wait
     # indefinitely.
 
-    MaxWait    -1
+    MaxWaitTime        -1 millisecond
 
     # The SQL query that will be used to validate connections from
     # this pool before returning them to the caller. If specified,
@@ -890,7 +916,7 @@
     # connection evictor thread. When set to a negative number, no
     # idle connection evictor thread will be run.
 
-    TimeBetweenEvictionRunsMillis      -1
+    TimeBetweenEvictionRuns    -1 millisecond
 
     # The number of connectionss to examine during each run of the
     # idle connection evictor thread (if any).
@@ -901,7 +927,7 @@
     # pool before it is eligable for eviction by the idle
     # connection evictor (if any).
 
-    MinEvictableIdleTimeMillis 1800000
+    MinEvictableIdleTime       30 minutes
 
     # If true, a statement pool is created for each Connection and
     # PreparedStatements created by one of the following methods are
@@ -965,8 +991,8 @@
     # DataSource for persistence messages
     DataSource Default Unmanaged JDBC Database
 
-    # How long to wait for broker startup in milliseconds
-    StartupTimeout 10000
+    # How long to wait for broker startup
+    StartupTimeout 10 seconds
 
   </ServiceProvider>
 
@@ -989,10 +1015,10 @@
     PoolMinSize 0
 
     # Maximum amount of time to wait for a connection
-    ConnectionMaxWaitMilliseconds 5000
+    ConnectionMaxWaitTime 5 seconds
 
     # Maximum amount of time a connection can be idle before being reclaimed
-    ConnectionMaxIdleMinutes 15
+    ConnectionMaxIdleTime 15 Minutes
   </ServiceProvider>
 
   <ServiceProvider

Modified: 
openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/typed/util/ServerContextTest.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/typed/util/ServerContextTest.java?rev=1377969&r1=1377968&r2=1377969&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/typed/util/ServerContextTest.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/typed/util/ServerContextTest.java
 Tue Aug 28 03:50:09 2012
@@ -17,15 +17,13 @@
 package org.apache.openejb.config.typed.util;
 
 import junit.framework.TestCase;
+import org.apache.openejb.config.typed.ActiveMQResourceAdapterBuilder;
 import org.apache.openejb.config.typed.DataSourceBuilder;
+import org.apache.openejb.config.typed.JmsConnectionFactoryBuilder;
 import org.apache.openejb.config.typed.SecurityServiceBuilder;
 import org.apache.openejb.config.typed.StatelessContainerBuilder;
 import org.apache.openejb.config.typed.TransactionManagerBuilder;
-import org.apache.openejb.jee.JAXBContextFactory;
 
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-import java.io.ByteArrayOutputStream;
 import java.net.URI;
 import java.util.concurrent.TimeUnit;
 
@@ -68,21 +66,14 @@ public class ServerContextTest extends T
                 .withTimeBetweenEvictionRuns(5, TimeUnit.MINUTES)
         );
 
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-
-        JAXBContext jaxbContext = 
JAXBContextFactory.newInstance(ServerContext.class
-                , TransactionManagerBuilder.class
-                , SecurityServiceBuilder.class
-                , StatelessContainerBuilder.class
-                , DataSourceBuilder.class);
-
-        Marshaller marshaller = jaxbContext.createMarshaller();
-
-        marshaller.setProperty("jaxb.formatted.output", true);
-
-        marshaller.marshal(serverContext, baos);
+        serverContext.createResource(new ActiveMQResourceAdapterBuilder()
+                .id("JmsResourceAdapter")
+                .withDataSource("FooDataSource")
+        );
 
-        final String marshal = new String(baos.toByteArray());
-        System.out.println(marshal);
+        serverContext.createResource(new JmsConnectionFactoryBuilder()
+                .id("FooJmsConnectionFactory")
+                .withResourceAdapter("JmsResourceAdapter")
+        );
     }
 }

Modified: 
openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/core/mdb/JmsTest.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/core/mdb/JmsTest.java?rev=1377969&r1=1377968&r2=1377969&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/core/mdb/JmsTest.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/core/mdb/JmsTest.java
 Tue Aug 28 03:50:09 2012
@@ -26,6 +26,7 @@ import org.apache.geronimo.connector.wor
 import org.apache.geronimo.transaction.manager.GeronimoTransactionManager;
 import org.apache.openejb.OpenEJBException;
 import org.apache.openejb.resource.activemq.ActiveMQResourceAdapter;
+import org.apache.openejb.util.Duration;
 import org.apache.openejb.util.NetworkUtil;
 
 import javax.jms.*;
@@ -37,6 +38,7 @@ import java.util.Map;
 import java.util.TreeMap;
 import java.util.concurrent.Executor;
 import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
 
 public class JmsTest extends TestCase {
     protected static final String REQUEST_QUEUE_NAME = "request";
@@ -58,7 +60,7 @@ public class JmsTest extends TestCase {
         // initialize properties
         ra.setServerUrl(brokerAddress);
         ra.setBrokerXmlConfig(brokerXmlConfig);
-        ra.setStartupTimeout(10000);
+        ra.setStartupTimeout(new Duration(10, TimeUnit.SECONDS));
 
         // create a thead pool for ActiveMQ
         final Executor threadPool = Executors.newFixedThreadPool(30);

Modified: 
openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapterTest.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapterTest.java?rev=1377969&r1=1377968&r2=1377969&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapterTest.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapterTest.java
 Tue Aug 28 03:50:09 2012
@@ -18,8 +18,11 @@
 package org.apache.openejb.resource.activemq;
 
 import junit.framework.TestCase;
+import org.apache.openejb.util.Duration;
 import org.apache.openejb.util.NetworkUtil;
 
+import java.util.concurrent.TimeUnit;
+
 public class ActiveMQResourceAdapterTest extends TestCase {
     public void test() throws Exception {
         ActiveMQResourceAdapter resourceAdapter = new 
ActiveMQResourceAdapter();
@@ -27,7 +30,7 @@ public class ActiveMQResourceAdapterTest
 
         String brokerAddress = NetworkUtil.getLocalAddress("broker:(tcp://", 
")?useJmx=false");
         resourceAdapter.setBrokerXmlConfig(brokerAddress);
-        resourceAdapter.setStartupTimeout(10000);
+        resourceAdapter.setStartupTimeout(new Duration(10, TimeUnit.SECONDS));
 
         //    DataSource Default Unmanaged JDBC Database
         //


Reply via email to