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>
