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:13 UTC
[isis] branch ISIS-1779-jax-rs-2 updated (b268520 -> 3d7b6fd)
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a change to branch ISIS-1779-jax-rs-2
in repository https://gitbox.apache.org/repos/asf/isis.git.
discard b268520 ISIS-1779 remove helper no longer needed
discard 18ca140 ISIS-1779 introduce resteasy legacy layer
discard 932602f ISIS-1756 - fix typo
discard f9f9031 ISIS-1756 JEE 7+ Isis App life-cycling
discard 50b3d27 ISIS-1756 backporting proper life-cycling from jax-rs-2 branch
discard 9b129d9 ISIS-1744 updating DN versions
discard 17b86dc ISIS-1841 remove unused import
discard 539a760 ISIS-1841 remove unnecessary null-check + simplify
discard 9a1839c ISIS-1841 clean up Internal API after rebase/merge
discard 939e6d5 ISIS-1841 use _Context to store Isis default class loader
discard a481770 ISIS-1811: updates versions to 2.0.0-M2-SNAPSHOT
discard 1eb7392 ISIS-1744: removes work-around code for prior to DN 5.1.5
discard 0c1d308 ISIS-1744: updates to DN 5.1.5
discard 02c0877 ISIS-1767: fixes dependency convergence issue with com.sun.mail
discard e180741 ISIS-1756 remove reflective access to DN's EnhancementHelper since we've got a dedicated method instead
discard 9acf9bc ISIS-1755 veto ExceptionRecognizer on CDI scan
discard 7a012d3 ISIS-1754 proper DN class-loading
discard 53a565a ISIS-1775 added license
discard 44077f9 ISIS-1775 Honor web-app's context path when configuring swagger.
discard 59f2c28 ISIS-1755 TomEE requires Service Providers to be public classes
discard 497976c rebase 2.0.0-M2 on top of 2.0.0-M1 (master)
discard f740597 ISIS-1756 utilize IsisWicketApplication's life-cycle instead of providing a life-cycle CDI Bean
discard e809ddd ISIS-1756 prevent SQLException on schema creation if config is missing
discard a78d891 ISIS-1756 - fix typo
discard d13d241 ISIS-1755 JEE 7+ allow coexistence of CDI and Isis' ServiceInjector
discard 1efa068 ISIS-1756 JEE 7+ Isis App life-cycling
discard 05c9ce9 ISIS-1767 JEE 7+ added dependency on javaee-api to core/runtime
discard 266a145 ISIS-1728: uses typesafe queries for helloworld
discard 627ee81 ISIS-1726: generalizes the logic that searches for @PersistenceCapable entities, to also take into account meta-annotations.
discard 5f8258a ISIS-1727: uses lambda in IsisSessionFactoryBuilder
discard 4828a2c ISIS-1725: requires that an AppManifest is supplied (used to obtain list of entities).
discard 23144b3 ISIS-1724: removes the deprecated IsisJdoSupport in the jdo applib
discard 2670a69 ISIS-1723: removes jdo applib's Auditable interface and @Auditable annotation
discard a352a0f ISIS-1276: fixes algorithm for lookup of datastore id's, at least
discard 8dcc249 ISIS-1276: fixes compile issues in metamodel and runtime
discard cbfbf54 ISIS-1276: updates applib, replaces references of TypesafeQuery to be instead JDOQLTypedQuery
discard 9509c9c ISIS-1276: updates core to compile under JDK 1.8 only
discard 270abd0 ISIS-1276: updates references for datanucleus.
add 75a936e ISIS-1866 fix tests after changed default behavior
add 2201436 ISIS-1841 cleanup switch statement
add e31e3c1 ISIS-1867: cache JAXBContext by class
add 1921a34 ISIS-1867: caches JAXBContext by class in JaxbService.Default implementation
add 4de6220 ISIS-1867: caches JAXBContext by class (in JaxbUtil utility class in applib)
add bf1daf6 ISIS-1867: refactors MemberExecutionDtoUtils #jaxbContextFor so handles exception, same as JaxbUtil
add 2ed6fac ISIS-1867: refactors MemberExecutionDtoUtils#jaxbContextFor to delegate to JaxbUtil
add 2da9f90 ISIS-1867: refactors JaxbService#jaxbContextFor so handles exception, similar to JaxbUtil
add a265623 ISIS-1867: refactors JaxbService to use JaxbUtil#jaxbContextFor
add 29278da ISIS-1867: refactors ChangesDtoUtil to use JaxbUtil#jaxbContextFor
add 1eb350d ISIS-1867: caches JAXBContext within JaxbMatchers (unit test support)
add 88a2f66 ISIS-1867: refactors GridLoaderServiceDefault to cache its JAXBContext during initialization
add 01af65d Merge branch 'ISIS-1867'
add b8c51e8 Merge branch 'master' of https://github.com/apache/isis
add 238655c ISIS-1866 further fixing tests
add dd9588d ISIS-1632 fix wrong filter logic
add 25ec0c2 ISIS-1866 further fixing tests
add 2d1c331 ISIS-1632 fixing wrong logic with publishing behavior
add 089170b ISIS-1866 further fixing tests
add 6dd9d40 ISIS-1866 further fixing tests
add 5595d4e ISIS-1866 further fixing tests
add d938728 Update _rgant-DomainObject_publishing.adoc
add 4fcac47 Merge branch 'master' of https://github.com/apache/isis
add a07f845 ISIS-1866 add code comment
add 96d812e ISIS-1742 remove deprecated NotContributedFacet.NotContributedAs
add 1187898 ISIS-1866 further fixing tests
add 84738e9 ISIS-1866 further fixing tests
add b9c25c5 ISIS-1866 further fixing tests
add 0350032 ISIS-1866 further fixing tests
add 7022adc ISIS-1868 updating plugins to the latest available versions
add 813597e ISIS-1869 fix surefire setup
add dbe8458 ISIS-1870 fix errors (mock setup)
add 8d3a7e1 ISIS-1870 fix MediaType parser errors on initialization
add 5a574cc ISIS-1870 fix MediaType parsing related tests
add b0858df ISIS-1870 proper test tearDown, tests still fail
add f4693d6 ISIS-1276: updates references for datanucleus.
add 1385584 ISIS-1276: updates core to compile under JDK 1.8 only
add 9e4caa8 ISIS-1276: updates applib, replaces references of TypesafeQuery to be instead JDOQLTypedQuery
add 9068474 ISIS-1276: fixes compile issues in metamodel and runtime
add b193a80 ISIS-1276: fixes algorithm for lookup of datastore id's, at least
add 4e66c19 ISIS-1723: removes jdo applib's Auditable interface and @Auditable annotation
add ff41e07 ISIS-1724: removes the deprecated IsisJdoSupport in the jdo applib
add 63e1e86 ISIS-1725: requires that an AppManifest is supplied (used to obtain list of entities).
add f5812a8 ISIS-1727: uses lambda in IsisSessionFactoryBuilder
add ecf9389 ISIS-1726: generalizes the logic that searches for @PersistenceCapable entities, to also take into account meta-annotations.
add e20eec9 ISIS-1728: uses typesafe queries for helloworld
add 9eb9c4b ISIS-1767 JEE 7+ added dependency on javaee-api to core/runtime
add f482514 ISIS-1756 JEE 7+ Isis App life-cycling
add ec87b99 ISIS-1755 JEE 7+ allow coexistence of CDI and Isis' ServiceInjector
add b17393b ISIS-1756 - fix typo
add dd3e538 ISIS-1756 prevent SQLException on schema creation if config is missing
add 73b69dc ISIS-1756 utilize IsisWicketApplication's life-cycle instead of providing a life-cycle CDI Bean
add 3e17e56 rebase 2.0.0-M2 on top of 2.0.0-M1 (master)
add e1cf831 ISIS-1755 TomEE requires Service Providers to be public classes
add c61eee9 ISIS-1775 Honor web-app's context path when configuring swagger.
add b7377f9 ISIS-1775 added license
add 1810edd ISIS-1754 proper DN class-loading
add 5a8586c ISIS-1755 veto ExceptionRecognizer on CDI scan
add 6769dde ISIS-1756 remove reflective access to DN's EnhancementHelper since we've got a dedicated method instead
add 13e2820 ISIS-1767: fixes dependency convergence issue with com.sun.mail
add 488f825 ISIS-1744: updates to DN 5.1.5
add fa11113 ISIS-1744: removes work-around code for prior to DN 5.1.5
add 42081eb ISIS-1811: updates versions to 2.0.0-M2-SNAPSHOT
add a3c108a ISIS-1841 use _Context to store Isis default class loader
add efdf118 ISIS-1841 clean up Internal API after rebase/merge
add ca1ea66 ISIS-1841 remove unnecessary null-check + simplify
add 723505c ISIS-1841 remove unused import
add c98701c ISIS-1744 updating DN versions
add 06c07d5 ISIS-1756 backporting proper life-cycling from jax-rs-2 branch
new 3d7b6fd ISIS-1779 introduce resteasy legacy layer
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (b268520)
\
N -- N -- N refs/heads/ISIS-1779-jax-rs-2 (3d7b6fd)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../rgant/_rgant-DomainObject_publishing.adoc | 2 +-
.../isis/applib/services/jaxb/JaxbService.java | 36 ++--
.../java/org/apache/isis/applib/util/JaxbUtil.java | 27 ++-
.../apache/isis/schema/utils/ChangesDtoUtils.java | 7 +-
.../apache/isis/schema/utils/CommandDtoUtils.java | 7 +-
.../isis/schema/utils/InteractionDtoUtils.java | 7 +-
.../isis/schema/utils/MemberExecutionDtoUtils.java | 7 +-
...tContributedFacetForActionLayoutAnnotation.java | 6 +-
.../notcontributed/NotContributedFacet.java | 26 ---
.../NotContributedFacetAbstract.java | 11 +-
...tributedFacetDerivedFromDomainServiceFacet.java | 2 +-
.../NotContributedFacetDerivedFromMixinFacet.java | 2 +-
.../DomainObjectAnnotationFacetFactory.java | 2 +-
.../publishing/PublishObjectsConfiguration.java | 1 +
...lishedObjectFacetForDomainObjectAnnotation.java | 8 +-
.../services/grid/GridLoaderServiceDefault.java | 36 ++--
.../action/ActionAnnotationFacetFactoryTest.java | 222 +++++----------------
...tionLayoutAnnotationFacetFactoryJunit4Test.java | 70 +++++--
...nLayoutXmlLayoutAnnotationFacetFactoryTest.java | 10 +-
.../DomainObjectAnnotationFacetFactoryTest.java | 119 +++++++----
.../DomainObjectLayoutFactoryTest.java | 45 +++--
.../ParameterAnnotationFacetFactoryTest.java | 10 +-
.../PropertyAnnotationFacetFactoryTest.java | 14 +-
...ObjectAssociationAbstractTest_alwaysHidden.java | 5 +-
core/pom.xml | 13 +-
core/schema/pom.xml | 6 +-
...AuthenticatorOrAuthorizorTest_authenticate.java | 41 ++--
...ticatorOrAuthorizorTest_isVisibleInAnyRole.java | 10 +-
.../core/unittestsupport/jaxb/JaxbMatchers.java | 25 ++-
.../restfulobjects/applib/RepresentationType.java | 22 +-
.../restfulobjects/applib/util/MediaTypes.java | 73 +++++++
.../applib/RepresentationTypeTest_lookup.java | 21 +-
.../restfulobjects/applib/util/ParserTest.java | 7 +-
33 files changed, 480 insertions(+), 420 deletions(-)
create mode 100644 core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/util/MediaTypes.java
--
To stop receiving notification emails like this one, please contact
ahuber@apache.org.
[isis] 01/01: ISIS-1779 introduce resteasy legacy layer
Posted by ah...@apache.org.
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.