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/05/25 04:01:53 UTC
[isis] 01/01: ISIS-3063: don't use anonymous facet classes in OneToManyAssociationMixedIn
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
commit 19163f5f6a71ded3987f6213fada964b4ac6a0e8
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed May 25 06:01:15 2022 +0200
ISIS-3063: don't use anonymous facet classes in
OneToManyAssociationMixedIn
- use concrete facet classes instead
- also turns on the MetaModelRegressionTest
---
.../facets/actcoll/typeof/TypeOfFacetAbstract.java | 2 +-
.../typeof/TypeOfFacetFromActionReturn.java} | 10 +++++-----
.../memserexcl/SnapshotExcludeFacetAbstract.java | 4 +++-
.../update/PropertySetterFacetFactory.java | 4 ++--
...=> SnapshotExcludeFacetFromImmutableMember.java} | 5 +++--
.../specimpl/OneToManyAssociationMixedIn.java | 8 ++++----
.../domainmodel/MetaModelRegressionTest.java | 8 +++++---
.../src/test/resources/metamodel.xml.zip | Bin 90534 -> 88056 bytes
8 files changed, 23 insertions(+), 18 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actcoll/typeof/TypeOfFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actcoll/typeof/TypeOfFacetAbstract.java
index 9e4bab5297..92dfe36199 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actcoll/typeof/TypeOfFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actcoll/typeof/TypeOfFacetAbstract.java
@@ -30,7 +30,7 @@ implements TypeOfFacet {
return TypeOfFacet.class;
}
- public TypeOfFacetAbstract(final Class<?> type, final FacetHolder holder) {
+ protected TypeOfFacetAbstract(final Class<?> type, final FacetHolder holder) {
super(type(), holder, type);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/SnapshotExcludeFacetInferred.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actcoll/typeof/TypeOfFacetFromActionReturn.java
similarity index 73%
copy from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/SnapshotExcludeFacetInferred.java
copy to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actcoll/typeof/TypeOfFacetFromActionReturn.java
index c452a6691d..7b414cbb51 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/SnapshotExcludeFacetInferred.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actcoll/typeof/TypeOfFacetFromActionReturn.java
@@ -16,15 +16,15 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.core.metamodel.facets.properties.update;
+package org.apache.isis.core.metamodel.facets.actcoll.typeof;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.propcoll.memserexcl.SnapshotExcludeFacetAbstract;
-public class SnapshotExcludeFacetInferred extends SnapshotExcludeFacetAbstract {
+public class TypeOfFacetFromActionReturn
+extends TypeOfFacetAbstract {
- public SnapshotExcludeFacetInferred(final FacetHolder holder) {
- super(holder);
+ public TypeOfFacetFromActionReturn(final Class<?> type, final FacetHolder holder) {
+ super(type, holder);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propcoll/memserexcl/SnapshotExcludeFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propcoll/memserexcl/SnapshotExcludeFacetAbstract.java
index 79080fdb98..7674078a75 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propcoll/memserexcl/SnapshotExcludeFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propcoll/memserexcl/SnapshotExcludeFacetAbstract.java
@@ -22,7 +22,9 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-public abstract class SnapshotExcludeFacetAbstract extends FacetAbstract implements SnapshotExcludeFacet {
+public abstract class SnapshotExcludeFacetAbstract
+extends FacetAbstract
+implements SnapshotExcludeFacet {
private static final Class<? extends Facet> type() {
return SnapshotExcludeFacet.class;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/PropertySetterFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/PropertySetterFacetFactory.java
index 40b304b5ce..01971f48c1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/PropertySetterFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/PropertySetterFacetFactory.java
@@ -40,7 +40,7 @@ import lombok.val;
/**
* Sets up the {@link PropertySetterFacetViaSetterMethod} to invoke the
* property's setter if available, but if none then marks the property as
- * {@link SnapshotExcludeFacetInferred not-persistable}.
+ * {@link SnapshotExcludeFacetFromImmutableMember not-persistable}.
*/
public class PropertySetterFacetFactory
extends MethodPrefixBasedFacetFactoryAbstract {
@@ -79,7 +79,7 @@ extends MethodPrefixBasedFacetFactoryAbstract {
});
} else {
- addFacet(new SnapshotExcludeFacetInferred(property));
+ addFacet(new SnapshotExcludeFacetFromImmutableMember(property));
// previously we also added the DisabledFacetAlwaysEverywhere facet here.
// however, the PropertyModifyFacetFactory (which comes next) might install a PropertySetterFacet instead.
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/SnapshotExcludeFacetInferred.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/SnapshotExcludeFacetFromImmutableMember.java
similarity index 86%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/SnapshotExcludeFacetInferred.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/SnapshotExcludeFacetFromImmutableMember.java
index c452a6691d..9242a8e6f7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/SnapshotExcludeFacetInferred.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/update/SnapshotExcludeFacetFromImmutableMember.java
@@ -21,9 +21,10 @@ package org.apache.isis.core.metamodel.facets.properties.update;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.propcoll.memserexcl.SnapshotExcludeFacetAbstract;
-public class SnapshotExcludeFacetInferred extends SnapshotExcludeFacetAbstract {
+public class SnapshotExcludeFacetFromImmutableMember
+extends SnapshotExcludeFacetAbstract {
- public SnapshotExcludeFacetInferred(final FacetHolder holder) {
+ public SnapshotExcludeFacetFromImmutableMember(final FacetHolder holder) {
super(holder);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationMixedIn.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationMixedIn.java
index 2b33d494ec..fae5884b82 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationMixedIn.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationMixedIn.java
@@ -28,12 +28,12 @@ import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FacetHolderAbstract;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
-import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetAbstract;
+import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetFromActionReturn;
import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacet;
import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacetForStaticMemberName;
import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacetForContributee;
-import org.apache.isis.core.metamodel.facets.propcoll.memserexcl.SnapshotExcludeFacetAbstract;
+import org.apache.isis.core.metamodel.facets.properties.update.SnapshotExcludeFacetFromImmutableMember;
import org.apache.isis.core.metamodel.interactions.InteractionHead;
import org.apache.isis.core.metamodel.services.publishing.ExecutionPublisher;
import org.apache.isis.core.metamodel.spec.ManagedObject;
@@ -108,9 +108,9 @@ implements MixedInMember {
//
// ensure the mixedIn collection cannot be modified, and derive its TypeOfFaccet
//
- FacetUtil.addFacet(new SnapshotExcludeFacetAbstract(this) {});
+ FacetUtil.addFacet(new SnapshotExcludeFacetFromImmutableMember(this));
FacetUtil.addFacet(disabledFacet());
- FacetUtil.addFacet(new TypeOfFacetAbstract(getElementType().getCorrespondingClass(), this) {});
+ FacetUtil.addFacet(new TypeOfFacetFromActionReturn(getElementType().getCorrespondingClass(), this));
// adjust name if necessary
val isExplicitlyNamed = lookupNonFallbackFacet(MemberNamedFacet.class)
diff --git a/regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/MetaModelRegressionTest.java b/regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/MetaModelRegressionTest.java
index 1a84ccb216..e5e0912508 100644
--- a/regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/MetaModelRegressionTest.java
+++ b/regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/MetaModelRegressionTest.java
@@ -76,9 +76,12 @@ class MetaModelRegressionTest {
val url = _Resources.getResourceUrl(getClass(), "/metamodel.xml.zip");
if(url==null) {
- //createReferenceMetaModelFile(new File("/???/metamodel.xml.zip"));
+ //createReferenceMetaModelFile(new File("/<path to resources>/metamodel.xml.zip"));
_Exceptions.throwNotImplemented();
}
+
+ //for maintenance
+ //createReferenceMetaModelFile(new File("d:/tmp/_scratch/metamodel.xml.zip"));
}
@Test
@@ -88,7 +91,7 @@ class MetaModelRegressionTest {
factoryService.mixin(MetaModelServiceMenu.downloadMetaModelDiff.class, metaModelServiceMenu);
val metamodelExport =
downloadMetaModelDiff.act("metamodel.xml", namespaces(), true,
- currentMetaModelAsZippedBlob())
+ referenceMetaModelAsZippedBlob())
.unZip(CommonMimeType.XML)
.toClob(StandardCharsets.UTF_8);
@@ -101,7 +104,6 @@ class MetaModelRegressionTest {
System.err.printf("%s%n", diff);
fail("Reference meta-model and current do differ.");
}
-
}
// -- HELPER
diff --git a/regressiontests/stable-domainmodel/src/test/resources/metamodel.xml.zip b/regressiontests/stable-domainmodel/src/test/resources/metamodel.xml.zip
index 89b24cb824..085038772c 100644
Binary files a/regressiontests/stable-domainmodel/src/test/resources/metamodel.xml.zip and b/regressiontests/stable-domainmodel/src/test/resources/metamodel.xml.zip differ