You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by de...@apache.org on 2017/06/07 11:23:48 UTC

cxf git commit: [CXF-6881] Updating to JAX-RS API 2.1 milestone 8

Repository: cxf
Updated Branches:
  refs/heads/master cfe59def6 -> e91272173


[CXF-6881] Updating to JAX-RS API 2.1 milestone 8


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

Branch: refs/heads/master
Commit: e91272173b054ae8e5f1535b40765d6bbb545601
Parents: cfe59de
Author: Dennis Kieselhorst <de...@apache.org>
Authored: Wed Jun 7 13:23:35 2017 +0200
Committer: Dennis Kieselhorst <de...@apache.org>
Committed: Wed Jun 7 13:23:35 2017 +0200

----------------------------------------------------------------------
 parent/pom.xml                                  |  2 +-
 .../cxf/jaxrs/impl/ResponseBuilderImpl.java     | 29 +++++++--
 .../org/apache/cxf/jaxrs/impl/ResponseImpl.java | 67 ++++++++++++--------
 .../apache/cxf/jaxrs/impl/ResponseImplTest.java | 11 ++++
 .../cxf/jaxrs/client/AsyncInvokerImpl.java      | 21 +-----
 .../client/CompletionStageRxInvokerImpl.java    | 17 +----
 .../cxf/jaxrs/client/SyncInvokerImpl.java       | 14 ----
 .../jaxrs/client/spec/ClientBuilderImpl.java    | 19 ++++++
 .../cxf/jaxrs/client/spec/ClientImpl.java       |  4 +-
 .../client/spec/InvocationBuilderImpl.java      | 14 ----
 .../rx/client/ObservableRxInvokerImpl.java      | 14 ----
 11 files changed, 99 insertions(+), 113 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/e9127217/parent/pom.xml
----------------------------------------------------------------------
diff --git a/parent/pom.xml b/parent/pom.xml
index 7c89c27..bbf6241 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -111,7 +111,7 @@
         <cxf.geronimo.transaction.version>3.1.4</cxf.geronimo.transaction.version>
         <cxf.jasypt.bundle.version>1.9.0_1</cxf.jasypt.bundle.version>
         <cxf.javassist.version>3.19.0-GA</cxf.javassist.version>
-        <cxf.javax.ws.rs.version>2.1-m07</cxf.javax.ws.rs.version>
+        <cxf.javax.ws.rs.version>2.1-m08</cxf.javax.ws.rs.version>
         <cxf.jaxb.version>2.2.11</cxf.jaxb.version>
         <cxf.jaxb.impl.version>${cxf.jaxb.version}</cxf.jaxb.impl.version>
         <cxf.jaxb.core.version>${cxf.jaxb.version}</cxf.jaxb.core.version>

http://git-wip-us.apache.org/repos/asf/cxf/blob/e9127217/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ResponseBuilderImpl.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ResponseBuilderImpl.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ResponseBuilderImpl.java
index 0d87387..49f3dbf 100644
--- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ResponseBuilderImpl.java
+++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ResponseBuilderImpl.java
@@ -45,6 +45,7 @@ import org.apache.cxf.phase.PhaseInterceptorChain;
 public class ResponseBuilderImpl extends ResponseBuilder implements Cloneable {
 
     private int status = 200;
+    private String reasonPhrase;
     private boolean statusSet;
     private Object entity;
     private MultivaluedMap<String, Object> metadata = new MetadataMap<String, Object>();
@@ -56,6 +57,7 @@ public class ResponseBuilderImpl extends ResponseBuilder implements Cloneable {
     private ResponseBuilderImpl(ResponseBuilderImpl copy) {
         status = copy.status;
         statusSet = copy.statusSet;
+        reasonPhrase = copy.reasonPhrase;
         metadata.putAll(copy.metadata);
         entity = copy.entity;
     }
@@ -64,7 +66,7 @@ public class ResponseBuilderImpl extends ResponseBuilder implements Cloneable {
         if (entity == null && !statusSet) {
             status = 204;
         }
-        ResponseImpl r = new ResponseImpl(status);
+        ResponseImpl r = new ResponseImpl(status, null, reasonPhrase);
         MetadataMap<String, Object> m =
             new MetadataMap<String, Object>(metadata, false, true);
         r.addMetadata(m);
@@ -73,15 +75,27 @@ public class ResponseBuilderImpl extends ResponseBuilder implements Cloneable {
         return r;
     }
 
-    public ResponseBuilder status(int s) {
-        if (s < 100 || s > 599) {
-            throw new IllegalArgumentException("Illegal status value : " + s);
-        }
-        status = s;
+    public ResponseBuilder status(int statusCode) {
+        validateStatusCode(statusCode);
+        status = statusCode;
+        statusSet = true;
+        return this;
+    }
+
+    public ResponseBuilder status(int statusCode, String reason) {
+        validateStatusCode(statusCode);
+        status = statusCode;
         statusSet = true;
+        reasonPhrase = reason;
         return this;
     }
 
+    private void validateStatusCode(int statusCode) {
+        if (statusCode < 100 || statusCode > 599) {
+            throw new IllegalArgumentException("Illegal status value : " + statusCode);
+        }
+    }
+
     public ResponseBuilder entity(Object e) {
         entity = e;
         return this;
@@ -224,6 +238,7 @@ public class ResponseBuilderImpl extends ResponseBuilder implements Cloneable {
         entity = null;
         annotations = null;
         status = 200;
+        reasonPhrase = null;
     }
 
     private ResponseBuilder setHeader(String name, Object value) {
@@ -252,7 +267,7 @@ public class ResponseBuilderImpl extends ResponseBuilder implements Cloneable {
 
     private boolean valueExists(String key, Object value) {
         List<Object> values = metadata.get(key);
-        return values == null ? false : values.contains(value);
+        return values != null && values.contains(value);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/cxf/blob/e9127217/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ResponseImpl.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ResponseImpl.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ResponseImpl.java
index 13953e6..ce81189 100644
--- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ResponseImpl.java
+++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ResponseImpl.java
@@ -63,7 +63,7 @@ import org.apache.cxf.message.MessageUtils;
 
 public final class ResponseImpl extends Response {
 
-    private int status;
+    private StatusType status;
     private Object entity;
     private Annotation[] entityAnnotations;
     private MultivaluedMap<String, Object> metadata;
@@ -73,21 +73,30 @@ public final class ResponseImpl extends Response {
     private boolean entityBufferred;
     private Object lastEntity;
 
-    ResponseImpl(int s) {
-        this.status = s;
+    ResponseImpl(int statusCode) {
+        this.status = createStatusType(statusCode, null);
     }
 
-    ResponseImpl(int s, Object e) {
-        this.status = s;
-        this.entity = e;
+    ResponseImpl(int statusCode, Object entity) {
+        this(statusCode);
+        this.entity = entity;
+    }
+
+    ResponseImpl(int statusCode, Object entity, String reasonPhrase) {
+        this.status = createStatusType(statusCode, reasonPhrase);
+        this.entity = entity;
     }
 
     public void addMetadata(MultivaluedMap<String, Object> meta) {
         this.metadata = meta;
     }
 
-    public void setStatus(int s) {
-        this.status = s;
+    public void setStatus(int statusCode) {
+        this.status = createStatusType(statusCode, null);
+    }
+
+    public void setStatus(int statusCode, String reasonPhrase) {
+        this.status = createStatusType(statusCode, reasonPhrase);
     }
 
     public void setEntity(Object e, Annotation[] anns) {
@@ -112,26 +121,11 @@ public final class ResponseImpl extends Response {
     }
 
     public int getStatus() {
-        return status;
+        return status.getStatusCode();
     }
 
     public StatusType getStatusInfo() {
-        return new Response.StatusType() {
-
-            public Family getFamily() {
-                return Response.Status.Family.familyOf(ResponseImpl.this.status);
-            }
-
-            public String getReasonPhrase() {
-                Response.Status statusEnum = Response.Status.fromStatusCode(ResponseImpl.this.status);
-                return statusEnum != null ? statusEnum.getReasonPhrase() : "";
-            }
-
-            public int getStatusCode() {
-                return ResponseImpl.this.status;
-            }
-
-        };
+        return status;
     }
 
     public Object getActualEntity() {
@@ -481,4 +475,27 @@ public final class ResponseImpl extends Response {
             throw new IllegalStateException("Entity is not available");
         }
     }
+
+    private Response.StatusType createStatusType(int statusCode, String reasonPhrase) {
+        return new Response.StatusType() {
+
+            public Family getFamily() {
+                return Response.Status.Family.familyOf(statusCode);
+            }
+
+            public String getReasonPhrase() {
+                if (reasonPhrase != null) {
+                    return reasonPhrase;
+                } else {
+                    Response.Status statusEnum = Response.Status.fromStatusCode(statusCode);
+                    return statusEnum != null ? statusEnum.getReasonPhrase() : "";
+                }
+            }
+
+            public int getStatusCode() {
+                return statusCode;
+            }
+
+        };
+    }
 }

http://git-wip-us.apache.org/repos/asf/cxf/blob/e9127217/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/ResponseImplTest.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/ResponseImplTest.java b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/ResponseImplTest.java
index 60d69b1..38e9a9a 100644
--- a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/ResponseImplTest.java
+++ b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/ResponseImplTest.java
@@ -225,6 +225,17 @@ public class ResponseImplTest extends Assert {
         assertEquals("", si.getReasonPhrase());
     }
 
+    @Test
+    public void testReasonPhrase() {
+        int statusCode = 111;
+        String reasonPhrase = "custom info";
+        Response response = Response.status(statusCode, reasonPhrase).build();
+
+        assertNotNull(response);
+        assertEquals(statusCode, response.getStatus());
+        assertEquals(reasonPhrase, response.getStatusInfo().getReasonPhrase());
+    }
+
     @Test(expected = IllegalStateException.class)
     public void testHasEntityAfterClose() {
         Response r = new ResponseImpl(200, new ByteArrayInputStream("data".getBytes()));

http://git-wip-us.apache.org/repos/asf/cxf/blob/e9127217/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/AsyncInvokerImpl.java
----------------------------------------------------------------------
diff --git a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/AsyncInvokerImpl.java b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/AsyncInvokerImpl.java
index b3a2e99..8988577 100644
--- a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/AsyncInvokerImpl.java
+++ b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/AsyncInvokerImpl.java
@@ -214,24 +214,5 @@ public class AsyncInvokerImpl implements AsyncInvoker {
                                      null,
                                      callback);
     }
-    @Override
-    public Future<Response> patch(Entity<?> entity) {
-        return method(HttpMethod.PATCH, entity);
-    }
-    
-    @Override
-    public <T> Future<T> patch(Entity<?> entity, Class<T> responseType) {
-        return method(HttpMethod.PATCH, entity, responseType);
-    }
-    
-    @Override
-    public <T> Future<T> patch(Entity<?> entity, GenericType<T> responseType) {
-        return method(HttpMethod.PATCH, entity, responseType);
-    }
- 
-    @Override
-    public <T> Future<T> patch(Entity<?> entity, InvocationCallback<T> callback) {
-        return method(HttpMethod.PATCH, entity, callback);
-    }
 
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/cxf/blob/e9127217/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/CompletionStageRxInvokerImpl.java
----------------------------------------------------------------------
diff --git a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/CompletionStageRxInvokerImpl.java b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/CompletionStageRxInvokerImpl.java
index 822948f..528d840 100644
--- a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/CompletionStageRxInvokerImpl.java
+++ b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/CompletionStageRxInvokerImpl.java
@@ -160,19 +160,4 @@ public class CompletionStageRxInvokerImpl implements CompletionStageRxInvoker {
         return wc.doInvokeAsyncStage(name, null, responseType.getRawType(), responseType.getType(), ex);
     }
 
-    @Override
-    public CompletionStage<Response> patch(Entity<?> entity) {
-        return method(HttpMethod.PATCH, entity);
-    }
-
-    @Override
-    public <T> CompletionStage<T> patch(Entity<?> entity, Class<T> responseType) {
-        return method(HttpMethod.PATCH, entity, responseType);
-    }
-
-    @Override
-    public <T> CompletionStage<T> patch(Entity<?> entity, GenericType<T> responseType) {
-        return method(HttpMethod.PATCH, entity, responseType);
-    }
-
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/cxf/blob/e9127217/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/SyncInvokerImpl.java
----------------------------------------------------------------------
diff --git a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/SyncInvokerImpl.java b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/SyncInvokerImpl.java
index 57b57e4..539f4bb 100644
--- a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/SyncInvokerImpl.java
+++ b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/SyncInvokerImpl.java
@@ -159,18 +159,4 @@ public class SyncInvokerImpl implements SyncInvoker {
         return wc;
     }
 
-    @Override
-    public Response patch(Entity<?> entity) {
-        return method(HttpMethod.PATCH, entity);
-    }
-
-    @Override
-    public <T> T patch(Entity<?> entity, Class<T> responseType) {
-        return method(HttpMethod.PATCH, entity, responseType);
-    }
-
-    @Override
-    public <T> T patch(Entity<?> entity, GenericType<T> responseType) {
-        return method(HttpMethod.PATCH, entity, responseType);
-    }
 }

http://git-wip-us.apache.org/repos/asf/cxf/blob/e9127217/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/ClientBuilderImpl.java
----------------------------------------------------------------------
diff --git a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/ClientBuilderImpl.java b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/ClientBuilderImpl.java
index d2befac..ee02ef7 100644
--- a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/ClientBuilderImpl.java
+++ b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/ClientBuilderImpl.java
@@ -22,6 +22,7 @@ import java.security.KeyStore;
 import java.util.Map;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
 
 import javax.net.ssl.HostnameVerifier;
 import javax.net.ssl.KeyManagerFactory;
@@ -159,4 +160,22 @@ public class ClientBuilderImpl extends ClientBuilder {
     public ClientBuilder scheduledExecutorService(ScheduledExecutorService scheduledExecutorService) {
         return configImpl.property("scheduledExecutorService", scheduledExecutorService);
     }
+
+    @Override
+    public ClientBuilder connectTimeout(long timeout, TimeUnit timeUnit) {
+        validateTimeout(timeout);
+        return property(ClientImpl.HTTP_CONNECTION_TIMEOUT_PROP, timeUnit.toMillis(timeout));
+    }
+
+    @Override
+    public ClientBuilder readTimeout(long timeout, TimeUnit timeUnit) {
+        validateTimeout(timeout);
+        return property(ClientImpl.HTTP_RECEIVE_TIMEOUT_PROP, timeUnit.toMillis(timeout));
+    }
+
+    private void validateTimeout(long timeout) {
+        if (timeout < 0) {
+            throw new IllegalArgumentException("Negative timeout is not allowed.");
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/cxf/blob/e9127217/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/ClientImpl.java
----------------------------------------------------------------------
diff --git a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/ClientImpl.java b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/ClientImpl.java
index ec20e6c..8a19043 100644
--- a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/ClientImpl.java
+++ b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/ClientImpl.java
@@ -50,8 +50,8 @@ import org.apache.cxf.message.Message;
 import org.apache.cxf.transport.https.SSLUtils;
 
 public class ClientImpl implements Client {
-    private static final String HTTP_CONNECTION_TIMEOUT_PROP = "http.connection.timeout";
-    private static final String HTTP_RECEIVE_TIMEOUT_PROP = "http.receive.timeout";
+    static final String HTTP_CONNECTION_TIMEOUT_PROP = "http.connection.timeout";
+    static final String HTTP_RECEIVE_TIMEOUT_PROP = "http.receive.timeout";
     private static final String HTTP_PROXY_SERVER_PROP = "http.proxy.server.uri";
     private static final String HTTP_PROXY_SERVER_PORT_PROP = "http.proxy.server.port";
     private static final String HTTP_AUTOREDIRECT_PROP = "http.autoredirect";

http://git-wip-us.apache.org/repos/asf/cxf/blob/e9127217/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/InvocationBuilderImpl.java
----------------------------------------------------------------------
diff --git a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/InvocationBuilderImpl.java b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/InvocationBuilderImpl.java
index 62219b5..a053f7f 100644
--- a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/InvocationBuilderImpl.java
+++ b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/spec/InvocationBuilderImpl.java
@@ -385,18 +385,4 @@ public class InvocationBuilderImpl implements Invocation.Builder {
         return webClient.rx(rxCls, (ExecutorService)null);
     }
 
-    @Override
-    public Response patch(Entity<?> entity) {
-        return sync.patch(entity);
-    }
-
-    @Override
-    public <T> T patch(Entity<?> entity, Class<T> responseType) {
-        return sync.patch(entity, responseType);
-    }
-
-    @Override
-    public <T> T patch(Entity<?> entity, GenericType<T> responseType) {
-        return sync.patch(entity, responseType);
-    }
 }

http://git-wip-us.apache.org/repos/asf/cxf/blob/e9127217/rt/rs/extensions/rx/src/main/java/org/apache/cxf/jaxrs/rx/client/ObservableRxInvokerImpl.java
----------------------------------------------------------------------
diff --git a/rt/rs/extensions/rx/src/main/java/org/apache/cxf/jaxrs/rx/client/ObservableRxInvokerImpl.java b/rt/rs/extensions/rx/src/main/java/org/apache/cxf/jaxrs/rx/client/ObservableRxInvokerImpl.java
index 0a6033c..7487070 100644
--- a/rt/rs/extensions/rx/src/main/java/org/apache/cxf/jaxrs/rx/client/ObservableRxInvokerImpl.java
+++ b/rt/rs/extensions/rx/src/main/java/org/apache/cxf/jaxrs/rx/client/ObservableRxInvokerImpl.java
@@ -172,18 +172,4 @@ public class ObservableRxInvokerImpl implements ObservableRxInvoker {
         return cb.getObservable();
     }
 
-    @Override
-    public Observable<Response> patch(Entity<?> entity) {
-        return method(HttpMethod.PATCH, entity);
-    }
-
-    @Override
-    public <T> Observable<T> patch(Entity<?> entity, Class<T> responseType) {
-        return method(HttpMethod.PATCH, entity, responseType);
-    }
-
-    @Override
-    public <T> Observable<T> patch(Entity<?> entity, GenericType<T> responseType) {
-        return method(HttpMethod.PATCH, entity, responseType);
-    }
 }