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

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

commit e61b067f959763adcd9df59c1d2480944b7ee1fa
Merge: de23420755 4f67e6e8c0
Author: Andi Huber <[email protected]>
AuthorDate: Tue Feb 21 06:14:26 2023 +0100

    Merge remote-tracking branch 'origin/master' into spring6

 .../core/config/CausewayConfiguration.java         | 175 ++++++++++++++++++++-
 .../subscriber/CommandSubscriberForCommandLog.java |  18 ++-
 .../ExecutionSubscriberForExecutionLog.java        |  30 +++-
 .../ExecutionSubscriberForExecutionOutbox.java     |  32 +++-
 ...ntityPropertyChangeSubscriberForAuditTrail.java |  21 ++-
 .../applib/CausewayModuleExtSecmanApplib.java      |   4 +-
 ...e_open.java => HasUsername_associatedUser.java} |   6 +-
 .../subscriber/CommandSubscriberForTesting.java    |  17 +-
 .../EntityPropertyChangeSubscriberForTesting.java  |  20 ++-
 .../subscriber/ExecutionSubscriberForTesting.java  |   9 +-
 tooling/c4modeling/pom.xml                         |   9 +-
 .../java/org/apache/causeway/tooling/c4/C4.java    |  34 ++--
 .../apache/causeway/tooling/c4/test/C4Test.java    |  24 ++-
 .../tooling/c4/test/baeldung-example-v1.puml       |  55 ++++---
 .../tooling/c4/test/baeldung-example-v2.puml       |  34 ++--
 tooling/pom.xml                                    |  20 +--
 16 files changed, 385 insertions(+), 123 deletions(-)

diff --cc 
core/config/src/main/java/org/apache/causeway/core/config/CausewayConfiguration.java
index df1e6b9a91,b1f9d2aac8..46981c8431
--- 
a/core/config/src/main/java/org/apache/causeway/core/config/CausewayConfiguration.java
+++ 
b/core/config/src/main/java/org/apache/causeway/core/config/CausewayConfiguration.java
@@@ -41,18 -41,20 +41,20 @@@ import static java.lang.annotation.Elem
  import static java.lang.annotation.ElementType.PARAMETER;
  import static java.lang.annotation.RetentionPolicy.RUNTIME;
  
 -import javax.activation.DataSource;
 -import javax.inject.Named;
 -import javax.validation.Constraint;
 -import javax.validation.ConstraintValidator;
 -import javax.validation.ConstraintValidatorContext;
 -import javax.validation.Payload;
 -import javax.validation.Valid;
 -import javax.validation.constraints.Max;
 -import javax.validation.constraints.Min;
 -import javax.validation.constraints.NotEmpty;
 -import javax.validation.constraints.NotNull;
 +import jakarta.activation.DataSource;
 +import jakarta.inject.Named;
 +import jakarta.validation.Constraint;
 +import jakarta.validation.ConstraintValidator;
 +import jakarta.validation.ConstraintValidatorContext;
 +import jakarta.validation.Payload;
 +import jakarta.validation.Valid;
 +import jakarta.validation.constraints.Max;
 +import jakarta.validation.constraints.Min;
 +import jakarta.validation.constraints.NotEmpty;
 +import jakarta.validation.constraints.NotNull;
  
+ import org.apache.causeway.applib.services.publishing.spi.CommandSubscriber;
+ import org.apache.causeway.applib.services.publishing.spi.ExecutionSubscriber;
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.boot.context.properties.ConfigurationProperties;
  import org.springframework.core.env.ConfigurableEnvironment;
diff --cc 
extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/subscriber/CommandSubscriberForCommandLog.java
index e34dbe0def,931a44f35f..abb76d86a9
--- 
a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/subscriber/CommandSubscriberForCommandLog.java
+++ 
b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/subscriber/CommandSubscriberForCommandLog.java
@@@ -18,9 -18,11 +18,11 @@@
   */
  package org.apache.causeway.extensions.commandlog.applib.subscriber;
  
 -import javax.annotation.Priority;
 -import javax.inject.Inject;
 -import javax.inject.Named;
++import jakarta.annotation.Priority;
 +import jakarta.inject.Inject;
 +import jakarta.inject.Named;
  
+ import org.springframework.beans.factory.annotation.Qualifier;
  import org.springframework.stereotype.Service;
  
  import org.apache.causeway.applib.annotation.PriorityPrecedence;
diff --cc 
extensions/core/executionlog/applib/src/main/java/org/apache/causeway/extensions/executionlog/applib/spiimpl/ExecutionSubscriberForExecutionLog.java
index 2bd958d360,0ab97b0dce..6cec4ba2d2
--- 
a/extensions/core/executionlog/applib/src/main/java/org/apache/causeway/extensions/executionlog/applib/spiimpl/ExecutionSubscriberForExecutionLog.java
+++ 
b/extensions/core/executionlog/applib/src/main/java/org/apache/causeway/extensions/executionlog/applib/spiimpl/ExecutionSubscriberForExecutionLog.java
@@@ -18,12 -18,19 +18,19 @@@
   */
  package org.apache.causeway.extensions.executionlog.applib.spiimpl;
  
 -import javax.annotation.Priority;
 -import javax.inject.Inject;
 -import javax.inject.Named;
++import jakarta.annotation.Priority;
 +import jakarta.inject.Inject;
++import jakarta.inject.Named;
  
 -import org.apache.causeway.applib.annotation.PriorityPrecedence;
 -import org.apache.causeway.core.config.CausewayConfiguration;
 -import 
org.apache.causeway.extensions.executionlog.applib.CausewayModuleExtExecutionLogApplib;
 -import 
org.apache.causeway.extensions.executionlog.applib.dom.ExecutionLogEntry;
+ import org.springframework.beans.factory.annotation.Qualifier;
  import org.springframework.stereotype.Service;
  
++import org.apache.causeway.applib.annotation.PriorityPrecedence;
  import org.apache.causeway.applib.services.iactn.Execution;
  import org.apache.causeway.applib.services.publishing.spi.ExecutionSubscriber;
++import org.apache.causeway.core.config.CausewayConfiguration;
++import 
org.apache.causeway.extensions.executionlog.applib.CausewayModuleExtExecutionLogApplib;
++import 
org.apache.causeway.extensions.executionlog.applib.dom.ExecutionLogEntry;
  import 
org.apache.causeway.extensions.executionlog.applib.dom.ExecutionLogEntryRepository;
  
  import lombok.RequiredArgsConstructor;
@@@ -32,13 -40,29 +40,29 @@@ import lombok.extern.log4j.Log4j2
   * @since 2.0 {@index}
   */
  @Service
- @RequiredArgsConstructor
+ @Named(ExecutionSubscriberForExecutionLog.LOGICAL_TYPE_NAME)
+ @Priority(PriorityPrecedence.MIDPOINT)
+ @Qualifier("Default")
+ @RequiredArgsConstructor(onConstructor_ = {@Inject})
+ @Log4j2
  public class ExecutionSubscriberForExecutionLog implements 
ExecutionSubscriber {
  
-     final @Inject ExecutionLogEntryRepository repository;
+     static final String LOGICAL_TYPE_NAME = 
CausewayModuleExtExecutionLogApplib.NAMESPACE + 
".ExecutionSubscriberForExecutionLog";
+ 
+     final ExecutionLogEntryRepository<? extends ExecutionLogEntry> repository;
+     final CausewayConfiguration causewayConfiguration;
  
      @Override
-     public void onExecution(Execution<?, ?> execution) {
+     public boolean isEnabled() {
+         return 
causewayConfiguration.getExtensions().getExecutionLog().getPersist().isEnabled();
+     }
+ 
+     @Override
 -    public void onExecution(Execution<?, ?> execution) {
++    public void onExecution(final Execution<?, ?> execution) {
+         if (!isEnabled()) {
+             return;
+         }
+ 
          repository.createEntryAndPersist(execution);
      }
  
diff --cc 
extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/spiimpl/ExecutionSubscriberForExecutionOutbox.java
index 8e35b57db3,35f4374132..31b28728ee
--- 
a/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/spiimpl/ExecutionSubscriberForExecutionOutbox.java
+++ 
b/extensions/core/executionoutbox/applib/src/main/java/org/apache/causeway/extensions/executionoutbox/applib/spiimpl/ExecutionSubscriberForExecutionOutbox.java
@@@ -18,12 -18,19 +18,19 @@@
   */
  package org.apache.causeway.extensions.executionoutbox.applib.spiimpl;
  
 -import javax.annotation.Priority;
 -import javax.inject.Inject;
 -import javax.inject.Named;
++import jakarta.annotation.Priority;
 +import jakarta.inject.Inject;
++import jakarta.inject.Named;
  
 -import org.apache.causeway.applib.annotation.PriorityPrecedence;
 -import org.apache.causeway.core.config.CausewayConfiguration;
 -import 
org.apache.causeway.extensions.executionoutbox.applib.CausewayModuleExtExecutionOutboxApplib;
 -import 
org.apache.causeway.extensions.executionoutbox.applib.dom.ExecutionOutboxEntry;
+ import org.springframework.beans.factory.annotation.Qualifier;
  import org.springframework.stereotype.Service;
  
++import org.apache.causeway.applib.annotation.PriorityPrecedence;
  import org.apache.causeway.applib.services.iactn.Execution;
  import org.apache.causeway.applib.services.publishing.spi.ExecutionSubscriber;
++import org.apache.causeway.core.config.CausewayConfiguration;
++import 
org.apache.causeway.extensions.executionoutbox.applib.CausewayModuleExtExecutionOutboxApplib;
++import 
org.apache.causeway.extensions.executionoutbox.applib.dom.ExecutionOutboxEntry;
  import 
org.apache.causeway.extensions.executionoutbox.applib.dom.ExecutionOutboxEntryRepository;
  
  import lombok.RequiredArgsConstructor;
@@@ -31,14 -39,32 +39,32 @@@ import lombok.extern.log4j.Log4j2
  /**
   * @since 2.0 {@index}
   */
+ 
  @Service
- @RequiredArgsConstructor
+ @Named(ExecutionSubscriberForExecutionOutbox.LOGICAL_TYPE_NAME)
+ @Priority(PriorityPrecedence.MIDPOINT)
+ @Qualifier("Outbox")
+ @RequiredArgsConstructor(onConstructor_ = {@Inject})
+ @Log4j2
+ 
  public class ExecutionSubscriberForExecutionOutbox implements 
ExecutionSubscriber {
  
-     final @Inject ExecutionOutboxEntryRepository repository;
+     static final String LOGICAL_TYPE_NAME = 
CausewayModuleExtExecutionOutboxApplib.NAMESPACE + 
".ExecutionSubscriberForExecutionOutbox";
+ 
+     final ExecutionOutboxEntryRepository<? extends ExecutionOutboxEntry> 
repository;
+     final CausewayConfiguration causewayConfiguration;
  
      @Override
-     public void onExecution(Execution<?, ?> execution) {
+     public boolean isEnabled() {
+         return 
causewayConfiguration.getExtensions().getExecutionOutbox().getPersist().isEnabled();
+     }
+ 
+     @Override
 -    public void onExecution(Execution<?, ?> execution) {
++    public void onExecution(final Execution<?, ?> execution) {
+         if (!isEnabled()) {
+             return;
+         }
+ 
          repository.createEntryAndPersist(execution);
      }
  
diff --cc 
extensions/security/audittrail/applib/src/main/java/org/apache/causeway/extensions/audittrail/applib/spiimpl/EntityPropertyChangeSubscriberForAuditTrail.java
index db4539326d,58a22da9e5..aab6b5a9f7
--- 
a/extensions/security/audittrail/applib/src/main/java/org/apache/causeway/extensions/audittrail/applib/spiimpl/EntityPropertyChangeSubscriberForAuditTrail.java
+++ 
b/extensions/security/audittrail/applib/src/main/java/org/apache/causeway/extensions/audittrail/applib/spiimpl/EntityPropertyChangeSubscriberForAuditTrail.java
@@@ -20,10 -20,11 +20,11 @@@
  
  package org.apache.causeway.extensions.audittrail.applib.spiimpl;
  
 -import javax.annotation.Priority;
 -import javax.inject.Inject;
 -import javax.inject.Named;
 +import jakarta.annotation.Priority;
 +import jakarta.inject.Inject;
 +import jakarta.inject.Named;
  
+ import org.apache.causeway.core.config.CausewayConfiguration;
  import org.springframework.beans.factory.annotation.Qualifier;
  import org.springframework.stereotype.Service;
  
diff --cc 
regressiontests/stable/src/main/java/org/apache/causeway/testdomain/publishing/subscriber/CommandSubscriberForTesting.java
index 9e3832c656,6f78b4d89f..b84dc8b4bc
--- 
a/regressiontests/stable/src/main/java/org/apache/causeway/testdomain/publishing/subscriber/CommandSubscriberForTesting.java
+++ 
b/regressiontests/stable/src/main/java/org/apache/causeway/testdomain/publishing/subscriber/CommandSubscriberForTesting.java
@@@ -21,11 -21,14 +21,14 @@@ package org.apache.causeway.testdomain.
  import java.util.ArrayList;
  import java.util.List;
  
 -import javax.annotation.PostConstruct;
 -import javax.annotation.Priority;
 -import javax.inject.Inject;
 +import jakarta.annotation.PostConstruct;
++import jakarta.annotation.Priority;
 +import jakarta.inject.Inject;
  
 -import org.apache.causeway.applib.annotation.PriorityPrecedence;
+ import org.springframework.beans.factory.annotation.Qualifier;
  import org.springframework.stereotype.Service;
  
++import org.apache.causeway.applib.annotation.PriorityPrecedence;
  import org.apache.causeway.applib.services.command.Command;
  import org.apache.causeway.applib.services.publishing.spi.CommandSubscriber;
  import org.apache.causeway.commons.collections.Can;
@@@ -47,7 -54,7 +54,7 @@@ implements CommandSubscriber 
      }
  
      @Override
--    public void onCompleted(Command command) {
++    public void onCompleted(final Command command) {
  
          @SuppressWarnings("unchecked")
          val publishedCommands =
@@@ -62,13 -69,13 +69,13 @@@
      // -- UTILITIES
  
      @SuppressWarnings("unchecked")
--    public static Can<Command> getPublishedCommands(KVStoreForTesting 
kvStore) {
++    public static Can<Command> getPublishedCommands(final KVStoreForTesting 
kvStore) {
          return Can.ofCollection(
                  (List<Command>) 
kvStore.get(CommandSubscriberForTesting.class, "publishedCommands")
                  .orElse(null));
      }
  
--    public static void clearPublishedCommands(KVStoreForTesting kvStore) {
++    public static void clearPublishedCommands(final KVStoreForTesting 
kvStore) {
          kvStore.clear(CommandSubscriberForTesting.class);
      }
  
diff --cc 
regressiontests/stable/src/main/java/org/apache/causeway/testdomain/publishing/subscriber/EntityPropertyChangeSubscriberForTesting.java
index 684fb098d2,b0aaacfa8c..5f5e8661d0
--- 
a/regressiontests/stable/src/main/java/org/apache/causeway/testdomain/publishing/subscriber/EntityPropertyChangeSubscriberForTesting.java
+++ 
b/regressiontests/stable/src/main/java/org/apache/causeway/testdomain/publishing/subscriber/EntityPropertyChangeSubscriberForTesting.java
@@@ -21,11 -21,14 +21,14 @@@ package org.apache.causeway.testdomain.
  import java.util.ArrayList;
  import java.util.List;
  
 -import javax.annotation.PostConstruct;
 -import javax.annotation.Priority;
 -import javax.inject.Inject;
 +import jakarta.annotation.PostConstruct;
++import jakarta.annotation.Priority;
 +import jakarta.inject.Inject;
  
 -import org.apache.causeway.applib.annotation.PriorityPrecedence;
+ import org.springframework.beans.factory.annotation.Qualifier;
  import org.springframework.stereotype.Service;
  
++import org.apache.causeway.applib.annotation.PriorityPrecedence;
  import 
org.apache.causeway.applib.services.publishing.spi.EntityPropertyChange;
  import 
org.apache.causeway.applib.services.publishing.spi.EntityPropertyChangeSubscriber;
  import org.apache.causeway.commons.collections.Can;
@@@ -80,14 -88,14 +88,14 @@@ implements EntityPropertyChangeSubscrib
      // -- UTILITIES
  
      @SuppressWarnings("unchecked")
--    public static Can<String> getPropertyChangeEntries(KVStoreForTesting 
kvStore) {
++    public static Can<String> getPropertyChangeEntries(final 
KVStoreForTesting kvStore) {
          return Can.ofCollection(
                  (List<String>) kvStore
                  .get(EntityPropertyChangeSubscriberForTesting.class, 
"propertyChangeEntries")
                  .orElse(null));
      }
  
--    public static void clearPropertyChangeEntries(KVStoreForTesting kvStore) {
++    public static void clearPropertyChangeEntries(final KVStoreForTesting 
kvStore) {
          kvStore.clear(EntityPropertyChangeSubscriberForTesting.class);
      }
  
diff --cc 
regressiontests/stable/src/main/java/org/apache/causeway/testdomain/publishing/subscriber/ExecutionSubscriberForTesting.java
index 4d8c20a637,9af63d2a3c..eee397def1
--- 
a/regressiontests/stable/src/main/java/org/apache/causeway/testdomain/publishing/subscriber/ExecutionSubscriberForTesting.java
+++ 
b/regressiontests/stable/src/main/java/org/apache/causeway/testdomain/publishing/subscriber/ExecutionSubscriberForTesting.java
@@@ -21,11 -21,14 +21,14 @@@ package org.apache.causeway.testdomain.
  import java.util.ArrayList;
  import java.util.List;
  
 -import javax.annotation.PostConstruct;
 -import javax.annotation.Priority;
 -import javax.inject.Inject;
 +import jakarta.annotation.PostConstruct;
++import jakarta.annotation.Priority;
 +import jakarta.inject.Inject;
  
 -import org.apache.causeway.applib.annotation.PriorityPrecedence;
+ import org.springframework.beans.factory.annotation.Qualifier;
  import org.springframework.stereotype.Service;
  
++import org.apache.causeway.applib.annotation.PriorityPrecedence;
  import org.apache.causeway.applib.services.iactn.Execution;
  import org.apache.causeway.applib.services.publishing.spi.ExecutionSubscriber;
  import org.apache.causeway.applib.util.schema.MemberExecutionDtoUtils;
diff --cc tooling/pom.xml
index 7c771c1b35,99deba28c4..5d447e8fc9
--- a/tooling/pom.xml
+++ b/tooling/pom.xml
@@@ -43,16 -43,24 +43,13 @@@
                <maven-model-builder.version>3.9.0</maven-model-builder.version>
                <picocli.version>4.7.1</picocli.version>
                
-               <!-- structurizr-core 1.20+ needs structurizr-plantuml newer 
than 1.6.3,
-                       which is not availabale as of yet (19-feb-2023) -->
-               <structurizr.version>1.19.0</structurizr.version> 
-               
<structurizr-plantuml.version>1.6.3</structurizr-plantuml.version>
+               <!-- brings in structurizr-core as a transitive dependency -->
+               <structurizr-export.version>1.10.0</structurizr-export.version>
                
 +              <!-- override surefire defaults from bom, as this is not a Java 
module yet -->
 +              <surefire-plugin.argLine>-Xmx384m</surefire-plugin.argLine>
- 
        </properties>
  
 -      <repositories>
 -              <repository>
 -                      <id>gradle-repo</id>
 -                      
<url>https://repo.gradle.org/gradle/libs-releases-local/</url>
 -                      <releases>
 -                              <enabled>true</enabled>
 -                      </releases>
 -                      <snapshots>
 -                              <enabled>false</enabled>
 -                      </snapshots>
 -              </repository>
 -      </repositories>
 -
        <build>
                <resources>
                        <resource>
@@@ -295,7 -297,7 +286,6 @@@
                        <groupId>org.apache.causeway.core</groupId>
                        
<artifactId>causeway-core-internaltestsupport</artifactId>
                        <scope>test</scope>
--                      <version>${project.version}</version>
                </dependency>
  
        </dependencies>

Reply via email to