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 2022/12/01 06:30:30 UTC

[isis] branch master updated: ISIS-3275: re-implement OutboxClient on top of RestClient (2)

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/master by this push:
     new 8d65df4883 ISIS-3275: re-implement OutboxClient on top of RestClient (2)
8d65df4883 is described below

commit 8d65df4883f57e5deda996459817509800d6475f
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Dec 1 07:30:25 2022 +0100

    ISIS-3275: re-implement OutboxClient on top of RestClient (2)
    
    - support for RestfulClientConfig builder
---
 .../secondary/fetch/CommandFetcher.java            | 13 +++++------
 .../testdomain/util/rest/RestEndpointService.java  | 25 ++++++++++------------
 .../client/src/main/java/module-info.java          |  6 +++---
 .../restfulobjects/client/RestfulClient.java       | 13 +++++------
 .../restfulobjects/client/RestfulClientConfig.java | 10 +++++++--
 5 files changed, 36 insertions(+), 31 deletions(-)

diff --git a/incubator/extensions/core/commandreplay/secondary/src/main/java/org/apache/causeway/extensions/commandreplay/secondary/fetch/CommandFetcher.java b/incubator/extensions/core/commandreplay/secondary/src/main/java/org/apache/causeway/extensions/commandreplay/secondary/fetch/CommandFetcher.java
index ab022ac5c2..5c9817651d 100644
--- a/incubator/extensions/core/commandreplay/secondary/src/main/java/org/apache/causeway/extensions/commandreplay/secondary/fetch/CommandFetcher.java
+++ b/incubator/extensions/core/commandreplay/secondary/src/main/java/org/apache/causeway/extensions/commandreplay/secondary/fetch/CommandFetcher.java
@@ -131,14 +131,15 @@ public class CommandFetcher {
             final SecondaryConfig secondaryConfig,
             final boolean useRequestDebugLogging) {
 
-        val clientConfig = new RestfulClientConfig();
-        clientConfig.setRestfulBase(secondaryConfig.getPrimaryBaseUrlRestful());
+        val clientConfig = RestfulClientConfig.builder()
+        .restfulBase(secondaryConfig.getPrimaryBaseUrlRestful())
         // setup basic-auth
-        clientConfig.setUseBasicAuth(true);
-        clientConfig.setRestfulAuthUser(secondaryConfig.getPrimaryUser());
-        clientConfig.setRestfulAuthPassword(secondaryConfig.getPrimaryPassword());
+        .useBasicAuth(true)
+        .restfulAuthUser(secondaryConfig.getPrimaryUser())
+        .restfulAuthPassword(secondaryConfig.getPrimaryPassword())
         // setup request/response debug logging
-        clientConfig.setUseRequestDebugLogging(useRequestDebugLogging);
+        .useRequestDebugLogging(useRequestDebugLogging)
+        .build();
 
         val client = RestfulClient.ofConfig(clientConfig);
         return client;
diff --git a/regressiontests/stable/src/main/java/org/apache/causeway/testdomain/util/rest/RestEndpointService.java b/regressiontests/stable/src/main/java/org/apache/causeway/testdomain/util/rest/RestEndpointService.java
index ecba8bfe1e..aa295008bb 100644
--- a/regressiontests/stable/src/main/java/org/apache/causeway/testdomain/util/rest/RestEndpointService.java
+++ b/regressiontests/stable/src/main/java/org/apache/causeway/testdomain/util/rest/RestEndpointService.java
@@ -88,22 +88,19 @@ public class RestEndpointService {
 
         log.debug("new restful client created for {}", restRootPath);
 
-        val clientConfig = new RestfulClientConfig();
-        clientConfig.setRestfulBase(restRootPath);
-        // setup basic-auth
-        clientConfig.setUseBasicAuth(true); // default = false
-        clientConfig.setRestfulAuthUser(LdapConstants.SVEN_PRINCIPAL);
-        clientConfig.setRestfulAuthPassword("pass");
-        // setup request/response debug logging
-        clientConfig.setUseRequestDebugLogging(useRequestDebugLogging);
-        // register additional filter if any
-        additionalFilters.forEach(clientConfig.getClientConversationFilters()::add);
-
-        //debug
-        //clientConfig.setUseRequestDebugLogging(true);
+        val clientConfig = RestfulClientConfig.builder()
+                .restfulBase(restRootPath)
+                // setup basic-auth
+                .useBasicAuth(true)
+                .restfulAuthUser(LdapConstants.SVEN_PRINCIPAL)
+                .restfulAuthPassword("pass")
+                // setup request/response debug logging
+                .useRequestDebugLogging(useRequestDebugLogging)
+                // register additional filter if any
+                .clientConversationFilters(additionalFilters.toList())
+                .build();
 
         val client = RestfulClient.ofConfig(clientConfig);
-
         return client;
     }
 
diff --git a/viewers/restfulobjects/client/src/main/java/module-info.java b/viewers/restfulobjects/client/src/main/java/module-info.java
index d0d437acbb..18615e6f43 100644
--- a/viewers/restfulobjects/client/src/main/java/module-info.java
+++ b/viewers/restfulobjects/client/src/main/java/module-info.java
@@ -27,9 +27,9 @@ module org.apache.causeway.viewer.restfulobjects.client {
     requires java.ws.rs;
     requires java.xml.bind;
     requires lombok;
-    requires org.apache.causeway.applib;
-    requires org.apache.causeway.commons;
-    requires org.apache.causeway.viewer.restfulobjects.applib;
+    requires transitive org.apache.causeway.applib;
+    requires transitive org.apache.causeway.commons;
+    requires transitive org.apache.causeway.viewer.restfulobjects.applib;
     requires org.apache.logging.log4j;
     requires spring.core;
 }
\ No newline at end of file
diff --git a/viewers/restfulobjects/client/src/main/java/org/apache/causeway/viewer/restfulobjects/client/RestfulClient.java b/viewers/restfulobjects/client/src/main/java/org/apache/causeway/viewer/restfulobjects/client/RestfulClient.java
index b9898e91b0..8a6874632e 100644
--- a/viewers/restfulobjects/client/src/main/java/org/apache/causeway/viewer/restfulobjects/client/RestfulClient.java
+++ b/viewers/restfulobjects/client/src/main/java/org/apache/causeway/viewer/restfulobjects/client/RestfulClient.java
@@ -51,14 +51,15 @@ import lombok.extern.log4j.Log4j2;
  * </p>
  *
  * <blockquote><pre>
-RestfulClientConfig clientConfig = new RestfulClientConfig();
-clientConfig.setRestfulBase("http://localhost:8080/helloworld/restful/");
+RestfulClientConfig clientConfig = RestfulClientConfig.builder();
+.restfulBase("http://localhost:8080/helloworld/restful/")
 // setup basic-auth
-clientConfig.setUseBasicAuth(true); // default = false
-clientConfig.setRestfulAuthUser("sven");
-clientConfig.setRestfulAuthPassword("pass");
+.useBasicAuth(true) // default = false
+.restfulAuthUser("sven")
+.restfulAuthPassword("pass")
 // setup request/response debug logging
-clientConfig.setUseRequestDebugLogging(true); // default = false
+.useRequestDebugLogging(true) // default = false
+.build();
 
 RestfulClient client = RestfulClient.ofConfig(clientConfig);
  * </pre></blockquote>
diff --git a/viewers/restfulobjects/client/src/main/java/org/apache/causeway/viewer/restfulobjects/client/RestfulClientConfig.java b/viewers/restfulobjects/client/src/main/java/org/apache/causeway/viewer/restfulobjects/client/RestfulClientConfig.java
index 1428db7d1a..4384ad519a 100644
--- a/viewers/restfulobjects/client/src/main/java/org/apache/causeway/viewer/restfulobjects/client/RestfulClientConfig.java
+++ b/viewers/restfulobjects/client/src/main/java/org/apache/causeway/viewer/restfulobjects/client/RestfulClientConfig.java
@@ -29,14 +29,19 @@ import javax.xml.bind.annotation.XmlTransient;
 
 import org.apache.causeway.viewer.restfulobjects.client.log.ClientConversationFilter;
 
+import lombok.AllArgsConstructor;
+import lombok.Builder;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 /**
  * @since 2.0 {@index}
  */
 @XmlRootElement(name="restful-client-config")
 @XmlAccessorType(XmlAccessType.FIELD)
-@Data
+@Data @Builder
+@AllArgsConstructor
+@NoArgsConstructor
 public class RestfulClientConfig {
 
     @XmlElement(name="restfulBase")
@@ -55,6 +60,7 @@ public class RestfulClientConfig {
     private boolean useRequestDebugLogging;
 
     @XmlTransient
-    private List<ClientConversationFilter> clientConversationFilters = new ArrayList<>();
+    @Builder.Default
+    private final List<ClientConversationFilter> clientConversationFilters = new ArrayList<>();
 
 }