Repository: cxf
Updated Branches:
  refs/heads/2.7.x-fixes 5489c942f -> c0a179ca5


[CXF-5968] Make sure the old true/false values for the Async policy still work

Conflicts:
        
rt/transports/http-hc/src/main/java/org/apache/cxf/transport/http/asyncclient/AsyncHTTPConduit.java
        
rt/transports/http-hc/src/main/java/org/apache/cxf/transport/http/asyncclient/AsyncHTTPConduitFactory.java
        
rt/transports/http-netty/netty-client/src/main/java/org/apache/cxf/transport/http/netty/client/NettyHttpConduit.java
        
rt/transports/http-netty/netty-client/src/main/java/org/apache/cxf/transport/http/netty/client/NettyHttpConduitFactory.java


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/107bfdab
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/107bfdab
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/107bfdab

Branch: refs/heads/2.7.x-fixes
Commit: 107bfdab25d654a9291dc05bf241c8aca24e933a
Parents: 5489c94
Author: Daniel Kulp <dk...@apache.org>
Authored: Fri Aug 29 11:54:59 2014 -0400
Committer: Daniel Kulp <dk...@apache.org>
Committed: Tue Oct 7 13:18:26 2014 -0400

----------------------------------------------------------------------
 .../http/asyncclient/AsyncHTTPConduit.java      | 31 ++++++++-----------
 .../asyncclient/AsyncHTTPConduitFactory.java    | 32 ++++++++++++++------
 2 files changed, 36 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/107bfdab/rt/transports/http-hc/src/main/java/org/apache/cxf/transport/http/asyncclient/AsyncHTTPConduit.java
----------------------------------------------------------------------
diff --git 
a/rt/transports/http-hc/src/main/java/org/apache/cxf/transport/http/asyncclient/AsyncHTTPConduit.java
 
b/rt/transports/http-hc/src/main/java/org/apache/cxf/transport/http/asyncclient/AsyncHTTPConduit.java
index 48d3983..e4d8b22 100644
--- 
a/rt/transports/http-hc/src/main/java/org/apache/cxf/transport/http/asyncclient/AsyncHTTPConduit.java
+++ 
b/rt/transports/http-hc/src/main/java/org/apache/cxf/transport/http/asyncclient/AsyncHTTPConduit.java
@@ -138,25 +138,20 @@ public class AsyncHTTPConduit extends 
URLConnectionHTTPConduit {
         if (o == null) {
             o = factory.getUseAsyncPolicy();
         }
-        if (o instanceof String) {
-            o = UseAsyncPolicy.valueOf(o.toString().toUpperCase());
-        }
-        if (o instanceof UseAsyncPolicy) {
-            switch ((UseAsyncPolicy)o) {
-            case ALWAYS:
-                o = true;
-                break;
-            case NEVER:
-                o = false;
-                break;
-            case ASYNC_ONLY:
-            default:
-                o = !message.getExchange().isSynchronous();
-                break;
-            }
+        switch (UseAsyncPolicy.getPolicy(o)) {
+        case ALWAYS:
+            o = true;
+            break;
+        case NEVER:
+            o = false;
+            break;
+        case ASYNC_ONLY:
+        default:
+            o = !message.getExchange().isSynchronous();
+            break;
+        }
             
-        } 
-        if (uri.getScheme().equals("https") 
+        if (uri.getScheme().equals("https")
             && tlsClientParameters != null
             && tlsClientParameters.getSSLSocketFactory() != null) {
             //if they configured in an SSLSocketFactory, we cannot do anything

http://git-wip-us.apache.org/repos/asf/cxf/blob/107bfdab/rt/transports/http-hc/src/main/java/org/apache/cxf/transport/http/asyncclient/AsyncHTTPConduitFactory.java
----------------------------------------------------------------------
diff --git 
a/rt/transports/http-hc/src/main/java/org/apache/cxf/transport/http/asyncclient/AsyncHTTPConduitFactory.java
 
b/rt/transports/http-hc/src/main/java/org/apache/cxf/transport/http/asyncclient/AsyncHTTPConduitFactory.java
index e516e98..06cfa9e 100644
--- 
a/rt/transports/http-hc/src/main/java/org/apache/cxf/transport/http/asyncclient/AsyncHTTPConduitFactory.java
+++ 
b/rt/transports/http-hc/src/main/java/org/apache/cxf/transport/http/asyncclient/AsyncHTTPConduitFactory.java
@@ -108,7 +108,28 @@ public class AsyncHTTPConduitFactory implements 
HTTPConduitFactory {
     
     
     public static enum UseAsyncPolicy {
-        ALWAYS, ASYNC_ONLY, NEVER
+        ALWAYS, ASYNC_ONLY, NEVER;
+        
+        public static UseAsyncPolicy getPolicy(Object st) {
+            if (st instanceof UseAsyncPolicy) {
+                return (UseAsyncPolicy)st;
+            } else if (st instanceof String) {
+                String s = ((String)st).toUpperCase();
+                if ("ALWAYS".equals(s)) {
+                    return ALWAYS;
+                } else if ("NEVER".equals(s)) {
+                    return NEVER;
+                } else if ("ASYNC_ONLY".equals(s)) {
+                    return ASYNC_ONLY;
+                } else {
+                    st = Boolean.parseBoolean(s);
+                }
+            }
+            if (st instanceof Boolean) {
+                return ((Boolean)st).booleanValue() ? ALWAYS : NEVER;
+            }
+            return ASYNC_ONLY;
+        }
     };
         
     
@@ -191,14 +212,7 @@ public class AsyncHTTPConduitFactory implements 
HTTPConduitFactory {
         if (st == null) {
             st = SystemPropertyAction.getPropertyOrNull(USE_POLICY);
         }
-        if (st instanceof UseAsyncPolicy) {
-            policy = (UseAsyncPolicy)st;
-        } else if (st instanceof String) {
-            policy = UseAsyncPolicy.valueOf((String)st);
-        } else {
-            //policy = UseAsyncPolicy.ALWAYS;
-            policy = UseAsyncPolicy.ASYNC_ONLY;
-        }
+        policy = UseAsyncPolicy.getPolicy(st);
         
         maxConnections = getInt(s.get(MAX_CONNECTIONS), maxConnections);
         connectionTTL = getInt(s.get(CONNECTION_TTL), connectionTTL);

Reply via email to