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 2021/07/05 11:49:53 UTC

[isis] branch master updated: ISIS-2787: remove the need for canonical facets (use FacetRanking instead)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 5306000  ISIS-2787: remove the need for canonical facets (use FacetRanking instead)
5306000 is described below

commit 5306000f840e83c23d7739e17d62e28187ad8c00
Author: andi-huber <ah...@apache.org>
AuthorDate: Mon Jul 5 13:49:39 2021 +0200

    ISIS-2787: remove the need for canonical facets (use FacetRanking
    instead)
---
 .../layout/MemberNamedFacetForActionXml.java       |  2 +-
 .../all/described/CanonicalDescribedFacet.java     | 37 ----------
 .../described/CanonicalDescribedFacetAbstract.java | 47 -------------
 .../facets/all/described/MemberDescribedFacet.java |  5 ++
 .../imperative/HasImperativeTextFacetAbstract.java |  2 +-
 .../facets/all/named/CanonicalNamedFacet.java      | 38 ----------
 .../all/named/CanonicalNamedFacetAbstract.java     | 42 ------------
 ...medFacetInferredFromAssociationNaturalName.java | 30 --------
 .../facets/all/named/MemberNamedFacet.java         |  5 ++
 ...escribedFacetForCollectionLayoutAnnotation.java | 50 --------------
 .../CanonicalDescribedFacetForCollectionXml.java   | 51 --------------
 ...calNamedFacetForCollectionLayoutAnnotation.java | 50 --------------
 .../CanonicalNamedFacetForCollectionXml.java       | 52 --------------
 .../layout/CollectionLayoutFacetFactory.java       |  8 ---
 .../MemberDescribedFacetForCollectionXml.java      |  2 +-
 .../layout/MemberNamedFacetForCollectionXml.java   |  2 +-
 ...lDescribedFacetForPropertyLayoutAnnotation.java | 49 -------------
 .../CanonicalDescribedFacetForPropertyXml.java     | 51 --------------
 ...nicalNamedFacetForPropertyLayoutAnnotation.java | 52 --------------
 .../CanonicalNamedFacetForPropertyXml.java         | 50 --------------
 .../MemberDescribedFacetForPropertyXml.java        |  2 +-
 .../MemberNamedFacetForPropertyXml.java            |  2 +-
 .../propertylayout/PropertyLayoutFacetFactory.java |  8 ---
 .../i18n/InferCanonicalNamingPostProcessor.java    | 80 ----------------------
 .../all/i18n/TranslationPostProcessor.java         | 10 +--
 .../dflt/ProgrammingModelFacetsJava8.java          |  3 -
 .../services/grid/GridSystemServiceAbstract.java   |  8 ---
 27 files changed, 18 insertions(+), 720 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/MemberNamedFacetForActionXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/MemberNamedFacetForActionXml.java
index 7e61bdf..92d10da 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/MemberNamedFacetForActionXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/MemberNamedFacetForActionXml.java
@@ -43,7 +43,7 @@ extends MemberNamedFacetWithStaticTextAbstract {
     }
 
     private MemberNamedFacetForActionXml(final String named, final FacetHolder holder) {
-        super(named, holder);
+        super(named, holder, Precedence.HIGH); // XML layout overrules layout from annotations
     }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/CanonicalDescribedFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/CanonicalDescribedFacet.java
deleted file mode 100644
index 8c43cc6..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/CanonicalDescribedFacet.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- *  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.isis.core.metamodel.facets.all.described;
-
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticText;
-import org.apache.isis.core.metamodel.facets.all.named.CanonicalNamedFacet;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-
-/**
- * Provides the text that's returned by {@link ObjectAssociation#getCanonicalDescription()}.
- * @see ObjectAssociation#getCanonicalDescription()
- * @see CanonicalNamedFacet
- * @since 2.0
- */
-public interface CanonicalDescribedFacet
-extends
-    Facet,
-    HasStaticText {
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/CanonicalDescribedFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/CanonicalDescribedFacetAbstract.java
deleted file mode 100644
index 39ce07e..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/CanonicalDescribedFacetAbstract.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- *  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.isis.core.metamodel.facets.all.described;
-
-import org.apache.isis.applib.services.i18n.TranslationContext;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticTextFacetAbstract;
-
-/**
- * The base for the {@link CanonicalDescribedFacet}.
- * @since 2.0
- */
-public class CanonicalDescribedFacetAbstract
-extends HasStaticTextFacetAbstract
-implements CanonicalDescribedFacet {
-
-    private static final Class<? extends Facet> type() {
-        return CanonicalDescribedFacet.class;
-    }
-
-    protected CanonicalDescribedFacetAbstract(
-            final String originalText,
-            final FacetHolder holder) {
-        super(type(),
-                TranslationContext.forTranslationContextHolder(holder.getFeatureIdentifier()),
-                originalText,
-                holder);
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/MemberDescribedFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/MemberDescribedFacet.java
index 6e05a28..26e83af 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/MemberDescribedFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/described/MemberDescribedFacet.java
@@ -29,4 +29,9 @@ extends
 
     _Either<HasStaticText, HasImperativeText> getSpecialization();
 
+    @Override
+    default boolean isPopulateAllFacetRanks() {
+        return true;
+    }
+
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/imperative/HasImperativeTextFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/imperative/HasImperativeTextFacetAbstract.java
index d50941f..710a381 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/imperative/HasImperativeTextFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i8n/imperative/HasImperativeTextFacetAbstract.java
@@ -50,7 +50,7 @@ implements
             final Method method,
             final FacetHolder holder) {
         // imperative takes precedence over any other (except for events)
-        super(facetType, holder, Precedence.HIGH);
+        super(facetType, holder, Precedence.IMPERATIVE);
         this.method = method;
         this.translationContext = translationContext;
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/CanonicalNamedFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/CanonicalNamedFacet.java
deleted file mode 100644
index 35469d6..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/CanonicalNamedFacet.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- *  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.isis.core.metamodel.facets.all.named;
-
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticText;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-
-/**
- * Provides the text that's returned by {@link ObjectAssociation#getCanonicalFriendlyName()}.
- *
- * @apiNote yet used for properties and collections, but could be extended to actions as well, should there be an use-case
- *
- * @see ObjectAssociation#getCanonicalFriendlyName()
- * @since 2.0
- */
-public interface CanonicalNamedFacet
-extends
-    Facet,
-    HasStaticText {
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/CanonicalNamedFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/CanonicalNamedFacetAbstract.java
deleted file mode 100644
index 02ee82b..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/CanonicalNamedFacetAbstract.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package org.apache.isis.core.metamodel.facets.all.named;
-
-import org.apache.isis.applib.services.i18n.TranslationContext;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.i8n.staatic.HasStaticTextFacetAbstract;
-
-/**
- * The base for the {@link CanonicalNamedFacet}.
- *
- * @see CanonicalNamedFacet
- * @since 2.0
- */
-public abstract class CanonicalNamedFacetAbstract
-extends HasStaticTextFacetAbstract
-implements CanonicalNamedFacet {
-
-    private static final Class<? extends Facet> type() {
-        return CanonicalNamedFacet.class;
-    }
-
-    protected CanonicalNamedFacetAbstract(
-            final String originalText,
-            final FacetHolder holder) {
-        this(
-                originalText,
-                holder,
-                Precedence.DEFAULT);
-    }
-
-    protected CanonicalNamedFacetAbstract(
-            final String originalText,
-            final FacetHolder holder,
-            final Precedence precedence) {
-        super(type(),
-                TranslationContext.forTranslationContextHolder(holder.getFeatureIdentifier()),
-                originalText,
-                holder,
-                precedence);
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/CanonicalNamedFacetInferredFromAssociationNaturalName.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/CanonicalNamedFacetInferredFromAssociationNaturalName.java
deleted file mode 100644
index e81177b..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/CanonicalNamedFacetInferredFromAssociationNaturalName.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- *  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.isis.core.metamodel.facets.all.named;
-
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-
-public class CanonicalNamedFacetInferredFromAssociationNaturalName
-extends CanonicalNamedFacetAbstract {
-
-    public CanonicalNamedFacetInferredFromAssociationNaturalName(ObjectAssociation association) {
-        super(association.getFeatureIdentifier().getMemberNaturalName(), association, Precedence.INFERRED);
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/MemberNamedFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/MemberNamedFacet.java
index 776986a..ba7a6bf 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/MemberNamedFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/MemberNamedFacet.java
@@ -29,4 +29,9 @@ extends
 
     _Either<HasStaticText, HasImperativeText> getSpecialization();
 
+    @Override
+    default boolean isPopulateAllFacetRanks() {
+        return true;
+    }
+
 }
\ No newline at end of file
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/CanonicalDescribedFacetForCollectionLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/CanonicalDescribedFacetForCollectionLayoutAnnotation.java
deleted file mode 100644
index 1ea489d..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/CanonicalDescribedFacetForCollectionLayoutAnnotation.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- *  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.isis.core.metamodel.facets.collections.layout;
-
-import java.util.Optional;
-
-import org.apache.isis.applib.annotation.CollectionLayout;
-import org.apache.isis.commons.internal.base._Strings;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.described.CanonicalDescribedFacet;
-import org.apache.isis.core.metamodel.facets.all.described.CanonicalDescribedFacetAbstract;
-
-public class CanonicalDescribedFacetForCollectionLayoutAnnotation
-extends CanonicalDescribedFacetAbstract {
-
-    public static Optional<CanonicalDescribedFacet> create(
-            final Optional<CollectionLayout> collectionLayoutIfAny,
-            final FacetHolder holder) {
-
-        return collectionLayoutIfAny
-                .map(CollectionLayout::describedAs)
-                .filter(_Strings::isNotEmpty)
-                .map(describedAs ->
-                    new CanonicalDescribedFacetForCollectionLayoutAnnotation(describedAs, holder));
-    }
-
-    private CanonicalDescribedFacetForCollectionLayoutAnnotation(
-            final String described,
-            final FacetHolder holder) {
-        super(described, holder);
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/CanonicalDescribedFacetForCollectionXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/CanonicalDescribedFacetForCollectionXml.java
deleted file mode 100644
index 6098688..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/CanonicalDescribedFacetForCollectionXml.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- *  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.isis.core.metamodel.facets.collections.layout;
-
-import java.util.Optional;
-
-import org.apache.isis.applib.layout.component.CollectionLayoutData;
-import org.apache.isis.commons.internal.base._Strings;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.described.CanonicalDescribedFacet;
-import org.apache.isis.core.metamodel.facets.all.described.CanonicalDescribedFacetAbstract;
-
-public class CanonicalDescribedFacetForCollectionXml
-extends CanonicalDescribedFacetAbstract {
-
-    public static Optional<CanonicalDescribedFacet> create(
-            final CollectionLayoutData collectionLayout,
-            final FacetHolder holder) {
-        if(collectionLayout == null) {
-            return Optional.empty();
-        }
-        final String describedAs = _Strings.emptyToNull(collectionLayout.getDescribedAs());
-        return describedAs != null
-                ? Optional.of(new CanonicalDescribedFacetForCollectionXml(describedAs, holder))
-                : Optional.empty();
-    }
-
-    private CanonicalDescribedFacetForCollectionXml(
-            final String described,
-            final FacetHolder holder) {
-        super(described, holder);
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/CanonicalNamedFacetForCollectionLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/CanonicalNamedFacetForCollectionLayoutAnnotation.java
deleted file mode 100644
index e2c7d56..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/CanonicalNamedFacetForCollectionLayoutAnnotation.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- *  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.isis.core.metamodel.facets.collections.layout;
-
-import java.util.Optional;
-
-import org.apache.isis.applib.annotation.CollectionLayout;
-import org.apache.isis.commons.internal.base._Strings;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.named.CanonicalNamedFacet;
-import org.apache.isis.core.metamodel.facets.all.named.CanonicalNamedFacetAbstract;
-
-public class CanonicalNamedFacetForCollectionLayoutAnnotation
-extends CanonicalNamedFacetAbstract {
-
-    public static Optional<CanonicalNamedFacet> create(
-            final Optional<CollectionLayout> collectionLayoutIfAny,
-            final FacetHolder holder) {
-
-        return collectionLayoutIfAny
-        .filter(collectionLayout -> _Strings.emptyToNull(collectionLayout.named()) != null)
-        .map(collectionLayout ->
-            new CanonicalNamedFacetForCollectionLayoutAnnotation(collectionLayout.named(), holder));
-    }
-
-    private CanonicalNamedFacetForCollectionLayoutAnnotation(
-            final String named,
-            final FacetHolder holder) {
-
-        super(named, holder);
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/CanonicalNamedFacetForCollectionXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/CanonicalNamedFacetForCollectionXml.java
deleted file mode 100644
index f18c2e6..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/CanonicalNamedFacetForCollectionXml.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- *  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.isis.core.metamodel.facets.collections.layout;
-
-import java.util.Optional;
-
-import org.apache.isis.applib.layout.component.CollectionLayoutData;
-import org.apache.isis.commons.internal.base._Strings;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.named.CanonicalNamedFacet;
-import org.apache.isis.core.metamodel.facets.all.named.CanonicalNamedFacetAbstract;
-
-public class CanonicalNamedFacetForCollectionXml
-extends CanonicalNamedFacetAbstract {
-
-    public static Optional<CanonicalNamedFacet> create(
-            final CollectionLayoutData collectionLayout,
-            final FacetHolder holder) {
-        if(collectionLayout == null) {
-            return Optional.empty();
-        }
-        final String named = _Strings.emptyToNull(collectionLayout.getNamed());
-        return named != null
-                ? Optional.of(new CanonicalNamedFacetForCollectionXml(named, holder))
-                : Optional.empty();
-    }
-
-    private CanonicalNamedFacetForCollectionXml(
-            final String named,
-            final FacetHolder holder) {
-
-        super(named, holder);
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/CollectionLayoutFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/CollectionLayoutFacetFactory.java
index be346b1..f3150a7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/CollectionLayoutFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/CollectionLayoutFacetFactory.java
@@ -60,10 +60,6 @@ extends FacetFactoryAbstract {
                 .create(collectionLayoutIfAny, facetHolder));
 
         addFacetIfPresent(
-                CanonicalDescribedFacetForCollectionLayoutAnnotation
-                .create(collectionLayoutIfAny, facetHolder));
-
-        addFacetIfPresent(
                 HiddenFacetForCollectionLayoutAnnotation
                 .create(collectionLayoutIfAny, facetHolder));
 
@@ -76,10 +72,6 @@ extends FacetFactoryAbstract {
                 .create(collectionLayoutIfAny, facetHolder));
 
         addFacetIfPresent(
-                CanonicalNamedFacetForCollectionLayoutAnnotation
-                .create(collectionLayoutIfAny, facetHolder));
-
-        addFacetIfPresent(
                 PagedFacetForCollectionLayoutAnnotation
                 .create(collectionLayoutIfAny, facetHolder));
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/MemberDescribedFacetForCollectionXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/MemberDescribedFacetForCollectionXml.java
index b836df8..1ee0b10 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/MemberDescribedFacetForCollectionXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/MemberDescribedFacetForCollectionXml.java
@@ -45,7 +45,7 @@ extends MemberDescribedFacetWithStaticTextAbstract {
     private MemberDescribedFacetForCollectionXml(
             final String described,
             final FacetHolder holder) {
-        super(described, holder);
+        super(described, holder, Precedence.HIGH); // XML layout overrules layout from annotations
     }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/MemberNamedFacetForCollectionXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/MemberNamedFacetForCollectionXml.java
index a510e17..53f0ebc 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/MemberNamedFacetForCollectionXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/MemberNamedFacetForCollectionXml.java
@@ -46,7 +46,7 @@ extends MemberNamedFacetWithStaticTextAbstract {
             final String named,
             final FacetHolder holder) {
 
-        super(named, holder);
+        super(named, holder, Precedence.HIGH); // XML layout overrules layout from annotations
     }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/CanonicalDescribedFacetForPropertyLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/CanonicalDescribedFacetForPropertyLayoutAnnotation.java
deleted file mode 100644
index a280406..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/CanonicalDescribedFacetForPropertyLayoutAnnotation.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- *  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.isis.core.metamodel.facets.properties.propertylayout;
-
-import java.util.Optional;
-
-import org.apache.isis.applib.annotation.PropertyLayout;
-import org.apache.isis.commons.internal.base._Strings;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.described.CanonicalDescribedFacet;
-import org.apache.isis.core.metamodel.facets.all.described.CanonicalDescribedFacetAbstract;
-
-public class CanonicalDescribedFacetForPropertyLayoutAnnotation
-extends CanonicalDescribedFacetAbstract {
-
-    public static Optional<CanonicalDescribedFacet> create(
-            final Optional<PropertyLayout> propertyLayoutIfAny,
-            final FacetHolder holder) {
-
-        return propertyLayoutIfAny
-                .map(PropertyLayout::describedAs)
-                .filter(_Strings::isNotEmpty)
-                .map(describedAs -> new CanonicalDescribedFacetForPropertyLayoutAnnotation(describedAs, holder));
-    }
-
-    private CanonicalDescribedFacetForPropertyLayoutAnnotation(
-            final String described,
-            final FacetHolder holder) {
-        super(described, holder);
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/CanonicalDescribedFacetForPropertyXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/CanonicalDescribedFacetForPropertyXml.java
deleted file mode 100644
index 9f42eb9..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/CanonicalDescribedFacetForPropertyXml.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- *  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.isis.core.metamodel.facets.properties.propertylayout;
-
-import java.util.Optional;
-
-import org.apache.isis.applib.layout.component.PropertyLayoutData;
-import org.apache.isis.commons.internal.base._Strings;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.described.CanonicalDescribedFacet;
-import org.apache.isis.core.metamodel.facets.all.described.CanonicalDescribedFacetAbstract;
-
-public class CanonicalDescribedFacetForPropertyXml
-extends CanonicalDescribedFacetAbstract {
-
-    public static Optional<CanonicalDescribedFacet> create(
-            final PropertyLayoutData propertyLayoutData,
-            final FacetHolder holder) {
-
-        return Optional.ofNullable(propertyLayoutData)
-        .map(PropertyLayoutData::getDescribedAs)
-        .filter(_Strings::isEmpty)
-        .map(describedAs->new CanonicalDescribedFacetForPropertyXml(
-                describedAs,
-                holder));
-    }
-
-    private CanonicalDescribedFacetForPropertyXml(
-            final String described,
-            final FacetHolder holder) {
-        super(described, holder);
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/CanonicalNamedFacetForPropertyLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/CanonicalNamedFacetForPropertyLayoutAnnotation.java
deleted file mode 100644
index 76f2f22..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/CanonicalNamedFacetForPropertyLayoutAnnotation.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- *  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.isis.core.metamodel.facets.properties.propertylayout;
-
-import java.util.Optional;
-
-import org.apache.isis.applib.annotation.PropertyLayout;
-import org.apache.isis.commons.internal.base._Strings;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.named.CanonicalNamedFacet;
-import org.apache.isis.core.metamodel.facets.all.named.CanonicalNamedFacetAbstract;
-
-public class CanonicalNamedFacetForPropertyLayoutAnnotation
-extends CanonicalNamedFacetAbstract {
-
-    public static Optional<CanonicalNamedFacet> create(
-            final Optional<PropertyLayout> propertyLayoutIfAny,
-            final FacetHolder holder) {
-
-        return propertyLayoutIfAny
-                .filter(propertyLayout->_Strings.isNotEmpty(propertyLayout.named()))
-                .map(propertyLayout ->
-                    new CanonicalNamedFacetForPropertyLayoutAnnotation(
-                        propertyLayout.named(),
-                        holder));
-    }
-
-    private CanonicalNamedFacetForPropertyLayoutAnnotation(
-            final String named,
-            final FacetHolder holder) {
-
-        super(named, holder);
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/CanonicalNamedFacetForPropertyXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/CanonicalNamedFacetForPropertyXml.java
deleted file mode 100644
index f2f1a02..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/CanonicalNamedFacetForPropertyXml.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- *  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.isis.core.metamodel.facets.properties.propertylayout;
-
-import java.util.Optional;
-
-import org.apache.isis.applib.layout.component.PropertyLayoutData;
-import org.apache.isis.commons.internal.base._Strings;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.all.named.CanonicalNamedFacet;
-import org.apache.isis.core.metamodel.facets.all.named.CanonicalNamedFacetAbstract;
-
-public class CanonicalNamedFacetForPropertyXml
-extends CanonicalNamedFacetAbstract {
-
-    public static Optional<CanonicalNamedFacet> create(
-            final PropertyLayoutData propertyLayoutData,
-            final FacetHolder holder) {
-
-        return Optional.ofNullable(propertyLayoutData)
-        .map(PropertyLayoutData::getNamed)
-        .filter(_Strings::isEmpty)
-        .map(named->new CanonicalNamedFacetForPropertyXml(
-                named,
-                holder));
-    }
-
-    private CanonicalNamedFacetForPropertyXml(
-            final String named,
-            final FacetHolder holder) {
-        super(named, holder);
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/MemberDescribedFacetForPropertyXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/MemberDescribedFacetForPropertyXml.java
index 0ad19ee..4f9cab6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/MemberDescribedFacetForPropertyXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/MemberDescribedFacetForPropertyXml.java
@@ -45,7 +45,7 @@ extends MemberDescribedFacetWithStaticTextAbstract {
     private MemberDescribedFacetForPropertyXml(
             final String described,
             final FacetHolder holder) {
-        super(described, holder);
+        super(described, holder, Precedence.HIGH); // XML layout overrules layout from annotations
     }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/MemberNamedFacetForPropertyXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/MemberNamedFacetForPropertyXml.java
index afeb1da..7acdd41 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/MemberNamedFacetForPropertyXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/MemberNamedFacetForPropertyXml.java
@@ -44,7 +44,7 @@ extends MemberNamedFacetWithStaticTextAbstract {
     private MemberNamedFacetForPropertyXml(
             final String named,
             final FacetHolder holder) {
-        super(named, holder);
+        super(named, holder, Precedence.HIGH); // XML layout overrules layout from annotations
     }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/PropertyLayoutFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/PropertyLayoutFacetFactory.java
index aba2408..14a6cac 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/PropertyLayoutFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/PropertyLayoutFacetFactory.java
@@ -58,10 +58,6 @@ extends FacetFactoryAbstract {
                 .create(propertyLayoutIfAny, facetHolder));
 
         addFacetIfPresent(
-                CanonicalDescribedFacetForPropertyLayoutAnnotation
-                .create(propertyLayoutIfAny, facetHolder));
-
-        addFacetIfPresent(
                 HiddenFacetForPropertyLayoutAnnotation
                 .create(propertyLayoutIfAny, facetHolder));
 
@@ -86,10 +82,6 @@ extends FacetFactoryAbstract {
                 .create(propertyLayoutIfAny, facetHolder));
 
         addFacetIfPresent(
-                CanonicalNamedFacetForPropertyLayoutAnnotation
-                .create(propertyLayoutIfAny, facetHolder));
-
-        addFacetIfPresent(
                 PromptStyleFacetForPropertyLayoutAnnotation
                 .create(propertyLayoutIfAny, getConfiguration(), facetHolder));
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/i18n/InferCanonicalNamingPostProcessor.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/i18n/InferCanonicalNamingPostProcessor.java
deleted file mode 100644
index c13009c..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/i18n/InferCanonicalNamingPostProcessor.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- *  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.isis.core.metamodel.postprocessors.all.i18n;
-
-
-import javax.inject.Inject;
-
-import org.apache.isis.core.metamodel.context.MetaModelContext;
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import org.apache.isis.core.metamodel.facets.all.named.CanonicalNamedFacet;
-import org.apache.isis.core.metamodel.facets.all.named.CanonicalNamedFacetInferredFromAssociationNaturalName;
-import org.apache.isis.core.metamodel.postprocessors.ObjectSpecificationPostProcessorAbstract;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
-import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
-import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
-
-/**
- * Installs {@link CanonicalNamedFacet}(s) on members of type PROPERTY and COLLECTION, if not already present.
- * @see CanonicalNamedFacet
- * @since 2.0
- */
-public class InferCanonicalNamingPostProcessor
-extends ObjectSpecificationPostProcessorAbstract {
-
-    @Inject
-    public InferCanonicalNamingPostProcessor(final MetaModelContext metaModelContext) {
-        super(metaModelContext);
-    }
-
-    @Override
-    protected void doPostProcess(final ObjectSpecification objectSpecification) {
-    }
-
-    @Override
-    protected void doPostProcess(final ObjectSpecification objectSpecification, final ObjectAction act) {
-    }
-
-    @Override
-    protected void doPostProcess(final ObjectSpecification objectSpecification, final ObjectAction objectAction, final ObjectActionParameter param) {
-    }
-
-    @Override
-    protected void doPostProcess(final ObjectSpecification objectSpecification, final OneToOneAssociation prop) {
-        doPostProcessAssociation(prop);
-    }
-
-    @Override
-    protected void doPostProcess(final ObjectSpecification objectSpecification, final OneToManyAssociation coll) {
-        doPostProcessAssociation(coll);
-    }
-
-    // -- HELPER
-
-    private void doPostProcessAssociation(ObjectAssociation association) {
-        if(!association.lookupFacet(CanonicalNamedFacet.class).isPresent()) {
-            FacetUtil.addFacet(
-                    new CanonicalNamedFacetInferredFromAssociationNaturalName(association));
-        }
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/i18n/TranslationPostProcessor.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/i18n/TranslationPostProcessor.java
index d2bd91c..084e624 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/i18n/TranslationPostProcessor.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/all/i18n/TranslationPostProcessor.java
@@ -26,12 +26,10 @@ import javax.inject.Inject;
 
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facets.all.described.CanonicalDescribedFacet;
 import org.apache.isis.core.metamodel.facets.all.described.MemberDescribedFacet;
 import org.apache.isis.core.metamodel.facets.all.described.ObjectDescribedFacet;
 import org.apache.isis.core.metamodel.facets.all.described.ParamDescribedFacet;
 import org.apache.isis.core.metamodel.facets.all.i8n.HasMemoizableTranslation;
-import org.apache.isis.core.metamodel.facets.all.named.CanonicalNamedFacet;
 import org.apache.isis.core.metamodel.facets.all.named.MemberNamedFacet;
 import org.apache.isis.core.metamodel.facets.all.named.ObjectNamedFacet;
 import org.apache.isis.core.metamodel.facets.all.named.ParamNamedFacet;
@@ -88,9 +86,7 @@ extends ObjectSpecificationPostProcessorAbstract {
         memoizeTranslations(
                 Stream.of(
                         prop.lookupFacet(MemberNamedFacet.class),
-                        prop.lookupFacet(MemberDescribedFacet.class),
-                        prop.lookupFacet(CanonicalNamedFacet.class),
-                        prop.lookupFacet(CanonicalDescribedFacet.class)));
+                        prop.lookupFacet(MemberDescribedFacet.class)));
     }
 
     @Override
@@ -98,9 +94,7 @@ extends ObjectSpecificationPostProcessorAbstract {
         memoizeTranslations(
                 Stream.of(
                         coll.lookupFacet(MemberNamedFacet.class),
-                        coll.lookupFacet(MemberDescribedFacet.class),
-                        coll.lookupFacet(CanonicalNamedFacet.class),
-                        coll.lookupFacet(CanonicalDescribedFacet.class)));
+                        coll.lookupFacet(MemberDescribedFacet.class)));
 
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java
index 2d20e17..966b079 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java
@@ -145,7 +145,6 @@ import org.apache.isis.core.metamodel.methods.MethodByClassMap;
 import org.apache.isis.core.metamodel.methods.OrphanedSupportingMethodValidator;
 import org.apache.isis.core.metamodel.postprocessors.DeriveMixinMembersPostProcessor;
 import org.apache.isis.core.metamodel.postprocessors.all.DeriveDescribedAsFromTypePostProcessor;
-import org.apache.isis.core.metamodel.postprocessors.all.i18n.InferCanonicalNamingPostProcessor;
 import org.apache.isis.core.metamodel.postprocessors.all.i18n.SynthesizeObjectNamingPostProcessor;
 import org.apache.isis.core.metamodel.postprocessors.all.i18n.TranslationPostProcessor;
 import org.apache.isis.core.metamodel.postprocessors.allbutparam.authorization.AuthorizationFacetPostProcessor;
@@ -386,12 +385,10 @@ extends ProgrammingModelAbstract {
 
         // must run before Object nouns are used
         addPostProcessor(PostProcessingOrder.A1_BUILTIN, new SynthesizeObjectNamingPostProcessor(mmc));
-        addPostProcessor(PostProcessingOrder.A1_BUILTIN, new InferCanonicalNamingPostProcessor(mmc));
 
         // requires member names to have settled
         addPostProcessor(PostProcessingOrder.A1_BUILTIN, new CssClassFaFacetOnMemberPostProcessor(mmc));
 
-
         addPostProcessor(PostProcessingOrder.A1_BUILTIN, new DeriveDescribedAsFromTypePostProcessor(mmc));
         addPostProcessor(PostProcessingOrder.A1_BUILTIN, new DeriveTypicalLengthFromTypePostProcessor(mmc));
         addPostProcessor(PostProcessingOrder.A1_BUILTIN, new DeriveDefaultFromTypePostProcessor(mmc));
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
index b85c702..a83e2c0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
@@ -49,8 +49,6 @@ import org.apache.isis.core.metamodel.facets.actions.layout.HiddenFacetForAction
 import org.apache.isis.core.metamodel.facets.actions.layout.MemberNamedFacetForActionXml;
 import org.apache.isis.core.metamodel.facets.actions.layout.PromptStyleFacetForActionXml;
 import org.apache.isis.core.metamodel.facets.actions.layout.RedirectFacetFromActionXml;
-import org.apache.isis.core.metamodel.facets.collections.layout.CanonicalDescribedFacetForCollectionXml;
-import org.apache.isis.core.metamodel.facets.collections.layout.CanonicalNamedFacetForCollectionXml;
 import org.apache.isis.core.metamodel.facets.collections.layout.CssClassFacetForCollectionXml;
 import org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionXml;
 import org.apache.isis.core.metamodel.facets.collections.layout.HiddenFacetForCollectionXml;
@@ -66,8 +64,6 @@ import org.apache.isis.core.metamodel.facets.object.domainobjectlayout.CssClassF
 import org.apache.isis.core.metamodel.facets.object.domainobjectlayout.CssClassFacetForDomainObjectXml;
 import org.apache.isis.core.metamodel.facets.object.domainobjectlayout.DescribedAsFacetForDomainObjectXml;
 import org.apache.isis.core.metamodel.facets.object.domainobjectlayout.ObjectNamedFacetForDomainObjectXml;
-import org.apache.isis.core.metamodel.facets.properties.propertylayout.CanonicalDescribedFacetForPropertyXml;
-import org.apache.isis.core.metamodel.facets.properties.propertylayout.CanonicalNamedFacetForPropertyXml;
 import org.apache.isis.core.metamodel.facets.properties.propertylayout.CssClassFacetForPropertyXml;
 import org.apache.isis.core.metamodel.facets.properties.propertylayout.HiddenFacetForPropertyXml;
 import org.apache.isis.core.metamodel.facets.properties.propertylayout.LabelAtFacetForPropertyXml;
@@ -249,12 +245,10 @@ implements GridSystemService<G> {
 
                 addFacetIfPresent(CssClassFacetForPropertyXml.create(propertyLayoutData, oneToOneAssociation));
                 addFacetIfPresent(MemberDescribedFacetForPropertyXml.create(propertyLayoutData, oneToOneAssociation));
-                addFacetIfPresent(CanonicalDescribedFacetForPropertyXml.create(propertyLayoutData, oneToOneAssociation));
                 addFacetIfPresent(HiddenFacetForPropertyXml.create(propertyLayoutData, oneToOneAssociation));
                 addFacetIfPresent(LabelAtFacetForPropertyXml.create(propertyLayoutData, oneToOneAssociation));
                 addFacetIfPresent(MultiLineFacetForPropertyXml.create(propertyLayoutData, oneToOneAssociation));
                 addFacetIfPresent(MemberNamedFacetForPropertyXml.create(propertyLayoutData, oneToOneAssociation));
-                addFacetIfPresent(CanonicalNamedFacetForPropertyXml.create(propertyLayoutData, oneToOneAssociation));
                 addFacetIfPresent(PromptStyleFacetForPropertyXml.create(propertyLayoutData, oneToOneAssociation));
                 addFacetIfPresent(RenderedAdjustedFacetForPropertyXml.create(propertyLayoutData, oneToOneAssociation));
                 addFacetIfPresent(UnchangingFacetForPropertyXml.create(propertyLayoutData, oneToOneAssociation));
@@ -279,10 +273,8 @@ implements GridSystemService<G> {
                 addFacetIfPresent(CssClassFacetForCollectionXml.create(collectionLayoutData, oneToManyAssociation));
                 addFacetIfPresent(DefaultViewFacetForCollectionXml.create(collectionLayoutData, oneToManyAssociation));
                 addFacetIfPresent(MemberDescribedFacetForCollectionXml.create(collectionLayoutData, oneToManyAssociation));
-                addFacetIfPresent(CanonicalDescribedFacetForCollectionXml.create(collectionLayoutData, oneToManyAssociation));
                 addFacetIfPresent(HiddenFacetForCollectionXml.create(collectionLayoutData, oneToManyAssociation));
                 addFacetIfPresent(MemberNamedFacetForCollectionXml.create(collectionLayoutData, oneToManyAssociation));
-                addFacetIfPresent(CanonicalNamedFacetForCollectionXml.create(collectionLayoutData, oneToManyAssociation));
                 addFacetIfPresent(PagedFacetForCollectionXml.create(collectionLayoutData, oneToManyAssociation));
                 addFacetIfPresent(SortedByFacetForCollectionXml.create(collectionLayoutData, oneToManyAssociation));