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
//