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;
         }


Reply via email to