You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2018/02/22 19:48:14 UTC
[isis] 01/01: ISIS-1779 introduce resteasy legacy layer
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch ISIS-1779-jax-rs-2
in repository https://gitbox.apache.org/repos/asf/isis.git
commit 3d7b6fd96c88945651ce039015c4af04e124441a
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Feb 20 09:00:02 2018 +0100
ISIS-1779 introduce resteasy legacy layer
introduces o.a.i.viewer.legacy.RestEasyLegacy
as a resteasy legacy layer to ease transition
replaces jboss-jaxrs-api_2.0_spec (1.0.0.Final)
with jboss-jaxrs-api (3.0.12.Final)
adding a lot of TODO markers
replace org.jboss.resteasy.client.core.executors.ApacheHttpClient4Executor
with new o.a.i.viewer.legacy.ClientExecutor
---
core/applib/pom.xml | 9 +-
core/pom.xml | 17 +++
.../apache/isis/viewer/legacy/ClientExecutor.java | 121 +++++++++++++++++++++
.../ClientRequest.java} | 34 +++---
.../ClientRequestFactory.java} | 43 ++++----
.../apache/isis/viewer/legacy/RestEasyLegacy.java | 87 +++++++++++++++
.../restfulobjects/applib/LinkRepresentation.java | 3 +-
.../restfulobjects/applib/RestfulHttpMethod.java | 2 +-
.../applib/client/ClientRequestConfigurer.java | 15 +--
.../applib/client/RestfulClient.java | 32 ++----
.../applib/client/RestfulRequest.java | 10 +-
.../applib/domainobjects/DomainObjectResource.java | 30 +++--
.../domainobjects/DomainServiceResource.java | 14 +--
.../applib/domaintypes/DomainTypeResource.java | 19 ++--
.../applib/homepage/HomePageResource.java | 12 +-
.../restfulobjects/applib/user/UserResource.java | 6 +-
.../restfulobjects/applib/util/JsonMapper.java | 6 +-
.../applib/version/VersionResource.java | 3 +-
.../conneg/IsisPrettyPrintingProcessor.java | 2 +-
.../PreProcessInterceptorForIsisSession.java | 14 ++-
20 files changed, 351 insertions(+), 128 deletions(-)
diff --git a/core/applib/pom.xml b/core/applib/pom.xml
index 7fa9feb..8a37233 100644
--- a/core/applib/pom.xml
+++ b/core/applib/pom.xml
@@ -79,10 +79,17 @@
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jcdi_1.0_spec</artifactId>
</dependency>
+
+ <!-- replaced since Isis 2.0.0 by org.jboss.resteasy:jaxrs-api
<dependency>
<groupId>org.jboss.spec.javax.ws.rs</groupId>
<artifactId>jboss-jaxrs-api_2.0_spec</artifactId>
- </dependency>
+ </dependency> -->
+ <dependency>
+ <groupId>org.jboss.resteasy</groupId>
+ <artifactId>jaxrs-api</artifactId>
+ </dependency>
+
<dependency>
<groupId>org.axonframework</groupId>
diff --git a/core/pom.xml b/core/pom.xml
index 1c5158b..6b90ac7 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -140,6 +140,12 @@
<log4jdbc-remix.version>0.2.7</log4jdbc-remix.version>
<resteasy-jaxrs.version>3.0.24.Final</resteasy-jaxrs.version>
+ <!-- for JEE 7 JAX-RS API 2.0 -->
+ <!-- <resteasy-jaxrs.version>3.1.4.Final</resteasy-jaxrs.version> -->
+
+ <!-- for JEE 8 JAX-RS API 2.1 -->
+ <resteasy-jaxrs.version>4.0.0.Beta1</resteasy-jaxrs.version>
+
<jetty.version>9.4.3.v20170317</jetty.version>
<wicket.version>7.9.0</wicket.version>
@@ -184,7 +190,11 @@
<javax-mail.version>1.4.7</javax-mail.version>
+ <!-- replaced since Isis 2.0.0 by jboss-jaxrs-api
<jboss-jaxrs-api_2.0_spec.version>1.0.0.Final</jboss-jaxrs-api_2.0_spec.version>
+ -->
+ <jboss-jaxrs-api.version>3.0.12.Final</jboss-jaxrs-api.version>
+
</properties>
<scm>
@@ -2012,11 +2022,18 @@ ${license.additional-notes}
<version>${geronimo-jcdi_1.0_spec.version}</version>
</dependency>
+ <!-- replaced since Isis 2.0.0 by org.jboss.resteasy:jaxrs-api
<dependency>
<groupId>org.jboss.spec.javax.ws.rs</groupId>
<artifactId>jboss-jaxrs-api_2.0_spec</artifactId>
<version>${jboss-jaxrs-api_2.0_spec.version}</version>
</dependency>
+ -->
+ <dependency>
+ <groupId>org.jboss.resteasy</groupId>
+ <artifactId>jaxrs-api</artifactId>
+ <version>${jboss-jaxrs-api.version}</version>
+ </dependency>
<!-- javax APIs -->
diff --git a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/legacy/ClientExecutor.java b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/legacy/ClientExecutor.java
new file mode 100644
index 0000000..2f18caa
--- /dev/null
+++ b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/legacy/ClientExecutor.java
@@ -0,0 +1,121 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.isis.viewer.legacy;
+
+import java.net.URI;
+import java.util.AbstractMap;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import javax.ws.rs.client.Client;
+import javax.ws.rs.client.Entity;
+import javax.ws.rs.client.Invocation;
+import javax.ws.rs.client.Invocation.Builder;
+import javax.ws.rs.client.WebTarget;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriBuilder;
+
+/**
+ * Compatibility layer, legacy of deprecated resteasy client API.
+ *
+ */
+public interface ClientExecutor {
+
+ ClientRequest createRequest(UriBuilder uriBuilder);
+ WebTarget webTarget(URI baseUri);
+
+ static ClientExecutor of(final Client client) {
+ return new ClientExecutor() {
+
+ @Override
+ public ClientRequest createRequest(UriBuilder uriBuilder) {
+
+ return new ClientRequest() {
+
+ final WebTarget target = client.target(uriBuilder);
+
+ final List<MediaType> accept = new ArrayList<>();
+ final List<Map.Entry<String, String>> header = new ArrayList<>();
+
+ private Entity<String> payload;
+
+ // TODO [andi-huber] just a wild guess
+ private String method = "get";
+
+ @Override
+ public String getHttpMethod() {
+ return method;
+ }
+
+ @Override
+ public void setHttpMethod(String method) {
+ this.method = method;
+ }
+
+ @Override
+ public void accept(MediaType mediaType) {
+ accept.add(mediaType);
+ }
+
+ @Override
+ public void header(String headerName, String value) {
+ header.add(new AbstractMap.SimpleEntry<String, String>(headerName, value));
+ }
+
+ @Override
+ public void addQueryParameter(String param, String arg) {
+ target.queryParam(param, arg);
+ }
+
+ @Override
+ public void jsonPayload(String jsonString) {
+ payload = Entity.json(jsonString);
+ }
+
+ @Override
+ public Response execute() {
+ final Builder builder = target.request();
+
+ accept.stream()
+ .forEach(builder::accept);
+ header.stream()
+ .forEach(e->builder.header(e.getKey(), e.getValue()));
+
+ final Invocation invocation = payload==null
+ ? builder.build(method)
+ : builder.build(method, payload);
+
+ return invocation.invoke();
+ }
+
+ };
+ }
+
+ @Override
+ public WebTarget webTarget(URI baseUri) {
+ return client.target(baseUri);
+ }
+
+ };
+ }
+
+
+}
diff --git a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/version/VersionResource.java b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/legacy/ClientRequest.java
similarity index 59%
copy from core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/version/VersionResource.java
copy to core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/legacy/ClientRequest.java
index 535fc72..3fe5886 100644
--- a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/version/VersionResource.java
+++ b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/legacy/ClientRequest.java
@@ -16,30 +16,28 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.viewer.restfulobjects.applib.version;
+package org.apache.isis.viewer.legacy;
-import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulMediaType;
-import org.jboss.resteasy.annotations.ClientResponseType;
-
-@Path("/version")
-public interface VersionResource {
+/**
+ * Compatibility layer, legacy of deprecated resteasy client API.
+ *
+ */
+public interface ClientRequest {
- @GET
- @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_VERSION })
- @ClientResponseType(entityType = String.class)
- public Response version();
+ void accept(MediaType mediaType);
- @DELETE
- public Response deleteVersionNotAllowed();
+ void header(String headerName, String value);
- @PUT
- public Response putVersionNotAllowed();
+ void setHttpMethod(String httpMethod);
+ String getHttpMethod();
+
+ void addQueryParameter(String param, String arg);
+
+ void jsonPayload(String jsonString);
- @POST
- public Response postVersionNotAllowed();
+ Response execute();
-}
\ No newline at end of file
+}
diff --git a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/version/VersionResource.java b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/legacy/ClientRequestFactory.java
similarity index 55%
copy from core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/version/VersionResource.java
copy to core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/legacy/ClientRequestFactory.java
index 535fc72..2830622 100644
--- a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/version/VersionResource.java
+++ b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/legacy/ClientRequestFactory.java
@@ -16,30 +16,35 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.viewer.restfulobjects.applib.version;
+package org.apache.isis.viewer.legacy;
-import javax.ws.rs.*;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
+import java.net.URI;
-import org.apache.isis.viewer.restfulobjects.applib.RestfulMediaType;
-import org.jboss.resteasy.annotations.ClientResponseType;
+/**
+ * Compatibility layer, legacy of deprecated resteasy client API.
+ *
+ */
+public interface ClientRequestFactory {
-@Path("/version")
-public interface VersionResource {
+ <T> T createProxy(Class<T> clazz);
- @GET
- @Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_VERSION })
- @ClientResponseType(entityType = String.class)
- public Response version();
+ URI getBase();
- @DELETE
- public Response deleteVersionNotAllowed();
+ static ClientRequestFactory of(final ClientExecutor clientExecutor, final URI baseUri) {
+
+ return new ClientRequestFactory() {
- @PUT
- public Response putVersionNotAllowed();
+ @Override
+ public <T> T createProxy(Class<T> clazz) {
+ return RestEasyLegacy.proxy(clientExecutor.webTarget(baseUri), clazz);
+ }
- @POST
- public Response postVersionNotAllowed();
+ @Override
+ public URI getBase() {
+ return baseUri;
+ }
+
+ };
+ }
-}
\ No newline at end of file
+}
diff --git a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/legacy/RestEasyLegacy.java b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/legacy/RestEasyLegacy.java
new file mode 100644
index 0000000..a9cd4b6
--- /dev/null
+++ b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/legacy/RestEasyLegacy.java
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.isis.viewer.legacy;
+
+import java.lang.reflect.Method;
+
+import javax.ws.rs.NotSupportedException;
+import javax.ws.rs.client.WebTarget;
+import javax.ws.rs.core.Response;
+
+/**
+ * Compatibility layer, legacy of deprecated resteasy client API.
+ *
+ */
+public class RestEasyLegacy {
+
+ public static String getEntityAsStringFrom(Response response) {
+
+ final Object result = response.getEntity();
+
+ if(result == null)
+ return null;
+
+ if(result instanceof String) {
+ return (String) result;
+ }
+
+ // TODO [andi-huber] just a wild guess
+ return response.readEntity(String.class);
+
+ // legacy code ...
+ // final ClientResponse<?> clientResponse = (ClientResponse<?>) response;
+ // return clientResponse.getEntity(String.class);
+ }
+
+ public static void setReturnTypeToString(Response response) {
+
+ // TODO [andi-huber] why is this needed at all?
+
+ // legacy code ...
+ // final BaseClientResponse<String> restEasyResponse = (BaseClientResponse<String>) response;
+ // restEasyResponse.setReturnType(String.class);
+
+ System.err.println("WARN RestEasyLegacy - setReturnTypeToString(Response) not implemented!");
+
+ }
+
+ @SuppressWarnings("unchecked")
+ public static <T> T proxy(WebTarget webTarget, Class<T> clazz) {
+
+ // legacy of
+ // final org.jboss.resteasy.client.jaxrs.ResteasyWebTarget target =
+ // (org.jboss.resteasy.client.jaxrs.ResteasyWebTarget) webTarget;
+ // return target.proxy(clazz);
+
+ try {
+ // [andi-huber] resort to reflection, since we wan't to get rid of resteasy legacy
+ // first step is to remove compile time dependencies
+
+ final Method proxyMethod =
+ webTarget.getClass().getMethod("proxy", new Class<?>[]{Class.class});
+ return (T) proxyMethod.invoke(webTarget, clazz);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ throw new NotSupportedException("proxy not supported by this JAX-RS implementation");
+
+ }
+
+}
diff --git a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/LinkRepresentation.java b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/LinkRepresentation.java
index a883fe6..3b4d691 100644
--- a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/LinkRepresentation.java
+++ b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/LinkRepresentation.java
@@ -23,10 +23,11 @@ import javax.ws.rs.core.MediaType;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
import com.fasterxml.jackson.databind.node.ObjectNode;
+
+import org.apache.isis.viewer.legacy.ClientExecutor;
import org.apache.isis.viewer.restfulobjects.applib.client.ClientRequestConfigurer;
import org.apache.isis.viewer.restfulobjects.applib.client.RestfulRequest;
import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse;
-import org.jboss.resteasy.client.ClientExecutor;
public final class LinkRepresentation extends JsonRepresentation {
diff --git a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/RestfulHttpMethod.java b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/RestfulHttpMethod.java
index 6819e7b..b7055b2 100644
--- a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/RestfulHttpMethod.java
+++ b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/RestfulHttpMethod.java
@@ -18,8 +18,8 @@
*/
package org.apache.isis.viewer.restfulobjects.applib;
+import org.apache.isis.viewer.legacy.ClientRequest;
import org.apache.isis.viewer.restfulobjects.applib.client.ClientRequestConfigurer;
-import org.jboss.resteasy.client.ClientRequest;
public enum RestfulHttpMethod {
GET(javax.ws.rs.HttpMethod.GET, ArgStrategy.QUERY_STRING),
diff --git a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/client/ClientRequestConfigurer.java b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/client/ClientRequestConfigurer.java
index 61b9240..b98f8f0 100644
--- a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/client/ClientRequestConfigurer.java
+++ b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/client/ClientRequestConfigurer.java
@@ -21,16 +21,15 @@ package org.apache.isis.viewer.restfulobjects.applib.client;
import java.util.Map;
import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.UriBuilder;
+import org.apache.isis.viewer.legacy.ClientExecutor;
+import org.apache.isis.viewer.legacy.ClientRequest;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.LinkRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.RestfulHttpMethod;
import org.apache.isis.viewer.restfulobjects.applib.client.RestfulRequest.RequestParameter;
import org.apache.isis.viewer.restfulobjects.applib.util.UrlEncodingUtils;
-import org.jboss.resteasy.client.ClientExecutor;
-import org.jboss.resteasy.client.ClientRequest;
import org.jboss.resteasy.specimpl.ResteasyUriBuilder;
/**
@@ -45,7 +44,10 @@ import org.jboss.resteasy.specimpl.ResteasyUriBuilder;
*/
public class ClientRequestConfigurer {
- public static ClientRequestConfigurer create(final ClientExecutor executor, final String uriTemplate) {
+ public static ClientRequestConfigurer create(
+ final ClientExecutor executor,
+ final String uriTemplate)
+ {
final UriBuilder uriBuilder = new ResteasyUriBuilder().uriTemplate(uriTemplate);
final ClientRequest clientRequest = executor.createRequest(uriBuilder);
return new ClientRequestConfigurer(clientRequest, uriBuilder);
@@ -127,7 +129,7 @@ public class ClientRequestConfigurer {
* {@link RestfulHttpMethod#setUpArgs(ClientRequestConfigurer, JsonRepresentation)}
*/
public ClientRequestConfigurer body(final JsonRepresentation requestArgs) {
- clientRequest.body(MediaType.APPLICATION_JSON_TYPE, requestArgs.toString());
+ clientRequest.jsonPayload(requestArgs.toString());
return this;
}
@@ -149,12 +151,11 @@ public class ClientRequestConfigurer {
* {@link RestfulHttpMethod#setUpArgs(ClientRequestConfigurer, JsonRepresentation)}
*/
public ClientRequestConfigurer queryArgs(final JsonRepresentation requestArgs) {
- final MultivaluedMap<String, String> queryParameters = clientRequest.getQueryParameters();
for (final Map.Entry<String, JsonRepresentation> entry : requestArgs.mapIterable()) {
final String param = entry.getKey();
final JsonRepresentation argRepr = entry.getValue();
final String arg = UrlEncodingUtils.urlEncode(argRepr.asArg());
- queryParameters.add(param, arg);
+ clientRequest.addQueryParameter(param, arg);
}
return this;
}
diff --git a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/client/RestfulClient.java b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/client/RestfulClient.java
index 90b3a1f..ee5985f 100644
--- a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/client/RestfulClient.java
+++ b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/client/RestfulClient.java
@@ -20,17 +20,13 @@ package org.apache.isis.viewer.restfulobjects.applib.client;
import java.net.URI;
+import javax.ws.rs.client.Client;
+import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
-import org.apache.http.client.HttpClient;
-import org.apache.http.conn.ClientConnectionManager;
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
-import org.jboss.resteasy.client.ClientExecutor;
-import org.jboss.resteasy.client.ClientRequestFactory;
-import org.jboss.resteasy.client.core.executors.ApacheHttpClient4Executor;
-
+import org.apache.isis.viewer.legacy.ClientExecutor;
+import org.apache.isis.viewer.legacy.ClientRequestFactory;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.LinkRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.RestfulHttpMethod;
@@ -55,25 +51,17 @@ public class RestfulClient {
/**
- * Using {@link ApacheHttpClient4Executor} and {@link DefaultHttpClient}.
+ * Using {@link javax.ws.rs.client.Client}.
*/
public RestfulClient(final URI baseUri) {
- this(baseUri, new ThreadSafeClientConnManager());
- }
-
- /**
- * Using {@link ApacheHttpClient4Executor} and {@link DefaultHttpClient}.
- */
- public RestfulClient(final URI baseUri, ClientConnectionManager clientConnectionManager) {
- this(baseUri, new DefaultHttpClient(clientConnectionManager));
+ this(baseUri, ClientBuilder.newClient());
}
-
/**
- * Using {@link ApacheHttpClient4Executor} and specified {@link HttpClient}.
+ * Using {@link javax.ws.rs.client.Client}.
*/
- public RestfulClient(final URI baseUri, HttpClient client) {
- this(baseUri, new ApacheHttpClient4Executor(client));
+ public RestfulClient(final URI baseUri, Client client) {
+ this(baseUri, ClientExecutor.of(client));
}
/**
@@ -81,7 +69,7 @@ public class RestfulClient {
*/
public RestfulClient(final URI baseUri, final ClientExecutor clientExecutor) {
this.executor = clientExecutor;
- this.clientRequestFactory = new ClientRequestFactory(clientExecutor, baseUri);
+ this.clientRequestFactory = ClientRequestFactory.of(clientExecutor, baseUri);
this.homePageResource = clientRequestFactory.createProxy(HomePageResource.class);
this.userResource = clientRequestFactory.createProxy(UserResource.class);
diff --git a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/client/RestfulRequest.java b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/client/RestfulRequest.java
index 77e0ac2..fbdbd5a 100644
--- a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/client/RestfulRequest.java
+++ b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/client/RestfulRequest.java
@@ -25,8 +25,9 @@ import java.util.Map;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import com.google.common.collect.Maps;
-import org.jboss.resteasy.client.ClientRequest;
-import org.jboss.resteasy.client.core.BaseClientResponse;
+
+import org.apache.isis.viewer.legacy.ClientRequest;
+import org.apache.isis.viewer.legacy.RestEasyLegacy;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.util.Parser;
@@ -173,10 +174,7 @@ public final class RestfulRequest {
final ClientRequest clientRequest = clientRequestConfigurer.getClientRequest();
final Response response = clientRequest.execute();
- // this is a bit hacky
- @SuppressWarnings("unchecked")
- final BaseClientResponse<String> restEasyResponse = (BaseClientResponse<String>) response;
- restEasyResponse.setReturnType(String.class);
+ RestEasyLegacy.setReturnTypeToString(response);
return RestfulResponse.ofT(response);
} catch (final Exception ex) {
diff --git a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/domainobjects/DomainObjectResource.java b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/domainobjects/DomainObjectResource.java
index aa29ef7..625e046 100644
--- a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/domainobjects/DomainObjectResource.java
+++ b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/domainobjects/DomainObjectResource.java
@@ -32,8 +32,6 @@ import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
-import org.jboss.resteasy.annotations.ClientResponseType;
-
import org.apache.isis.viewer.restfulobjects.applib.RestfulMediaType;
@Path("/objects")
@@ -46,7 +44,7 @@ public interface DomainObjectResource {
MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_OBJECT, RestfulMediaType.APPLICATION_JSON_ERROR,
MediaType.APPLICATION_XML, RestfulMediaType.APPLICATION_XML_OBJECT, RestfulMediaType.APPLICATION_XML_ERROR
})
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public Response persist(@PathParam("domainType") String domainType, final InputStream object);
// //////////////////////////////////////////////////////////
@@ -60,7 +58,7 @@ public interface DomainObjectResource {
MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_OBJECT, RestfulMediaType.APPLICATION_JSON_ERROR,
MediaType.APPLICATION_XML, RestfulMediaType.APPLICATION_XML_OBJECT, RestfulMediaType.APPLICATION_XML_ERROR
})
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public Response object(@PathParam("domainType") String domainType, @PathParam("instanceId") final String instanceId);
@PUT
@@ -70,7 +68,7 @@ public interface DomainObjectResource {
MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_OBJECT, RestfulMediaType.APPLICATION_JSON_ERROR,
MediaType.APPLICATION_XML, RestfulMediaType.APPLICATION_XML_OBJECT, RestfulMediaType.APPLICATION_XML_ERROR
})
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public Response object(@PathParam("domainType") String domainType, @PathParam("instanceId") final String instanceId, final InputStream arguments);
@DELETE
@@ -111,7 +109,7 @@ public interface DomainObjectResource {
MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_OBJECT_PROPERTY, RestfulMediaType.APPLICATION_JSON_ERROR,
MediaType.APPLICATION_XML, RestfulMediaType.APPLICATION_XML_OBJECT_PROPERTY, RestfulMediaType.APPLICATION_XML_ERROR
})
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public Response propertyDetails(@PathParam("domainType") String domainType, @PathParam("instanceId") final String instanceId, @PathParam("propertyId") final String propertyId);
@PUT
@@ -121,7 +119,7 @@ public interface DomainObjectResource {
MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_OBJECT_PROPERTY, RestfulMediaType.APPLICATION_JSON_ERROR,
MediaType.APPLICATION_XML, RestfulMediaType.APPLICATION_XML_OBJECT_PROPERTY, RestfulMediaType.APPLICATION_XML_ERROR
})
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public Response modifyProperty(@PathParam("domainType") String domainType, @PathParam("instanceId") final String instanceId, @PathParam("propertyId") final String propertyId, final InputStream arguments);
@DELETE
@@ -131,7 +129,7 @@ public interface DomainObjectResource {
MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_OBJECT_PROPERTY, RestfulMediaType.APPLICATION_JSON_ERROR,
MediaType.APPLICATION_XML, RestfulMediaType.APPLICATION_XML_OBJECT_PROPERTY, RestfulMediaType.APPLICATION_XML_ERROR
})
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public Response clearProperty(@PathParam("domainType") String domainType, @PathParam("instanceId") final String instanceId, @PathParam("propertyId") final String propertyId);
@POST
@@ -150,7 +148,7 @@ public interface DomainObjectResource {
MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_OBJECT_COLLECTION, RestfulMediaType.APPLICATION_JSON_ERROR,
MediaType.APPLICATION_XML, RestfulMediaType.APPLICATION_XML_OBJECT_COLLECTION, RestfulMediaType.APPLICATION_XML_ERROR
})
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public Response accessCollection(@PathParam("domainType") String domainType, @PathParam("instanceId") final String instanceId, @PathParam("collectionId") final String collectionId);
@PUT
@@ -160,7 +158,7 @@ public interface DomainObjectResource {
MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_OBJECT_COLLECTION, RestfulMediaType.APPLICATION_JSON_ERROR,
MediaType.APPLICATION_XML, RestfulMediaType.APPLICATION_XML_OBJECT_COLLECTION, RestfulMediaType.APPLICATION_XML_ERROR
})
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public Response addToSet(@PathParam("domainType") String domainType, @PathParam("instanceId") final String instanceId, @PathParam("collectionId") final String collectionId, final InputStream arguments);
@POST
@@ -170,7 +168,7 @@ public interface DomainObjectResource {
MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_OBJECT_COLLECTION, RestfulMediaType.APPLICATION_JSON_ERROR,
MediaType.APPLICATION_XML, RestfulMediaType.APPLICATION_XML_OBJECT_COLLECTION, RestfulMediaType.APPLICATION_XML_ERROR
})
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public Response addToList(@PathParam("domainType") String domainType, @PathParam("instanceId") final String instanceId, @PathParam("collectionId") final String collectionId, final InputStream arguments);
@DELETE
@@ -180,7 +178,7 @@ public interface DomainObjectResource {
MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_OBJECT_COLLECTION, RestfulMediaType.APPLICATION_JSON_ERROR,
MediaType.APPLICATION_XML, RestfulMediaType.APPLICATION_XML_OBJECT_COLLECTION, RestfulMediaType.APPLICATION_XML_ERROR
})
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public Response removeFromCollection(@PathParam("domainType") String domainType, @PathParam("instanceId") final String instanceId, @PathParam("collectionId") final String collectionId);
// //////////////////////////////////////////////////////////
@@ -194,7 +192,7 @@ public interface DomainObjectResource {
MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_OBJECT_ACTION, RestfulMediaType.APPLICATION_JSON_ERROR,
MediaType.APPLICATION_XML, RestfulMediaType.APPLICATION_XML_OBJECT_ACTION, RestfulMediaType.APPLICATION_XML_ERROR
})
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public Response actionPrompt(@PathParam("domainType") String domainType, @PathParam("instanceId") final String instanceId, @PathParam("actionId") final String actionId);
@DELETE
@@ -220,7 +218,7 @@ public interface DomainObjectResource {
MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_ACTION_RESULT, RestfulMediaType.APPLICATION_JSON_ERROR,
MediaType.APPLICATION_XML, RestfulMediaType.APPLICATION_XML_ACTION_RESULT, RestfulMediaType.APPLICATION_XML_ERROR
})
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public Response invokeActionQueryOnly(@PathParam("domainType") String domainType, @PathParam("instanceId") final String instanceId, @PathParam("actionId") final String actionId, @QueryParam("x-isis-querystring") final String xIsisQueryString);
@PUT
@@ -230,7 +228,7 @@ public interface DomainObjectResource {
MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_ACTION_RESULT, RestfulMediaType.APPLICATION_JSON_ERROR,
MediaType.APPLICATION_XML, RestfulMediaType.APPLICATION_XML_ACTION_RESULT, RestfulMediaType.APPLICATION_XML_ERROR
})
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public Response invokeActionIdempotent(@PathParam("domainType") String domainType, @PathParam("instanceId") final String instanceId, @PathParam("actionId") final String actionId, final InputStream arguments);
@POST
@@ -240,7 +238,7 @@ public interface DomainObjectResource {
MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_ACTION_RESULT, RestfulMediaType.APPLICATION_JSON_ERROR,
MediaType.APPLICATION_XML, RestfulMediaType.APPLICATION_XML_ACTION_RESULT, RestfulMediaType.APPLICATION_XML_ERROR
})
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public Response invokeAction(@PathParam("domainType") String domainType, @PathParam("instanceId") final String instanceId, @PathParam("actionId") final String actionId, final InputStream arguments);
@DELETE
diff --git a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/domainobjects/DomainServiceResource.java b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/domainobjects/DomainServiceResource.java
index c11cdb7..ce29d1e 100644
--- a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/domainobjects/DomainServiceResource.java
+++ b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/domainobjects/DomainServiceResource.java
@@ -32,8 +32,6 @@ import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
-import org.jboss.resteasy.annotations.ClientResponseType;
-
import org.apache.isis.viewer.restfulobjects.applib.RestfulMediaType;
@Path("/services")
@@ -42,7 +40,7 @@ public interface DomainServiceResource {
@GET
@Path("/")
@Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_LIST, RestfulMediaType.APPLICATION_JSON_ERROR })
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public Response services();
@DELETE
@@ -67,7 +65,7 @@ public interface DomainServiceResource {
MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_OBJECT, RestfulMediaType.APPLICATION_JSON_ERROR,
MediaType.APPLICATION_XML, RestfulMediaType.APPLICATION_XML_OBJECT, RestfulMediaType.APPLICATION_XML_ERROR
})
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public Response service(@PathParam("serviceId") final String serviceId);
@DELETE
@@ -94,7 +92,7 @@ public interface DomainServiceResource {
MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_OBJECT_ACTION, RestfulMediaType.APPLICATION_JSON_ERROR,
MediaType.APPLICATION_XML, RestfulMediaType.APPLICATION_XML_OBJECT_ACTION, RestfulMediaType.APPLICATION_XML_ERROR
})
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public Response actionPrompt(@PathParam("serviceId") final String serviceId, @PathParam("actionId") final String actionId);
@DELETE
@@ -127,7 +125,7 @@ public interface DomainServiceResource {
MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_ACTION_RESULT, RestfulMediaType.APPLICATION_JSON_ERROR,
MediaType.APPLICATION_XML, RestfulMediaType.APPLICATION_XML_ACTION_RESULT, RestfulMediaType.APPLICATION_XML_ERROR
})
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public Response invokeActionQueryOnly(@PathParam("serviceId") final String serviceId, @PathParam("actionId") final String actionId, @QueryParam("x-isis-querystring") final String xIsisQueryString);
@PUT
@@ -137,7 +135,7 @@ public interface DomainServiceResource {
MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_ACTION_RESULT, RestfulMediaType.APPLICATION_JSON_ERROR,
MediaType.APPLICATION_XML, RestfulMediaType.APPLICATION_XML_ACTION_RESULT, RestfulMediaType.APPLICATION_XML_ERROR
})
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public Response invokeActionIdempotent(@PathParam("serviceId") final String serviceId, @PathParam("actionId") final String actionId, final InputStream arguments);
@POST
@@ -147,7 +145,7 @@ public interface DomainServiceResource {
MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_ACTION_RESULT, RestfulMediaType.APPLICATION_JSON_ERROR,
MediaType.APPLICATION_XML, RestfulMediaType.APPLICATION_XML_ACTION_RESULT, RestfulMediaType.APPLICATION_XML_ERROR
})
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public Response invokeAction(@PathParam("serviceId") final String serviceId, @PathParam("actionId") final String actionId, final InputStream arguments);
@DELETE
diff --git a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/domaintypes/DomainTypeResource.java b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/domaintypes/DomainTypeResource.java
index fde2a14..b7f33ad 100644
--- a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/domaintypes/DomainTypeResource.java
+++ b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/domaintypes/DomainTypeResource.java
@@ -26,8 +26,6 @@ import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
-import org.jboss.resteasy.annotations.ClientResponseType;
-
import org.apache.isis.viewer.restfulobjects.applib.RestfulMediaType;
@Path("/domain-types")
@@ -40,7 +38,7 @@ public interface DomainTypeResource {
@GET
@Path("/")
@Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_TYPE_LIST })
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public abstract Response domainTypes();
// /////////////////////////////////////////////////////
@@ -50,7 +48,7 @@ public interface DomainTypeResource {
@GET
@Path("/{domainType}")
@Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_DOMAIN_TYPE })
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public abstract Response domainType(@PathParam("domainType") final String domainType);
@GET
@@ -59,30 +57,31 @@ public interface DomainTypeResource {
MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_LAYOUT_BS3,
MediaType.APPLICATION_XML, RestfulMediaType.APPLICATION_XML_LAYOUT_BS3
})
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public abstract Response layout(@PathParam("domainType") final String domainType);
@GET
@Path("/{domainType}/properties/{propertyId}")
@Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_PROPERTY_DESCRIPTION })
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public abstract Response typeProperty(@PathParam("domainType") final String domainType, @PathParam("propertyId") final String propertyId);
@GET
@Path("/{domainType}/collections/{collectionId}")
@Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_COLLECTION_DESCRIPTION })
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public abstract Response typeCollection(@PathParam("domainType") final String domainType, @PathParam("collectionId") final String collectionId);
@GET
@Path("/{domainType}/actions/{actionId}")
@Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_ACTION_DESCRIPTION })
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public abstract Response typeAction(@PathParam("domainType") final String domainType, @PathParam("actionId") final String actionId);
@GET
@Path("/{domainType}/actions/{actionId}/params/{paramNum}")
@Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_ACTION_PARAMETER_DESCRIPTION })
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public abstract Response typeActionParam(@PathParam("domainType") final String domainType, @PathParam("actionId") final String actionId, @PathParam("paramNum") final String paramName);
// //////////////////////////////////////////////////////////
@@ -92,7 +91,7 @@ public interface DomainTypeResource {
@GET
@Path("/{domainType}/isSubtypeOf/invoke")
@Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_TYPE_ACTION_RESULT, RestfulMediaType.APPLICATION_JSON_ERROR })
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public abstract Response domainTypeIsSubtypeOf(
@PathParam("domainType") final String domainType,
@QueryParam("supertype") String superType, // simple style
@@ -102,7 +101,7 @@ public interface DomainTypeResource {
@GET
@Path("/{domainType}/isSupertypeOf/invoke")
@Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_TYPE_ACTION_RESULT, RestfulMediaType.APPLICATION_JSON_ERROR })
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public abstract Response domainTypeIsSupertypeOf(
@PathParam("domainType") final String domainType,
@QueryParam("supertype") String superType, // simple style
diff --git a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/homepage/HomePageResource.java b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/homepage/HomePageResource.java
index 497ef69..80df521 100644
--- a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/homepage/HomePageResource.java
+++ b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/homepage/HomePageResource.java
@@ -18,19 +18,23 @@
*/
package org.apache.isis.viewer.restfulobjects.applib.homepage;
-import javax.ws.rs.*;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.apache.isis.viewer.restfulobjects.applib.RestfulMediaType;
-import org.jboss.resteasy.annotations.ClientResponseType;
@Path("/")
public interface HomePageResource {
@GET
@Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_HOME_PAGE })
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public Response homePage();
@DELETE
@@ -49,7 +53,7 @@ public interface HomePageResource {
@GET
@Path("/notAuthenticated")
@Produces({ MediaType.APPLICATION_JSON })
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public Response notAuthenticated();
}
\ No newline at end of file
diff --git a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/user/UserResource.java b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/user/UserResource.java
index afcc179..f28b774 100644
--- a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/user/UserResource.java
+++ b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/user/UserResource.java
@@ -27,8 +27,6 @@ import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
-import org.jboss.resteasy.annotations.ClientResponseType;
-
import org.apache.isis.viewer.restfulobjects.applib.RestfulMediaType;
@Path("/user")
@@ -36,7 +34,7 @@ public interface UserResource {
@GET
@Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_USER })
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public Response user();
@DELETE
@@ -54,7 +52,7 @@ public interface UserResource {
@GET
@Path("/logout")
@Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_HOME_PAGE })
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public Response logout();
}
\ No newline at end of file
diff --git a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/util/JsonMapper.java b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/util/JsonMapper.java
index 8e7179f..bb53752 100644
--- a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/util/JsonMapper.java
+++ b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/util/JsonMapper.java
@@ -38,7 +38,8 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.module.SimpleModule;
-import org.jboss.resteasy.client.ClientResponse;
+
+import org.apache.isis.viewer.legacy.RestEasyLegacy;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
public final class JsonMapper {
@@ -115,8 +116,7 @@ public final class JsonMapper {
}
public <T> T read(final Response response, final Class<T> requiredType) throws JsonParseException, JsonMappingException, IOException {
- final ClientResponse<?> clientResponse = (ClientResponse<?>) response; // a shame, but needed if calling resources directly.
- final String entity = clientResponse.getEntity(String.class);
+ final String entity = RestEasyLegacy.getEntityAsStringFrom(response);
if (entity == null) {
return null;
}
diff --git a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/version/VersionResource.java b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/version/VersionResource.java
index 535fc72..bb6cc50 100644
--- a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/version/VersionResource.java
+++ b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/version/VersionResource.java
@@ -23,14 +23,13 @@ import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.apache.isis.viewer.restfulobjects.applib.RestfulMediaType;
-import org.jboss.resteasy.annotations.ClientResponseType;
@Path("/version")
public interface VersionResource {
@GET
@Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_VERSION })
- @ClientResponseType(entityType = String.class)
+ //TODO deprecated @ClientResponseType(entityType = String.class)
public Response version();
@DELETE
diff --git a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/IsisPrettyPrintingProcessor.java b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/IsisPrettyPrintingProcessor.java
index d26c2e3..94140d1 100644
--- a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/IsisPrettyPrintingProcessor.java
+++ b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/IsisPrettyPrintingProcessor.java
@@ -22,7 +22,7 @@ import javax.ws.rs.core.MediaType;
import javax.xml.bind.Marshaller;
import org.jboss.resteasy.annotations.DecorateTypes;
-import org.jboss.resteasy.spi.interception.DecoratorProcessor;
+import org.jboss.resteasy.spi.DecoratorProcessor;
import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/webapp/PreProcessInterceptorForIsisSession.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/webapp/PreProcessInterceptorForIsisSession.java
index 90b9ad6..da953f3 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/webapp/PreProcessInterceptorForIsisSession.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/webapp/PreProcessInterceptorForIsisSession.java
@@ -21,19 +21,23 @@ package org.apache.isis.viewer.restfulobjects.server.webapp;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.ext.Provider;
-import org.jboss.resteasy.annotations.interception.ServerInterceptor;
+//deprecated import org.jboss.resteasy.annotations.interception.ServerInterceptor;
import org.jboss.resteasy.core.ResourceMethodInvoker;
import org.jboss.resteasy.core.ServerResponse;
import org.jboss.resteasy.spi.Failure;
import org.jboss.resteasy.spi.HttpRequest;
-import org.jboss.resteasy.spi.interception.PreProcessInterceptor;
+//deprecated import org.jboss.resteasy.spi.interception.PreProcessInterceptor;
+
+//FIXME [ahuber] what to do?
@Provider
-@ServerInterceptor
-public class PreProcessInterceptorForIsisSession implements PreProcessInterceptor {
+//deprecated @ServerInterceptor
+public class PreProcessInterceptorForIsisSession //deprecated implements PreProcessInterceptor
+{
+ /* deprecated
@Override
public ServerResponse preProcess(HttpRequest httpRequest, ResourceMethodInvoker resourceMethodInvoker) throws Failure, WebApplicationException {
return null;
- }
+ }*/
}
--
To stop receiving notification emails like this one, please contact
ahuber@apache.org.