You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2018/01/04 22:40:33 UTC
[isis] 01/01: ISIS-1779 Transition to JAX-RS 2.0 Client API removed
dependency on deprecated resteasy client api
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch dev/2.0.0/ISIS-1779-jax-rs-2
in repository https://gitbox.apache.org/repos/asf/isis.git
commit 6bb2923582b6e0e5d6745ce8372152ea0088ab2a
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sun Nov 19 15:20:44 2017 +0100
ISIS-1779 Transition to JAX-RS 2.0 Client API
removed dependency on deprecated resteasy client api
---
core/applib/pom.xml | 9 +-
core/pom.xml | 18 ++-
.../core/runtime/system/context/IsisContext.java | 13 ++-
.../persistence/PersistenceSessionFactory.java | 40 +++----
.../apache/isis/viewer/legacy/ClientExecutor.java | 123 +++++++++++++++++++++
.../ClientRequest.java} | 36 +++---
.../ClientRequestFactory.java} | 45 ++++----
.../apache/isis/viewer/legacy/RestEasyLegacy.java | 89 +++++++++++++++
.../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/client/RestfulResponse.java | 2 +
.../applib/domainobjects/DomainObjectResource.java | 30 +++--
.../domainobjects/DomainServiceResource.java | 14 +--
.../applib/domaintypes/DomainTypeResource.java | 20 ++--
.../applib/homepage/HomePageResource.java | 12 +-
.../restfulobjects/applib/user/UserResource.java | 6 +-
.../restfulobjects/applib/util/JsonMapper.java | 6 +-
.../applib/version/VersionResource.java | 3 +-
.../viewer/restfulobjects/rendering/Responses.java | 22 +++-
.../conneg/IsisPrettyPrintingProcessor.java | 2 +-
.../PreProcessInterceptorForIsisSession.java | 12 +-
24 files changed, 403 insertions(+), 161 deletions(-)
diff --git a/core/applib/pom.xml b/core/applib/pom.xml
index be3411c..ca7a836 100644
--- a/core/applib/pom.xml
+++ b/core/applib/pom.xml
@@ -74,10 +74,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 becc447..8d2a49f 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -134,7 +134,12 @@
<!-- using 2.3.3 throws SQL exception in simpleapp integtests -->
<hsqldb.version>2.3.4</hsqldb.version>
<log4jdbc-remix.version>0.2.7</log4jdbc-remix.version>
- <resteasy-jaxrs.version>3.0.17.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>
@@ -180,7 +185,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>
@@ -1942,11 +1951,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/runtime/src/main/java/org/apache/isis/core/runtime/system/context/IsisContext.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/IsisContext.java
index 059914b..17ebab6 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/IsisContext.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/IsisContext.java
@@ -19,14 +19,15 @@
package org.apache.isis.core.runtime.system.context;
+import org.apache.log4j.BasicConfigurator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import org.apache.isis.core.commons.exceptions.IsisException;
import org.apache.isis.core.metamodel.specloader.validator.MetaModelInvalidException;
import org.apache.isis.core.runtime.system.session.IsisSession;
import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
import org.apache.isis.core.runtime.system.session.IsisSessionFactoryBuilder;
-import org.apache.log4j.BasicConfigurator;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
* Simply a static field holding the {@link IsisSessionFactory} singleton, and convenience methods to obtain the
@@ -87,10 +88,10 @@ public final class IsisContext {
}
/**
- * life-cycle exit point
+ * Marks the end of this IsisContext's life-cycle.
* <p>
* Destroys this context and clears any state associated with it.
- * It marks the end of IsisContext's life-cycle. Subsequent calls have no effect.
+ * Subsequent calls have no effect.
* </p>
*/
public static void destroy() {
@@ -127,7 +128,7 @@ public final class IsisContext {
/**
* TODO [andi-huber] not sure if required, initial idea was to force log4j
- * re-configuration on a undeploy/deploy cycle
+ * re-configuration on an undeploy/deploy cycle
*/
private static void resetLogging() {
org.apache.log4j.Logger.getRootLogger().removeAllAppenders();
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory.java
index 989c989..67de81f 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory.java
@@ -53,18 +53,12 @@ public class PersistenceSessionFactory implements ApplicationScopedComponent, Fi
private static final Logger LOG = LoggerFactory.getLogger(PersistenceSessionFactory.class);
- //region > constructor
-
private final IsisConfigurationDefault configuration;
public PersistenceSessionFactory(final IsisConfigurationDefault isisConfiguration) {
this.configuration = isisConfiguration;
}
- //endregion
-
- //region > init, createDataNucleusApplicationComponents
-
public static final String JDO_OBJECTSTORE_CONFIG_PREFIX = "isis.persistor.datanucleus"; // specific to the JDO objectstore
public static final String DATANUCLEUS_CONFIG_PREFIX = "isis.persistor.datanucleus.impl"; // reserved for datanucleus' own config props
@@ -159,23 +153,32 @@ public class PersistenceSessionFactory implements ApplicationScopedComponent, Fi
props.put(key, value);
}
}
- //endregion
- //region > shutdown
+ /**
+ * Marks the end of this PersistenceSessionFactory's life-cycle.
+ *
+ * <p>
+ * From <a href="http://www.datanucleus.org/products/datanucleus/jdo/persistence.html">JDO Persistence Guide</a> ...
+ * <br/>
+ * Since the PMF has significant resources associated with it, it should always be closed
+ * when you no longer need to perform any more persistence operations. For most operations
+ * this will be when closing your application.
+ * </p>
+ *
+ */
@Programmatic
public final void shutdown() {
+ if(!isInitialized()) {
+ return;
+ }
+
//XXX ISIS-1756 purge any DataNucleus State
if(applicationComponents != null) {
applicationComponents.shutdown();
- applicationComponents = null;
+ applicationComponents = null;
}
}
- //endregion
-
-
- //region > createPersistenceSession
-
/**
* Called by {@link org.apache.isis.core.runtime.system.session.IsisSessionFactory#openSession(AuthenticationSession)}.
*/
@@ -194,12 +197,6 @@ public class PersistenceSessionFactory implements ApplicationScopedComponent, Fi
fixturesInstalledFlag);
}
-
-
- //endregion
-
- //region > FixturesInstalledFlag impl
-
private Boolean fixturesInstalled;
@Programmatic
@@ -214,7 +211,4 @@ public class PersistenceSessionFactory implements ApplicationScopedComponent, Fi
this.fixturesInstalled = fixturesInstalled;
}
- //endregion
-
-
}
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..bbe683a
--- /dev/null
+++ b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/legacy/ClientExecutor.java
@@ -0,0 +1,123 @@
+/*
+ * 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.
+ *
+ * @author ahuber@apache.org
+ *
+ */
+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..dd167fa 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,30 @@
* 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.
+ *
+ * @author ahuber@apache.org
+ *
+ */
+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..1c9ae07 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,37 @@
* 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.
+ *
+ * @author ahuber@apache.org
+ *
+ */
+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..6e6bac9
--- /dev/null
+++ b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/legacy/RestEasyLegacy.java
@@ -0,0 +1,89 @@
+/*
+ * 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.
+ *
+ * @author ahuber@apache.org
+ *
+ */
+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/client/RestfulResponse.java b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/client/RestfulResponse.java
index a900a8d..2431a9e 100644
--- a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/client/RestfulResponse.java
+++ b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/client/RestfulResponse.java
@@ -369,4 +369,6 @@ public class RestfulResponse<T> {
return "RestfulResponse [httpStatusCode=" + httpStatusCode + "]";
}
+
+
}
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 50c7f69..e5f4787 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)
+ //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)
+ //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)
+ //deprecated @ClientResponseType(entityType = String.class)
public Response object(@PathParam("domainType") String domainType, @PathParam("instanceId") final String instanceId, final InputStream arguments);
@DELETE
@@ -93,7 +91,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)
+ //deprecated @ClientResponseType(entityType = String.class)
public Response propertyDetails(@PathParam("domainType") String domainType, @PathParam("instanceId") final String instanceId, @PathParam("propertyId") final String propertyId);
@PUT
@@ -103,7 +101,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)
+ //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
@@ -113,7 +111,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)
+ //deprecated @ClientResponseType(entityType = String.class)
public Response clearProperty(@PathParam("domainType") String domainType, @PathParam("instanceId") final String instanceId, @PathParam("propertyId") final String propertyId);
@POST
@@ -132,7 +130,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)
+ //deprecated @ClientResponseType(entityType = String.class)
public Response accessCollection(@PathParam("domainType") String domainType, @PathParam("instanceId") final String instanceId, @PathParam("collectionId") final String collectionId);
@PUT
@@ -142,7 +140,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)
+ //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
@@ -152,7 +150,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)
+ //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
@@ -162,7 +160,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)
+ //deprecated @ClientResponseType(entityType = String.class)
public Response removeFromCollection(@PathParam("domainType") String domainType, @PathParam("instanceId") final String instanceId, @PathParam("collectionId") final String collectionId);
// //////////////////////////////////////////////////////////
@@ -176,7 +174,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)
+ //deprecated @ClientResponseType(entityType = String.class)
public Response actionPrompt(@PathParam("domainType") String domainType, @PathParam("instanceId") final String instanceId, @PathParam("actionId") final String actionId);
@DELETE
@@ -202,7 +200,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)
+ //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
@@ -212,7 +210,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)
+ //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
@@ -222,7 +220,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)
+ //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..d472e56 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)
+ //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)
+ //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)
+ //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)
+ //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)
+ //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)
+ //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 8881c25..d96571b 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)
+ //deprecated @ClientResponseType(entityType = String.class)
public abstract Response domainTypes();
// /////////////////////////////////////////////////////
@@ -50,37 +48,37 @@ public interface DomainTypeResource {
@GET
@Path("/{domainType}")
@Produces({ MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_DOMAIN_TYPE })
- @ClientResponseType(entityType = String.class)
+ //deprecated @ClientResponseType(entityType = String.class)
public abstract Response domainType(@PathParam("domainType") final String domainType);
@GET
@Path("/{domainType}/layout")
@Produces({ MediaType.APPLICATION_XML, RestfulMediaType.APPLICATION_XML_LAYOUT_BS3 })
- @ClientResponseType(entityType = String.class)
+ //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)
+ //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)
+ //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)
+ //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)
+ //deprecated @ClientResponseType(entityType = String.class)
public abstract Response typeActionParam(@PathParam("domainType") final String domainType, @PathParam("actionId") final String actionId, @PathParam("paramNum") final String paramName);
// //////////////////////////////////////////////////////////
@@ -90,7 +88,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)
+ //deprecated @ClientResponseType(entityType = String.class)
public abstract Response domainTypeIsSubtypeOf(
@PathParam("domainType") final String domainType,
@QueryParam("supertype") String superType, // simple style
@@ -100,7 +98,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)
+ //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..a502d34 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)
+ //@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)
+ //@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..9d02419 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)
+ //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)
+ //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..6b596a7 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)
+ //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/Responses.java b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/Responses.java
index 4be7721..a88d640 100644
--- a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/Responses.java
+++ b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/Responses.java
@@ -16,16 +16,22 @@
*/
package org.apache.isis.viewer.restfulobjects.rendering;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
import java.util.Date;
+
import javax.ws.rs.core.EntityTag;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
-import org.joda.time.DateTime;
-import org.joda.time.format.ISODateTimeFormat;
+import javax.ws.rs.core.Response.ResponseBuilder;
+
+import org.apache.isis.core.commons.reflection.Reflect;
import org.apache.isis.core.metamodel.adapter.version.Version;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse;
import org.apache.isis.viewer.restfulobjects.rendering.util.JsonWriterUtil;
+import org.joda.time.DateTime;
+import org.joda.time.format.ISODateTimeFormat;
public final class Responses {
@@ -87,6 +93,18 @@ public final class Responses {
}
protected static Response.ResponseBuilder of(final RestfulResponse.HttpStatusCode httpStatusCode) {
+
+ //XXX debug
+ Response.ResponseBuilder x;
+ try {
+ Method m = ResponseBuilder.class.getDeclaredMethod("newInstance", Reflect.emptyClasses);
+ m.setAccessible(true);
+ x = (ResponseBuilder) m.invoke(null, Reflect.emptyObjects);
+ System.out.println("!!! DEBUG: "+x.getClass().getName());
+ } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException
+ | SecurityException e) {
+ e.printStackTrace();
+ }
return Response.status(httpStatusCode.getJaxrsStatusType()).type(MediaType.APPLICATION_JSON_TYPE);
}
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..d906cc4 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,21 @@ 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;
+//deprectaed 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;
+//deprectaed import org.jboss.resteasy.spi.interception.PreProcessInterceptor;
@Provider
-@ServerInterceptor
-public class PreProcessInterceptorForIsisSession implements PreProcessInterceptor {
+//deprectaed @ServerInterceptor
+public class PreProcessInterceptorForIsisSession //deprectaed implements PreProcessInterceptor
+{
+ /* deprectaed
@Override
public ServerResponse preProcess(HttpRequest httpRequest, ResourceMethodInvoker resourceMethodInvoker) throws Failure, WebApplicationException {
return null;
- }
+ }*/
}
--
To stop receiving notification emails like this one, please contact
"commits@isis.apache.org" <co...@isis.apache.org>.