Author: dblevins
Date: Wed Jun 2 07:01:41 2010
New Revision: 950391
URL: http://svn.apache.org/viewvc?rev=950391&view=rev
Log:
Set the default units for all Duration pooling options
OPENEJB-1235
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessInstanceManager.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Pool.java
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessInstanceManager.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessInstanceManager.java?rev=950391&r1=950390&r2=950391&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessInstanceManager.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessInstanceManager.java
Wed Jun 2 07:01:41 2010
@@ -392,18 +392,18 @@ public class StatelessInstanceManager {
final Pool.Builder builder = new Pool.Builder(poolBuilder);
- String timeString = options.get("Timeout",
this.accessTimeout.toString());
- timeString = options.get("AccessTimeout", timeString);
- Duration accessTimeout = new Duration(timeString);
- if (accessTimeout.getUnit() == null)
accessTimeout.setUnit(TimeUnit.MILLISECONDS);
-
- String s = options.get("CloseTimeout", this.closeTimeout.toString());
- Duration closeTimeout = new Duration(s);
- if (closeTimeout.getUnit() == null)
closeTimeout.setUnit(TimeUnit.MILLISECONDS);
+ Duration accessTimeout = getDuration(options, "Timeout",
this.accessTimeout, TimeUnit.MILLISECONDS);
+ accessTimeout = getDuration(options, "AccessTimeout", accessTimeout,
TimeUnit.MILLISECONDS);
+
+ Duration closeTimeout = getDuration(options, "CloseTimeout",
this.closeTimeout, TimeUnit.MINUTES);
final ObjectRecipe recipe = PassthroughFactory.recipe(builder);
recipe.setAllProperties(deploymentInfo.getProperties());
+ setDefault(builder.getMaxAge(), TimeUnit.HOURS);
+ setDefault(builder.getIdleTimeout(), TimeUnit.MINUTES);
+ setDefault(builder.getInterval(), TimeUnit.MINUTES);
+
builder.setSupplier(new StatelessSupplier(deploymentInfo));
builder.setExecutor(executor);
@@ -460,6 +460,17 @@ public class StatelessInstanceManager {
data.getPool().start();
}
+ private void setDefault(Duration duration, TimeUnit unit) {
+ if (duration.getUnit() == null) duration.setUnit(unit);
+ }
+
+ private Duration getDuration(Options options, String property, Duration
defaultValue, TimeUnit defaultUnit) {
+ String s = options.get(property, defaultValue.toString());
+ Duration duration = new Duration(s);
+ if (duration.getUnit() == null) duration.setUnit(defaultUnit);
+ return duration;
+ }
+
private Instance createInstance(CoreDeploymentInfo deploymentInfo) {
ThreadContext ctx = new ThreadContext(deploymentInfo, null);
ThreadContext oldCallContext = ThreadContext.enter(ctx);
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Pool.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Pool.java?rev=950391&r1=950390&r2=950391&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Pool.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Pool.java
Wed Jun 2 07:01:41 2010
@@ -943,6 +943,22 @@ public class Pool<T> {
return maxAge;
}
+ public boolean isStrict() {
+ return strict;
+ }
+
+ public Duration getIdleTimeout() {
+ return idleTimeout;
+ }
+
+ public Duration getInterval() {
+ return interval;
+ }
+
+ public boolean isReplaceAged() {
+ return replaceAged;
+ }
+
public void setMaxAgeOffset(double maxAgeOffset) {
this.maxAgeOffset = maxAgeOffset;
}