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