diff --git a/api/applib/src/main/java/org/apache/causeway/applib/CausewayModuleApplib.java b/api/applib/src/main/java/org/apache/causeway/applib/CausewayModuleApplib.java index f420d5d2303..67871102e4a 100644 --- a/api/applib/src/main/java/org/apache/causeway/applib/CausewayModuleApplib.java +++ b/api/applib/src/main/java/org/apache/causeway/applib/CausewayModuleApplib.java @@ -18,13 +18,11 @@ */ package org.apache.causeway.applib; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; - import org.apache.causeway.applib.domain.DomainObjectList; import org.apache.causeway.applib.mixins.dto.Dto_downloadXml; import org.apache.causeway.applib.mixins.dto.Dto_downloadXsd; import org.apache.causeway.applib.mixins.layout.Object_downloadLayout; +import org.apache.causeway.applib.mixins.layout.Object_patchLayout; import org.apache.causeway.applib.mixins.metamodel.Object_downloadMetamodelXml; import org.apache.causeway.applib.mixins.metamodel.Object_rebuildMetamodel; import org.apache.causeway.applib.mixins.rest.Object_openRestApi; @@ -57,6 +55,8 @@ import org.apache.causeway.applib.services.user.UserService; import org.apache.causeway.applib.services.userui.UserMenu; import org.apache.causeway.schema.CausewayModuleSchema; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; /** * @since 2.0 {@index} @@ -111,6 +111,7 @@ Dto_downloadXsd.class, Object_downloadColumnOrderTxtFilesAsZip.class, Object_downloadLayout.class, + Object_patchLayout.class, Object_downloadMetamodelXml.class, Object_openRestApi.class, Object_rebuildMetamodel.class, diff --git a/api/applib/src/main/java/org/apache/causeway/applib/mixins/layout/Object_patchLayout.java b/api/applib/src/main/java/org/apache/causeway/applib/mixins/layout/Object_patchLayout.java new file mode 100644 index 00000000000..c58c7af3641 --- /dev/null +++ b/api/applib/src/main/java/org/apache/causeway/applib/mixins/layout/Object_patchLayout.java @@ -0,0 +1,98 @@ +/* + * 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.causeway.applib.mixins.layout; + +import java.util.Optional; + +import javax.inject.Inject; + +import org.apache.causeway.applib.annotation.Action; +import org.apache.causeway.applib.annotation.ActionLayout; +import org.apache.causeway.applib.annotation.DomainObject; +import org.apache.causeway.applib.annotation.Introspection; +import org.apache.causeway.applib.annotation.MemberSupport; +import org.apache.causeway.applib.annotation.Nature; +import org.apache.causeway.applib.annotation.ParameterLayout; +import org.apache.causeway.applib.annotation.Publishing; +import org.apache.causeway.applib.annotation.RestrictTo; +import org.apache.causeway.applib.annotation.SemanticsOf; +import org.apache.causeway.applib.layout.LayoutConstants; +import org.apache.causeway.applib.layout.resource.LayoutResource; +import org.apache.causeway.applib.services.grid.GridService; +import org.apache.causeway.applib.services.grid.GridService.LayoutKey; +import org.apache.causeway.applib.services.layout.LayoutService; +import org.apache.causeway.applib.value.NamedWithMimeType.CommonMimeType; + +import lombok.RequiredArgsConstructor; + +/** + * Allows uploading of layout resources, that overrule the default layout resource lookup. + * + * @since 4.0 {@index} + */ +@Action( + domainEvent = Object_patchLayout.ActionDomainEvent.class, + semantics = SemanticsOf.IDEMPOTENT, + commandPublishing = Publishing.DISABLED, + executionPublishing = Publishing.DISABLED, + restrictTo = RestrictTo.PROTOTYPING) +@ActionLayout( + cssClassFa = "solid file-arrow-up", + describedAs = "Uploads layout XML, to be stored in memory for this object type and current layout name. " + + "It overrules the default layout resource lookup. " + + "On application restart this information is lost.", + fieldSetId = LayoutConstants.FieldSetId.METADATA, + position = ActionLayout.Position.PANEL_DROPDOWN, + sequence = "700.1.1") +// framework provided domain objects and mixins should explicitly specify their introspection policy +@DomainObject(nature=Nature.MIXIN, mixinMethod = "act", introspection = Introspection.ANNOTATION_REQUIRED) +@RequiredArgsConstructor +public class Object_patchLayout { + + public static class ActionDomainEvent + extends org.apache.causeway.applib.CausewayModuleApplib.ActionDomainEvent {} + + @Inject LayoutService layoutService; + @Inject GridService gridService; + + private final Object mixee; + + @MemberSupport public Object act( + @ParameterLayout(multiLine = 20) + final String layoutXml) { + layoutKey() + .ifPresent(layoutKey->{ + gridService.addPatchedLayout( + layoutKey, + new LayoutResource(layoutKey.resourceName(CommonMimeType.XML), CommonMimeType.XML, layoutXml)); + }); + return mixee; + } + + @MemberSupport public boolean hideAct() { + return layoutKey().isEmpty(); + } + + // -- HELPER + + private Optional layoutKey() { + return layoutService.layoutKey(mixee); + } + +} diff --git a/api/applib/src/main/java/org/apache/causeway/applib/services/grid/GridService.java b/api/applib/src/main/java/org/apache/causeway/applib/services/grid/GridService.java index e3918a91583..5c8d3a053dc 100644 --- a/api/applib/src/main/java/org/apache/causeway/applib/services/grid/GridService.java +++ b/api/applib/src/main/java/org/apache/causeway/applib/services/grid/GridService.java @@ -23,6 +23,7 @@ import java.util.Optional; import org.apache.causeway.applib.layout.grid.bootstrap.BSGrid; +import org.apache.causeway.applib.layout.resource.LayoutResource; import org.apache.causeway.applib.value.NamedWithMimeType.CommonMimeType; import org.apache.causeway.commons.internal.base._Strings; import org.springframework.lang.NonNull; @@ -64,6 +65,18 @@ public LayoutKey(final Class domainClass) { public boolean isDefault() { return layoutIfAny==null; } public boolean isVariant() { return layoutIfAny!=null; } + + /** + * Suggested resource name e.g. for export. (not strictly binding) + */ + public String resourceName(CommonMimeType commonMimeType) { + return String.format("%s%s.%s", + domainClass.getSimpleName(), + isVariant() + ? "-" + layoutIfAny() + : "", + commonMimeType.getProposedFileExtensions().getFirst().orElse("unknown")); + } } /** @@ -79,6 +92,17 @@ public LayoutKey(final Class domainClass) { *

Acts as a no-op if not {@link #supportsReloading()}. */ void invalidate(Class domainClass); + + /** + * Allows to replace or prime layout caches with a custom layout (as provided by given {@link LayoutResource}). + * Useful for prototyping. + * + *

This patching is potentially in conflict with layout reloading. + * Patched layouts must stick around even when a layout reload attempt is made. + * + * @since 4.0 + */ + void addPatchedLayout(LayoutKey layoutKey, LayoutResource layoutResource); /** * Returns a {@link BSGrid} for given {@link LayoutKey}. @@ -93,6 +117,14 @@ public LayoutKey(final Class domainClass) { EnumSet supportedFormats(); Optional marshaller(CommonMimeType format); + /** + * Clears any pre-calculated BSGrid instances from the cache. Useful to start with a clean slate, + * after the MM was initialized. + * + *

The MM needs to be aware of all mixins, in order to reliably produce valid BSGrid instances. + * During MM initialization incomplete BSGrid instances might be created and cached, + * which are missing e.g. mixed-in Actions. + */ void clearCache(); } diff --git a/api/applib/src/test/java/org/apache/causeway/applib/util/schema/CommandDtoUtils_Test.java b/api/applib/src/test/java/org/apache/causeway/applib/util/schema/CommandDtoUtils_Test.java index 5f81ec5116a..1f3ab8ba6af 100644 --- a/api/applib/src/test/java/org/apache/causeway/applib/util/schema/CommandDtoUtils_Test.java +++ b/api/applib/src/test/java/org/apache/causeway/applib/util/schema/CommandDtoUtils_Test.java @@ -18,24 +18,14 @@ */ package org.apache.causeway.applib.util.schema; -import java.io.IOException; -import java.io.InputStream; - -import org.apache.causeway.applib.value.Blob; -import org.apache.causeway.applib.value.NamedWithMimeType; - -import org.assertj.core.api.Assertions; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.nullValue; import static org.hamcrest.MatcherAssert.assertThat; import org.apache.causeway.schema.cmd.v2.CommandDto; import org.apache.causeway.schema.cmd.v2.MapDto; - -import org.springframework.util.StreamUtils; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; public class CommandDtoUtils_Test { diff --git a/api/applib/src/test/java/org/apache/causeway/applib/util/schema/CommandDtoUtils_fromYaml_Approval_Test.java b/api/applib/src/test/java/org/apache/causeway/applib/util/schema/CommandDtoUtils_fromYaml_Approval_Test.java index f3f8bded4c8..43c6966664d 100644 --- a/api/applib/src/test/java/org/apache/causeway/applib/util/schema/CommandDtoUtils_fromYaml_Approval_Test.java +++ b/api/applib/src/test/java/org/apache/causeway/applib/util/schema/CommandDtoUtils_fromYaml_Approval_Test.java @@ -22,18 +22,14 @@ import java.io.InputStream; import java.util.List; -import javax.xml.datatype.DatatypeConstants; - -import org.assertj.core.api.Assertions; -import org.junit.jupiter.api.Test; - -import org.springframework.util.StreamUtils; - import org.apache.causeway.commons.io.DataSource; import org.apache.causeway.schema.cmd.v2.ActionDto; import org.apache.causeway.schema.cmd.v2.CommandDto; import org.apache.causeway.schema.cmd.v2.ParamDto; import org.apache.causeway.schema.common.v2.ValueType; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.Test; +import org.springframework.util.StreamUtils; class CommandDtoUtils_fromYaml_Approval_Test { diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/grid/GridServiceDefault.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/grid/GridServiceDefault.java index 6416cdac27f..3500516daf1 100644 --- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/grid/GridServiceDefault.java +++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/grid/GridServiceDefault.java @@ -34,6 +34,7 @@ import org.apache.causeway.commons.functional.Try; import org.apache.causeway.commons.internal._Java17Ex; import org.apache.causeway.core.metamodel.CausewayModuleCoreMetamodel; +import org.apache.causeway.core.metamodel.facets.object.grid.GridFacet; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; @@ -110,6 +111,17 @@ public BSGrid load(final LayoutKey layoutKey) { .valueAsNonNullElseFail(); // at least we should have a fallback, otherwise there is some serious issue return grid; } + + @Override + public void addPatchedLayout(LayoutKey layoutKey, LayoutResource layoutResource) { + layoutLookup.addPatchedLayout(layoutKey, layoutResource); + // from 2nd level cache removes the grid that is associated with given layoutKey + cache.gridsByKey().map().remove(layoutKey); + // purge 1st level cache as well + context.specLoaderProvider().get().specForType(layoutKey.domainClass()) + .ifPresent(spec->spec.lookupFacet(GridFacet.class) + .ifPresent(GridFacet::clearCache)); + } // -- HELPER diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/grid/LayoutPatchesMap.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/grid/LayoutPatchesMap.java new file mode 100644 index 00000000000..10d57ff8e5a --- /dev/null +++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/grid/LayoutPatchesMap.java @@ -0,0 +1,61 @@ +/* + * 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.causeway.core.metamodel.services.grid; + +import java.util.Map; +import java.util.Optional; +import java.util.concurrent.ConcurrentHashMap; + +import org.apache.causeway.applib.layout.resource.LayoutResource; +import org.apache.causeway.applib.services.grid.GridService.LayoutKey; +import org.springframework.lang.NonNull; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import lombok.experimental.Accessors; + +/** + * Just a wrapper around a concurrent map, that stores patched layout resources. + */ +@RequiredArgsConstructor @Getter @Accessors(fluent = true) +final class LayoutPatchesMap { + + /** + * Can be uploaded via UI, for prototyping or troubleshooting. + * Those are meant to overrule the default lookup. + */ + final Map layoutPatches; + + public LayoutPatchesMap() { + this(new ConcurrentHashMap<>()); + } + + public Optional lookupPatchedLayoutResource( + @NonNull LayoutKey layoutKey) { + return Optional.ofNullable(layoutPatches.get(layoutKey)); + } + + public LayoutPatchesMap putPatchedLayoutResource( + @NonNull LayoutKey layoutKey, + @NonNull LayoutResource layoutResource) { + layoutPatches.put(layoutKey, layoutResource); + return this; + } + +} diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/grid/LayoutResourceLookup.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/grid/LayoutResourceLookup.java index cf13f865fb5..15362499145 100644 --- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/grid/LayoutResourceLookup.java +++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/grid/LayoutResourceLookup.java @@ -55,25 +55,35 @@ final class LayoutResourceLookup { private final Can layoutResourceLoaders; - /** - * In effect is used as a Set. (there is no concurrent hash set) - */ + /** + * In effect is used as a Set. (there is no concurrent hash set) + */ private final Map knownInvalidKeys; + /** + * Patched layouts can be uploaded via UI, for prototyping or troubleshooting. + * Those are meant to overrule the default lookup. + */ + private final LayoutPatchesMap layoutPatchesMap; public LayoutResourceLookup( final Can layoutResourceLoaders) { - this(layoutResourceLoaders, new ConcurrentHashMap<>()); + this(layoutResourceLoaders, new ConcurrentHashMap<>(), new LayoutPatchesMap()); } /** * if known invalid returns {@link Optional#empty()} */ - public Optional lookupLayoutResource( + Optional lookupLayoutResource( final LayoutKey layoutKey, final EnumSet supportedFormats) { if(isKnownInvalid(layoutKey)) return Optional.empty(); + + var patchedLayoutResourceOpt = layoutPatchesMap.lookupPatchedLayoutResource(layoutKey); + if(patchedLayoutResourceOpt.isPresent()) { + return patchedLayoutResourceOpt; + } var layoutResourceOpt = MetaModelContext.instance() .flatMap(mmc->mmc.specForType(layoutKey.domainClass())) @@ -97,19 +107,28 @@ public Optional lookupLayoutResource( return Optional.empty(); } + + /** + * Adds given {@link LayoutResource} to the map of patched layouts. + * Patched layouts overrule the default lookup process. + */ + void addPatchedLayout(LayoutKey layoutKey, LayoutResource layoutResource) { + layoutPatchesMap.putPatchedLayoutResource(layoutKey, layoutResource); + unmarkInvalid(layoutKey.domainClass()); // re-evalute validity later on next load + } boolean isKnownInvalid(final LayoutKey layoutKey) { return knownInvalidKeys.get(layoutKey)!=null; } - public void markInvalid(final LayoutKey layoutKey) { + void markInvalid(final LayoutKey layoutKey) { knownInvalidKeys.put(layoutKey, layoutKey); } /** * To support metamodel invalidation/rebuilding of spec. */ - public void unmarkInvalid(final Class domainClass) { + void unmarkInvalid(final Class domainClass) { knownInvalidKeys.entrySet().removeIf(entry->entry.getKey().domainClass().equals(domainClass)); } diff --git a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/app/CommandLogMenu.java b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/app/CommandLogMenu.java index 70285c2f1a7..1d973590406 100644 --- a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/app/CommandLogMenu.java +++ b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/app/CommandLogMenu.java @@ -19,12 +19,9 @@ package org.apache.causeway.extensions.commandlog.applib.app; import java.sql.Timestamp; -import java.time.Instant; import java.time.LocalDate; -import java.time.LocalDateTime; import java.time.ZoneId; import java.time.temporal.ChronoUnit; -import java.time.temporal.TemporalUnit; import java.util.List; import javax.inject.Inject; @@ -37,7 +34,6 @@ import org.apache.causeway.applib.annotation.MemberSupport; import org.apache.causeway.applib.annotation.ParameterLayout; import org.apache.causeway.applib.annotation.PriorityPrecedence; -import org.apache.causeway.applib.annotation.PropertyLayout; import org.apache.causeway.applib.annotation.Publishing; import org.apache.causeway.applib.annotation.RestrictTo; import org.apache.causeway.applib.annotation.SemanticsOf; @@ -48,9 +44,7 @@ import org.apache.causeway.extensions.commandlog.applib.dom.replay.CommandExportManager; import org.apache.causeway.extensions.commandlog.applib.dom.replay.CommandReplayManager; import org.apache.causeway.extensions.commandlog.applib.dom.replay.ReplayContext; - import org.jspecify.annotations.NonNull; - import org.springframework.lang.Nullable; import lombok.RequiredArgsConstructor; diff --git a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/CommandLogEntryRepositoryAbstract.java b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/CommandLogEntryRepositoryAbstract.java index bff9967e360..d81fdebf1e1 100644 --- a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/CommandLogEntryRepositoryAbstract.java +++ b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/CommandLogEntryRepositoryAbstract.java @@ -26,11 +26,10 @@ import java.util.List; import java.util.Optional; import java.util.UUID; -import java.util.stream.Collectors; import javax.inject.Inject; import javax.inject.Provider; - + import org.apache.causeway.applib.query.Query; import org.apache.causeway.applib.query.QueryRange; import org.apache.causeway.applib.services.bookmark.Bookmark; diff --git a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/replay/CommandReplayManager.java b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/replay/CommandReplayManager.java index b6f5e9d6aad..c1554fd112f 100644 --- a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/replay/CommandReplayManager.java +++ b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/replay/CommandReplayManager.java @@ -18,6 +18,8 @@ */ package org.apache.causeway.extensions.commandlog.applib.dom.replay; +import static org.apache.causeway.extensions.commandlog.applib.dom.replay.TimestampMarshallUtil.fromString; + import java.sql.Timestamp; import java.util.List; import java.util.stream.Collectors; @@ -43,16 +45,12 @@ import org.apache.causeway.applib.annotation.SemanticsOf; import org.apache.causeway.applib.util.schema.CommandDtoUtils; import org.apache.causeway.applib.value.Blob; -import org.apache.causeway.applib.value.Clob; -import org.apache.causeway.applib.value.NamedWithMimeType.CommonMimeType; import org.apache.causeway.extensions.commandlog.applib.CausewayModuleExtCommandLogApplib; import org.apache.causeway.extensions.commandlog.applib.dom.CommandLogEntryRepository; import org.apache.causeway.schema.cmd.v2.CommandDto; import lombok.Getter; -import static org.apache.causeway.extensions.commandlog.applib.dom.replay.TimestampMarshallUtil.fromString; - @DomainObject(introspection = Introspection.ANNOTATION_REQUIRED) @DomainObjectLayout(cssClassFa = "solid circle-play") @Named(CommandReplayManager.LOGICAL_TYPE_NAME) diff --git a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/replay/ReplayableCommand.java b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/replay/ReplayableCommand.java index 76696e9112b..0ef6eb255ff 100644 --- a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/replay/ReplayableCommand.java +++ b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/dom/replay/ReplayableCommand.java @@ -24,30 +24,22 @@ import java.util.Comparator; import java.util.Optional; import java.util.UUID; -import java.util.concurrent.Callable; import java.util.concurrent.Executors; import javax.inject.Inject; import javax.inject.Named; import org.apache.causeway.applib.ViewModel; -import org.apache.causeway.applib.annotation.Action; -import org.apache.causeway.applib.annotation.ActionLayout; import org.apache.causeway.applib.annotation.DomainObject; import org.apache.causeway.applib.annotation.DomainObjectLayout; import org.apache.causeway.applib.annotation.Introspection; import org.apache.causeway.applib.annotation.LabelPosition; -import org.apache.causeway.applib.annotation.MemberSupport; import org.apache.causeway.applib.annotation.ObjectSupport; import org.apache.causeway.applib.annotation.Programmatic; import org.apache.causeway.applib.annotation.Property; import org.apache.causeway.applib.annotation.PropertyLayout; -import org.apache.causeway.applib.annotation.Publishing; -import org.apache.causeway.applib.annotation.RestrictTo; -import org.apache.causeway.applib.annotation.SemanticsOf; import org.apache.causeway.applib.annotation.Where; import org.apache.causeway.applib.jaxb.JavaTimeXMLGregorianCalendarMarshalling; -import org.apache.causeway.applib.services.bookmark.Bookmark; import org.apache.causeway.applib.services.command.CommandExecutorService.InteractionContextPolicy; import org.apache.causeway.commons.functional.Try; import org.apache.causeway.commons.internal.base._Refs.ObjectReference; @@ -64,7 +56,6 @@ import org.apache.causeway.valuetypes.asciidoc.applib.value.AsciiDoc; import org.apache.causeway.valuetypes.asciidoc.builder.AsciiDocBuilder; import org.apache.causeway.valuetypes.asciidoc.builder.AsciiDocFactory; - import org.springframework.transaction.annotation.Propagation; import lombok.AllArgsConstructor; diff --git a/extensions/core/commandlog/applib/src/test/java/org/apache/causeway/extensions/commandlog/applib/integtest/CommandLog_IntegTestAbstract.java b/extensions/core/commandlog/applib/src/test/java/org/apache/causeway/extensions/commandlog/applib/integtest/CommandLog_IntegTestAbstract.java index c33dbb87666..25f08554460 100644 --- a/extensions/core/commandlog/applib/src/test/java/org/apache/causeway/extensions/commandlog/applib/integtest/CommandLog_IntegTestAbstract.java +++ b/extensions/core/commandlog/applib/src/test/java/org/apache/causeway/extensions/commandlog/applib/integtest/CommandLog_IntegTestAbstract.java @@ -18,20 +18,14 @@ */ package org.apache.causeway.extensions.commandlog.applib.integtest; -import java.sql.Timestamp; +import static org.assertj.core.api.Assertions.assertThat; + import java.util.List; import java.util.Optional; import java.util.UUID; import javax.inject.Inject; -import org.assertj.core.api.Assertions; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.Assertions.assertThat; - import org.apache.causeway.applib.clock.VirtualClock; import org.apache.causeway.applib.mixins.system.DomainChangeRecord; import org.apache.causeway.applib.services.bookmark.Bookmark; @@ -56,6 +50,10 @@ import org.apache.causeway.schema.cmd.v2.CommandDto; import org.apache.causeway.schema.cmd.v2.PropertyDto; import org.apache.causeway.testing.integtestsupport.applib.CausewayIntegrationTestAbstract; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import lombok.val; diff --git a/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/PdfjsViewer_MixinDomainWithPdfJsViewer_IntegTest.dump_facets.approved.xml b/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/PdfjsViewer_MixinDomainWithPdfJsViewer_IntegTest.dump_facets.approved.xml index 4c3901295f5..725da67afbf 100644 --- a/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/PdfjsViewer_MixinDomainWithPdfJsViewer_IntegTest.dump_facets.approved.xml +++ b/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/PdfjsViewer_MixinDomainWithPdfJsViewer_IntegTest.dump_facets.approved.xml @@ -1020,6 +1020,163 @@ org.apache.causeway.applib.value.LocalResourcePath + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.String + + + diff --git a/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/PdfjsViewer_MixinDomain_IntegTest.dump_facets.approved.xml b/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/PdfjsViewer_MixinDomain_IntegTest.dump_facets.approved.xml index bf012768faf..3aacb6a3f04 100644 --- a/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/PdfjsViewer_MixinDomain_IntegTest.dump_facets.approved.xml +++ b/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/PdfjsViewer_MixinDomain_IntegTest.dump_facets.approved.xml @@ -1013,6 +1013,163 @@ org.apache.causeway.applib.value.LocalResourcePath + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.String + + + diff --git a/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/PdfjsViewer_PropDomainWithPdfjsViewer_IntegTest.dump_facets.approved.xml b/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/PdfjsViewer_PropDomainWithPdfjsViewer_IntegTest.dump_facets.approved.xml index 3404519a1b1..106cfd563d4 100644 --- a/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/PdfjsViewer_PropDomainWithPdfjsViewer_IntegTest.dump_facets.approved.xml +++ b/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/PdfjsViewer_PropDomainWithPdfjsViewer_IntegTest.dump_facets.approved.xml @@ -1010,6 +1010,163 @@ org.apache.causeway.applib.value.LocalResourcePath + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.String + + + diff --git a/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/PdfjsViewer_PropDomain_IntegTest.dump_facets.approved.xml b/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/PdfjsViewer_PropDomain_IntegTest.dump_facets.approved.xml index 443235a832b..21e7ef9a3e0 100644 --- a/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/PdfjsViewer_PropDomain_IntegTest.dump_facets.approved.xml +++ b/extensions/vw/pdfjs/metamodel/src/test/java/org/apache/causeway/extensions/pdfjs/metamodel/PdfjsViewer_PropDomain_IntegTest.dump_facets.approved.xml @@ -1003,6 +1003,163 @@ org.apache.causeway.applib.value.LocalResourcePath + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.String + + + diff --git a/incubator/extensions/core/commandreplay/secondary/src/main/java/org/apache/causeway/extensions/commandreplay/secondary/jobcallables/ReplicateAndRunCommands.java b/incubator/extensions/core/commandreplay/secondary/src/main/java/org/apache/causeway/extensions/commandreplay/secondary/jobcallables/ReplicateAndRunCommands.java index 63df7dfcba1..503033d079a 100644 --- a/incubator/extensions/core/commandreplay/secondary/src/main/java/org/apache/causeway/extensions/commandreplay/secondary/jobcallables/ReplicateAndRunCommands.java +++ b/incubator/extensions/core/commandreplay/secondary/src/main/java/org/apache/causeway/extensions/commandreplay/secondary/jobcallables/ReplicateAndRunCommands.java @@ -85,7 +85,7 @@ private void doCall() throws StatusException { // is there a pending command already? // (we fetch several at a time, so we may not have processed them all yet) - commandsToReplay = commandLogEntryRepository.findReplayPendingOrFailed(); + commandsToReplay = commandLogEntryRepository.findForegroundSinceTimestampAndWithReplayPendingOrFailed(null); if(commandsToReplay.isEmpty()) { diff --git a/incubator/extensions/core/commandreplay/secondary/src/main/java/org/apache/causeway/extensions/commandreplay/secondary/mixins/CommandLogEntry_replayQueue.java b/incubator/extensions/core/commandreplay/secondary/src/main/java/org/apache/causeway/extensions/commandreplay/secondary/mixins/CommandLogEntry_replayQueue.java index 683b4edb441..e35ea430553 100644 --- a/incubator/extensions/core/commandreplay/secondary/src/main/java/org/apache/causeway/extensions/commandreplay/secondary/mixins/CommandLogEntry_replayQueue.java +++ b/incubator/extensions/core/commandreplay/secondary/src/main/java/org/apache/causeway/extensions/commandreplay/secondary/mixins/CommandLogEntry_replayQueue.java @@ -45,7 +45,7 @@ public static class CollectionDomainEvent final CommandLogEntry commandLogEntry; public List coll() { - return commandLogEntryRepository.findReplayPendingOrFailed(); + return commandLogEntryRepository.findForegroundSinceTimestampAndWithReplayPendingOrFailed(null); } public boolean hideColl() { return !secondaryConfig.isConfigured(); diff --git a/regressiontests/domainmodel/src/test/java/org/apache/causeway/testdomain/domainmodel/MetaModelRegressionTest.verify.approved.xml b/regressiontests/domainmodel/src/test/java/org/apache/causeway/testdomain/domainmodel/MetaModelRegressionTest.verify.approved.xml index b201d5971f0..eabb951597c 100644 --- a/regressiontests/domainmodel/src/test/java/org/apache/causeway/testdomain/domainmodel/MetaModelRegressionTest.verify.approved.xml +++ b/regressiontests/domainmodel/src/test/java/org/apache/causeway/testdomain/domainmodel/MetaModelRegressionTest.verify.approved.xml @@ -877,6 +877,146 @@ org.apache.causeway.applib.value.LocalResourcePath + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.String + + + @@ -1770,6 +1910,146 @@ org.apache.causeway.applib.value.LocalResourcePath + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.String + + + @@ -2906,14 +3186,14 @@ org.apache.causeway.applib.value.LocalResourcePath - + - + @@ -2921,13 +3201,13 @@ - - + + - + @@ -2938,7 +3218,7 @@ - + @@ -2953,26 +3233,33 @@ - + - + - + - + - + - + + + + + + + + - + @@ -2986,7 +3273,140 @@ - + + + + + + + + + + + + + + + + + + + + + + + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.String + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3870,6 +4290,146 @@ org.apache.causeway.applib.value.LocalResourcePath + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.String + + + @@ -4823,14 +5383,14 @@ org.apache.causeway.applib.value.LocalResourcePath - + - + @@ -4838,13 +5398,13 @@ - - + + - + @@ -4855,7 +5415,7 @@ - + @@ -4870,26 +5430,33 @@ - + - + - + - + - + - + + + + + + + + - + @@ -4903,7 +5470,140 @@ - + + + + + + + + + + + + + + + + + + + + + + + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.String + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -6087,6 +6787,146 @@ org.apache.causeway.applib.value.LocalResourcePath + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.String + + + @@ -7488,14 +8328,14 @@ org.apache.causeway.applib.value.LocalResourcePath - + - + @@ -7503,13 +8343,13 @@ - - + + - + @@ -7520,7 +8360,7 @@ - + @@ -7535,26 +8375,33 @@ - + - + - + - + - + - + + + + + + + + - + @@ -7568,7 +8415,140 @@ - + + + + + + + + + + + + + + + + + + + + + + + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.String + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9083,6 +10063,146 @@ org.apache.causeway.applib.value.LocalResourcePath + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.String + + + @@ -10171,14 +11291,14 @@ org.apache.causeway.applib.value.LocalResourcePath - + - + @@ -10186,13 +11306,13 @@ - - + + - + @@ -10203,7 +11323,7 @@ - + @@ -10218,26 +11338,33 @@ - + - + - + - + - + - + + + + + + + + - + @@ -10251,7 +11378,140 @@ - + + + + + + + + + + + + + + + + + + + + + + + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.String + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -11242,6 +12502,146 @@ org.apache.causeway.applib.value.LocalResourcePath + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.String + + + @@ -12335,14 +13735,14 @@ org.apache.causeway.applib.value.LocalResourcePath - + - + @@ -12350,13 +13750,13 @@ - - + + - + @@ -12367,7 +13767,7 @@ - + @@ -12382,26 +13782,33 @@ - + - + - + - + - + - + + + + + + + + - + @@ -12415,7 +13822,140 @@ - + + + + + + + + + + + + + + + + + + + + + + + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.String + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -13453,6 +14993,146 @@ org.apache.causeway.applib.value.LocalResourcePath + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.String + + + @@ -14644,14 +16324,14 @@ org.apache.causeway.applib.value.LocalResourcePath - + - + @@ -14659,13 +16339,13 @@ - - + + - + @@ -14676,7 +16356,7 @@ - + @@ -14691,26 +16371,33 @@ - + - + - + - + - + - + + + + + + + + - + @@ -14724,7 +16411,140 @@ - + + + + + + + + + + + + + + + + + + + + + + + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.String + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -15984,6 +17804,146 @@ org.apache.causeway.applib.value.LocalResourcePath + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.String + + + @@ -17242,14 +19202,14 @@ org.apache.causeway.applib.value.LocalResourcePath - + - + @@ -17257,13 +19217,13 @@ - - + + - + @@ -17274,7 +19234,7 @@ - + @@ -17289,26 +19249,33 @@ - + - + - + - + - + - + + + + + + + + - + @@ -17322,7 +19289,140 @@ - + + + + + + + + + + + + + + + + + + + + + + + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.String + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -18214,6 +20314,146 @@ org.apache.causeway.applib.value.LocalResourcePath + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.String + + + @@ -19186,14 +21426,14 @@ org.apache.causeway.applib.value.LocalResourcePath - + - + @@ -19201,13 +21441,13 @@ - - + + - + @@ -19218,7 +21458,7 @@ - + @@ -19233,26 +21473,33 @@ - + - + - + - + - + - + + + + + + + + - + @@ -19266,7 +21513,140 @@ - + + + + + + + + + + + + + + + + + + + + + + + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.String + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -22977,6 +25357,146 @@ org.apache.causeway.applib.value.LocalResourcePath + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.String + + + @@ -23982,17 +26502,122 @@ - java.lang.Object + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.apache.causeway.applib.value.LocalResourcePath - + - + @@ -24000,15 +26625,15 @@ - - + + - + - + @@ -24029,29 +26654,36 @@ - + - + - + - + - + - + - + + + + + + + + - + @@ -24065,7 +26697,7 @@ - + @@ -24087,8 +26719,36 @@ - org.apache.causeway.applib.value.LocalResourcePath - + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.String + + @@ -25434,6 +28094,146 @@ org.apache.causeway.applib.value.LocalResourcePath + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.String + + + @@ -26674,17 +29474,122 @@ - java.lang.Object + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.apache.causeway.applib.value.LocalResourcePath - + - + @@ -26692,15 +29597,15 @@ - - + + - + - + @@ -26721,29 +29626,36 @@ - + - + - + - + - + - + - + + + + + + + + - + @@ -26757,7 +29669,7 @@ - + @@ -26779,8 +29691,36 @@ - org.apache.causeway.applib.value.LocalResourcePath - + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.String + + @@ -31822,6 +34762,146 @@ org.apache.causeway.applib.value.LocalResourcePath + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.String + + + @@ -34299,17 +37379,122 @@ - java.lang.Object + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.apache.causeway.applib.value.LocalResourcePath - + - + @@ -34317,15 +37502,15 @@ - - + + - + - + @@ -34346,29 +37531,36 @@ - + - + - + - + - + - + - + + + + + + + + - + @@ -34382,7 +37574,7 @@ - + @@ -34404,8 +37596,36 @@ - org.apache.causeway.applib.value.LocalResourcePath - + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.String + + @@ -35374,6 +38594,146 @@ org.apache.causeway.applib.value.LocalResourcePath + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.String + + + @@ -36436,8 +39796,148 @@ - org.apache.causeway.applib.value.LocalResourcePath - + org.apache.causeway.applib.value.LocalResourcePath + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.String + + @@ -37809,6 +41309,146 @@ org.apache.causeway.applib.value.LocalResourcePath + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.String + + + @@ -38946,6 +42586,146 @@ org.apache.causeway.applib.value.LocalResourcePath + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.Object + + + + + + + + + + + + + + + + + + + + + + + + + + + java.lang.String + + +