You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2017/10/05 11:01:51 UTC

[isis] 04/06: ISIS-1742: deletes @Mask annotation + facets. Updates .adoc

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

danhaywood pushed a commit to branch dev/2.0.0/ISIS-1742-remove-deprecations
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 22e647d2fe523ecfbe53f6a95cb8bbc3bc731ac7
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Oct 5 12:16:07 2017 +0300

    ISIS-1742: deletes @Mask annotation + facets.  Updates .adoc
---
 .../guides/rgant/_rgant_aaa_deprecated.adoc        |   6 -
 .../org/apache/isis/applib/annotation/Mask.java    | 205 ---------------------
 .../facets/object/mask/MaskEvaluator.java          | 106 -----------
 .../metamodel/facets/object/mask/MaskFacet.java    |  46 -----
 .../facets/object/mask/MaskFacetAbstract.java      |  53 ------
 .../facets/object/mask/TitleFacetBasedOnMask.java  |  49 -----
 .../mask/annotation/MaskFacetOnTypeAnnotation.java |  55 ------
 .../MaskFacetOnTypeAnnotationFactory.java          |  76 --------
 .../facets/objectvalue/regex/RegExFacet.java       |   1 -
 .../maskannot/MaskFacetOnParameterAnnotation.java  |  55 ------
 .../MaskFacetOnParameterAnnotationFactory.java     | 103 -----------
 .../maskannot/MaskFacetOnPropertyAnnotation.java   |  51 -----
 .../MaskFacetOnPropertyAnnotationFactory.java      | 123 -------------
 .../dflt/ProgrammingModelFacetsJava5.java          |  12 +-
 .../mask/MaskAnnotationFacetFactoryTest.java       | 147 ---------------
 .../propparam/validate/mask/MaskEvaluatorTest.java |  80 --------
 todo-deprecation-list.txt                          |   2 +-
 17 files changed, 2 insertions(+), 1168 deletions(-)

diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc
index 7624f2f..34988d6 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc
@@ -103,12 +103,6 @@ Actions can still be invoked.
 |Domain
 |
 
-|`@Mask`
-|How to parse/render values (never properly supported)
-|(None)
-|UI/domain
-|
-
 
 |`@MustSatisfy`
 |Specify arbitrary specification constraints on a property or action parameter.
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/Mask.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/Mask.java
deleted file mode 100644
index 69b1e00..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/Mask.java
+++ /dev/null
@@ -1,205 +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.applib.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Inherited;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Provides a mask that a value entry should conform to.
- * 
- * <p>
- * <b>NOTE</b>: this annotation has not been implemented in the Wicket viewer.
- * Since the Wicket viewer is the only currently released viewer, this annotation
- * has been marked as deprecated to flag up this fact.
- * 
- * <p>
- * The characters that can be used are shown in the following table (adapted
- * from masks used by Swing's MaskFormatter, Java's SimpleDateFormat and also
- * Microsoft's MaskedEdit control):
- * 
- * <table border='2'>
- * <tr>
- * <th align='center'>Character</th>
- * <th align='center'>Description</th>
- * <th align='center'>Source</th>
- * </tr>
- * <tr>
- * <td align='center'>#</td>
- * <td align='left'>Digit placeholder.</td>
- * <td align='left'>MS, Swing</td>
- * </tr>
- * <tr>
- * <td align='center'>.</td>
- * <td align='left'>Decimal placeholder. The actual character used is the one
- * specified as the decimal placeholder in your international settings. This
- * character is treated as a literal for masking purposes.</td>
- * <td align='left'>MS</td>
- * </tr>
- * <tr>
- * <td align='center'>,</td>
- * <td align='left'>Thousands separator. The actual character used is the one
- * specified as the thousands separator in your international settings. This
- * character is treated as a literal for masking purposes.</td>
- * <td align='left'>MS</td>
- * </tr>
- * <tr>
- * <td align='center'>:</td>
- * <td align='left'>Time separator. This character is treated as a literal for
- * masking purposes.</td>
- * <td align='left'>MS</td>
- * </tr>
- * <tr>
- * <td align='center'>/</td>
- * <td align='left'>Date separator. This character is treated as a literal for
- * masking purposes.</td>
- * <td align='left'>MS</td>
- * </tr>
- * <tr>
- * <td align='center'>&amp;</td>
- * <td align='left'>Character placeholder. Valid values for this placeholder are
- * ANSI characters in the following ranges: 32-126 and 128-255.</td>
- * <td align='left'>MS</td>
- * </tr>
- * 
- * <tr>
- * <td align='center'>A</td>
- * <td align='left'>Alphanumeric character placeholder (
- * <code>Character.isLetter</code> or <code>Character.isDigit</code>), with
- * entry required. For example: a ~ z, A ~ Z, or 0 ~ 9.</td>
- * <td align='left'>MS</td>
- * </tr>
- * 
- * <tr>
- * <td align='center'>a</td>
- * <td align='left'>Alphanumeric character placeholder (entry optional).</td>
- * <td align='left'>MS</td>
- * </tr>
- * <tr>
- * <td align='center'>9</td>
- * <td align='left'>Digit placeholder (entry optional). For example: 0 ~ 9.</td>
- * <td align='left'>MS</td>
- * </tr>
- * <tr>
- * <td align='center'>?</td>
- * <td align='left'>Letter placeholder (<code>Character.isLetter</code>). For
- * example: a ~ z or A ~ Z.</td>
- * <td align='left'>MS, Swing</td>
- * </tr>
- * <tr>
- * <td align='center'>U</td>
- * <td align='left'>Any character (<code>Character.isLetter</code>). All
- * lowercase letters are mapped to upper case.</td>
- * <td align='left'>Swing</td>
- * </tr>
- * <tr>
- * <td align='center'>L</td>
- * <td align='left'>Any character (<code>Character.isLetter</code>). All
- * lowercase letters are mapped to lower case.</td>
- * <td align='left'>Swing</td>
- * </tr>
- * <tr>
- * <td align='center'>Literal</td>
- * <td align='left'>All other symbols are displayed as literals; that is, as
- * themselves.</td>
- * <td align='left'>MS</td>
- * </tr>
- * </table>
- * 
- * <p>
- * Can also be specified for types that are annotated as <tt>@Value</tt> types.
- * To apply, the value must have string semantics.
- * 
- * <p>
- * Not yet implemented:
- * <table border='2'>
- * <tr>
- * <th align='center'>Character</th>
- * <th align='center'>Description</th>
- * <th align='center'>Source</th>
- * </tr>
- * <tr>
- * <td align='center'>\ or '</td>
- * <td align='left'>Treat the next character in the mask string as a literal.
- * This allows you to include the '#', '&', 'A', and '?' characters in the mask.
- * This character is treated as a literal for masking purposes.</td>
- * <td align='left'>MS (\), Swing (')</td>
- * </tr>
- * <tr>
- * <td align='center'>H</td>
- * <td align='left'>Character.isLetter or Character.isDigit.</td>
- * <td align='left'>Swing</td>
- * </tr>
- * <tr>
- * <td align='center'>yy or yyyy</td>
- * <td align='left'>Year, eg 1996; 96.</td>
- * <td align='left'>DateFormat</td>
- * </tr>
- * <tr>
- * <td align='center'>MM</td>
- * <td align='left'>Two digit representation of month, eg 07 for July.</td>
- * <td align='left'>DateFormat</td>
- * </tr>
- * <tr>
- * <td align='center'>MMM</td>
- * <td align='left'>Three character representation of month, eg <i>Jul</i> for
- * July.</td>
- * <td align='left'>DateFormat</td>
- * </tr>
- * <tr>
- * <td align='center'>d</td>
- * <td align='left'>Day in month, eg 3 or 28.</td>
- * <td align='left'>DateFormat</td>
- * </tr>
- * <tr>
- * <td align='center'>dd</td>
- * <td align='left'>Two digit representation of day in month, eg 03 or 28.</td>
- * <td align='left'>DateFormat</td>
- * </tr>
- * <tr>
- * <td align='center'>HH</td>
- * <td align='left'>Two digit representation of hour in day (24 hour clock), eg
- * 05 or 19.</td>
- * <td align='left'>DateFormat</td>
- * </tr>
- * <tr>
- * <td align='center'>mm</td>
- * <td align='left'>Minute in hour, eg 02 or 47.</td>
- * <td align='left'>DateFormat</td>
- * </tr>
- * <tr>
- * <td align='center'>ss</td>
- * <td align='left'>Second in minute in hour, eg 08 or 35.</td>
- * <td align='left'>DateFormat</td>
- * </tr>
- * </table>
- * 
- * @deprecated - not supported by the Wicket viewer
- */
-@Deprecated
-@Inherited
-@Target({ ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER })
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Mask {
-    String value();
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mask/MaskEvaluator.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mask/MaskEvaluator.java
deleted file mode 100644
index c6396a3..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mask/MaskEvaluator.java
+++ /dev/null
@@ -1,106 +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.object.mask;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.regex.Pattern;
-
-public class MaskEvaluator {
-
-    interface Converter {
-        void convert(String str, StringBuilder buf);
-    }
-
-    static class RegExConverter implements Converter {
-        private final String mask;
-        private final String regex;
-
-        public RegExConverter(final String mask, final String regex) {
-            this.mask = mask;
-            this.regex = regex;
-        }
-
-        public String getMask() {
-            return mask;
-        }
-
-        public String getRegex() {
-            return regex;
-        }
-
-        @Override
-        public void convert(final String str, final StringBuilder buf) {
-            final String convert = str.replace(mask, regex);
-            if (!convert.equals(str)) {
-                buf.append(convert);
-            }
-        }
-    }
-
-    @SuppressWarnings("serial")
-    private static List<Converter> converters = new ArrayList<Converter>() {
-        {
-            add("#", "[0-9]");
-            // add(".", "[\\" +
-            // DecimalFormatSymbols.getInstance().getDecimalSeparator()+"]");
-            // add(",",
-            // "["+DecimalFormatSymbols.getInstance().getGroupingSeparator()+"]");
-            add("&", "[A-Za-z]");
-            add("?", "[A-Za-z]");
-            add("A", "[A-Za-z0-9]");
-            add("a", "[ A-Za-z0-9]");
-            add("9", "[ 0-9]");
-            add("U", "[A-Z]");
-            add("L", "[a-z]");
-
-            add(new Converter() {
-                @Override
-                public void convert(final String str, final StringBuilder buf) {
-                    if (buf.length() == 0) {
-                        buf.append(str);
-                    }
-                }
-            });
-        }
-
-        public void add(final String mask, final String regex) {
-            add(new RegExConverter(mask, regex));
-        }
-    };
-
-    private final Pattern pattern;
-
-    public MaskEvaluator(final String mask) {
-        final StringBuilder buf = new StringBuilder();
-        for (int i = 0; i < mask.length(); i++) {
-            final String charAt = "" + mask.charAt(i);
-            for (final Converter converter : converters) {
-                converter.convert(charAt, buf);
-            }
-        }
-        pattern = Pattern.compile(buf.toString());
-    }
-
-    public boolean evaluate(final String str) {
-        return pattern.matcher(str).matches();
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mask/MaskFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mask/MaskFacet.java
deleted file mode 100644
index 0acf742..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mask/MaskFacet.java
+++ /dev/null
@@ -1,46 +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.object.mask;
-
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.facets.SingleStringValueFacet;
-import org.apache.isis.core.metamodel.interactions.ValidatingInteractionAdvisor;
-import org.apache.isis.core.metamodel.facets.objectvalue.regex.RegExFacet;
-
-/**
- * Whether the (string) property or a parameter must correspond to a specific
- * mask.
- * 
- * <p>
- * In the standard Apache Isis Programming Model, corresponds to the
- * <tt>@Mask</tt> annotation.
- * 
- * <p>
- * TODO: not yet implemented by the framework or any viewer.
- * 
- * @see RegExFacet
- */
-public interface MaskFacet extends SingleStringValueFacet, ValidatingInteractionAdvisor {
-
-    /**
-     * Whether the provided string matches the mask.
-     */
-    public boolean doesNotMatch(ObjectAdapter adapter);
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mask/MaskFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mask/MaskFacetAbstract.java
deleted file mode 100644
index e3878dc..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mask/MaskFacetAbstract.java
+++ /dev/null
@@ -1,53 +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.object.mask;
-
-import org.apache.isis.applib.events.ValidityEvent;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.SingleStringValueFacetAbstract;
-import org.apache.isis.core.metamodel.interactions.ProposedHolder;
-import org.apache.isis.core.metamodel.interactions.ValidityContext;
-
-public abstract class MaskFacetAbstract extends SingleStringValueFacetAbstract implements MaskFacet {
-
-    public static Class<? extends Facet> type() {
-        return MaskFacet.class;
-    }
-
-    public MaskFacetAbstract(final String value, final FacetHolder holder) {
-        super(type(), holder, value);
-    }
-
-    @Override
-    public String invalidates(final ValidityContext<? extends ValidityEvent> context) {
-        if (!(context instanceof ProposedHolder)) {
-            return null;
-        }
-        final ProposedHolder proposedHolder = (ProposedHolder) context;
-        final ObjectAdapter proposedArgument = proposedHolder.getProposed();
-        if (doesNotMatch(proposedArgument)) {
-            return "'" + proposedArgument.titleString() + "' does not match the mask '" + value() + "'";
-        }
-        return null;
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mask/TitleFacetBasedOnMask.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mask/TitleFacetBasedOnMask.java
deleted file mode 100644
index 62e0388..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mask/TitleFacetBasedOnMask.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.object.mask;
-
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.facets.object.title.TitleFacet;
-import org.apache.isis.core.metamodel.facets.object.title.TitleFacetAbstract;
-import org.apache.isis.core.metamodel.facets.object.title.parser.TitleFacetUsingParser;
-
-public class TitleFacetBasedOnMask extends TitleFacetAbstract {
-    private final MaskFacet maskFacet;
-    private final TitleFacet underlyingTitleFacet;
-
-    public TitleFacetBasedOnMask(final MaskFacet maskFacet, final TitleFacet underlyingTitleFacet) {
-        super(maskFacet.getFacetHolder());
-        this.maskFacet = maskFacet;
-        this.underlyingTitleFacet = underlyingTitleFacet;
-    }
-
-    @Override
-    public String title(final ObjectAdapter object) {
-        final String mask = maskFacet.value();
-        final TitleFacetUsingParser titleFacetUsingParser = (TitleFacetUsingParser) underlyingTitleFacet.getUnderlyingFacet();
-        if (titleFacetUsingParser != null) {
-            final String titleString = titleFacetUsingParser.title(object, mask);
-            return titleString;
-        } else {
-            return underlyingTitleFacet.title(object);
-        }
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mask/annotation/MaskFacetOnTypeAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mask/annotation/MaskFacetOnTypeAnnotation.java
deleted file mode 100644
index dcbbdcd..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mask/annotation/MaskFacetOnTypeAnnotation.java
+++ /dev/null
@@ -1,55 +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.object.mask.annotation;
-
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.object.mask.MaskEvaluator;
-import org.apache.isis.core.metamodel.facets.object.mask.MaskFacetAbstract;
-
-/**
- * @deprecated
- */
-@Deprecated
-public class MaskFacetOnTypeAnnotation extends MaskFacetAbstract {
-    private final MaskEvaluator evaluator;
-
-    public MaskFacetOnTypeAnnotation(final String outputMask, final String inputMask, final FacetHolder holder) {
-        super(outputMask, holder);
-        evaluator = inputMask == null ? null : new MaskEvaluator(inputMask);
-    }
-
-    @Override
-    public boolean doesNotMatch(final ObjectAdapter adapter) {
-        if (evaluator == null) {
-            return false;
-        } else {
-            if (adapter == null) {
-                return false;
-            }
-            final Object object = adapter.getObject();
-            if (object == null) {
-                return false;
-            }
-            return !evaluator.evaluate(object.toString());
-        }
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mask/annotation/MaskFacetOnTypeAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mask/annotation/MaskFacetOnTypeAnnotationFactory.java
deleted file mode 100644
index f4da824..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mask/annotation/MaskFacetOnTypeAnnotationFactory.java
+++ /dev/null
@@ -1,76 +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.object.mask.annotation;
-
-import org.apache.isis.applib.annotation.Mask;
-import org.apache.isis.core.commons.config.IsisConfiguration;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner;
-import org.apache.isis.core.metamodel.facets.Annotations;
-import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.object.mask.MaskFacet;
-import org.apache.isis.core.metamodel.progmodel.DeprecatedMarker;
-import org.apache.isis.core.metamodel.services.configinternal.ConfigurationServiceInternal;
-import org.apache.isis.core.metamodel.services.ServicesInjector;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
-
-/**
- * @deprecated
- */
-@Deprecated
-public class MaskFacetOnTypeAnnotationFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, DeprecatedMarker {
-
-    private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(Mask.class);
-
-
-    public MaskFacetOnTypeAnnotationFactory() {
-        super(FeatureType.OBJECTS_ONLY);
-    }
-
-    /**
-     * In readiness for supporting <tt>@Value</tt> in the future.
-     */
-    @Override
-    public void process(final ProcessClassContext processClassContaxt) {
-        final Mask annotation = Annotations.getAnnotation(processClassContaxt.getCls(), Mask.class);
-        final MaskFacet facet = createMaskFacet(annotation, processClassContaxt.getFacetHolder());
-        FacetUtil.addFacet(validator.flagIfPresent(facet));
-    }
-
-    private MaskFacet createMaskFacet(final Mask annotation, final FacetHolder holder) {
-        return annotation != null ? new MaskFacetOnTypeAnnotation(annotation.value(), null, holder) : null;
-    }
-
-    @Override
-    public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
-        metaModelValidator.add(validator);
-    }
-
-    @Override
-    public void setServicesInjector(final ServicesInjector servicesInjector) {
-        super.setServicesInjector(servicesInjector);
-        validator.setConfiguration((IsisConfiguration)servicesInjector.lookupService(ConfigurationServiceInternal.class));
-    }
-
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/regex/RegExFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/regex/RegExFacet.java
index 54531f7..52b1766 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/regex/RegExFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/regex/RegExFacet.java
@@ -21,7 +21,6 @@ package org.apache.isis.core.metamodel.facets.objectvalue.regex;
 
 import org.apache.isis.core.metamodel.facets.MultipleValueFacet;
 import org.apache.isis.core.metamodel.interactions.ValidatingInteractionAdvisor;
-import org.apache.isis.core.metamodel.facets.object.mask.MaskFacet;
 
 /**
  * Whether the (string) property or a parameter must correspond to a specific
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/maskannot/MaskFacetOnParameterAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/maskannot/MaskFacetOnParameterAnnotation.java
deleted file mode 100644
index 9b7b49f..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/maskannot/MaskFacetOnParameterAnnotation.java
+++ /dev/null
@@ -1,55 +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.param.validating.maskannot;
-
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.object.mask.MaskEvaluator;
-import org.apache.isis.core.metamodel.facets.object.mask.MaskFacetAbstract;
-
-/**
- * @deprecated
- */
-@Deprecated
-public class MaskFacetOnParameterAnnotation extends MaskFacetAbstract {
-    private final MaskEvaluator evaluator;
-
-    public MaskFacetOnParameterAnnotation(final String outputMask, final String inputMask, final FacetHolder holder) {
-        super(outputMask, holder);
-        evaluator = inputMask == null ? null : new MaskEvaluator(inputMask);
-    }
-
-    @Override
-    public boolean doesNotMatch(final ObjectAdapter adapter) {
-        if (evaluator == null) {
-            return false;
-        } else {
-            if (adapter == null) {
-                return false;
-            }
-            final Object object = adapter.getObject();
-            if (object == null) {
-                return false;
-            }
-            return !evaluator.evaluate(object.toString());
-        }
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/maskannot/MaskFacetOnParameterAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/maskannot/MaskFacetOnParameterAnnotationFactory.java
deleted file mode 100644
index 01548f6..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validating/maskannot/MaskFacetOnParameterAnnotationFactory.java
+++ /dev/null
@@ -1,103 +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.param.validating.maskannot;
-
-import org.apache.isis.applib.annotation.Mask;
-import org.apache.isis.core.commons.config.IsisConfiguration;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner;
-import org.apache.isis.core.metamodel.facets.Annotations;
-import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.object.mask.MaskFacet;
-import org.apache.isis.core.metamodel.facets.object.mask.TitleFacetBasedOnMask;
-import org.apache.isis.core.metamodel.facets.object.title.TitleFacet;
-import org.apache.isis.core.metamodel.progmodel.DeprecatedMarker;
-import org.apache.isis.core.metamodel.services.ServicesInjector;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
-
-/**
- * @deprecated
- */
-@Deprecated
-public class MaskFacetOnParameterAnnotationFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, DeprecatedMarker {
-
-    private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(Mask.class);
-
-    public MaskFacetOnParameterAnnotationFactory() {
-        super(FeatureType.PARAMETERS_ONLY);
-    }
-
-    @Override
-    public void processParams(final ProcessParameterContext processParameterContext) {
-        final Class<?>[] parameterTypes = processParameterContext.getMethod().getParameterTypes();
-        if (processParameterContext.getParamNum() >= parameterTypes.length) {
-            // ignore
-            return;
-        }
-
-        final java.lang.annotation.Annotation[] parameterAnnotations = Annotations.getParameterAnnotations(processParameterContext.getMethod())[processParameterContext.getParamNum()];
-        for (int i = 0; i < parameterAnnotations.length; i++) {
-            if (parameterAnnotations[i] instanceof Mask) {
-                final Mask annotation = (Mask) parameterAnnotations[i];
-                addMaskFacetAndCorrespondingTitleFacet(annotation, parameterTypes[i], processParameterContext);
-                return;
-            }
-        }
-    }
-
-    private boolean addMaskFacetAndCorrespondingTitleFacet(final Mask annotation, final Class<?> cls, final AbstractProcessWithMethodContext processContext) {
-        final FacetHolder holder = processContext.getFacetHolder();
-        final MaskFacet maskFacet = validator.flagIfPresent(createMaskFacet(annotation, holder), processContext);
-        if (maskFacet == null) {
-            return false;
-        }
-        FacetUtil.addFacet(maskFacet);
-
-        final ObjectSpecification type = getSpecificationLoader().loadSpecification(cls);
-        final TitleFacet underlyingTitleFacet = type.getFacet(TitleFacet.class);
-        if (underlyingTitleFacet != null) {
-            final TitleFacet titleFacet = new TitleFacetBasedOnMask(maskFacet, underlyingTitleFacet);
-            FacetUtil.addFacet(titleFacet);
-        }
-        return true;
-    }
-
-    private MaskFacet createMaskFacet(final Mask annotation, final FacetHolder holder) {
-        return annotation != null ? new MaskFacetOnParameterAnnotation(annotation.value(), null, holder) : null;
-    }
-
-    @Override
-    public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
-        metaModelValidator.add(validator);
-    }
-
-    @Override
-    public void setServicesInjector(final ServicesInjector servicesInjector) {
-        super.setServicesInjector(servicesInjector);
-        IsisConfiguration configuration = servicesInjector.getConfigurationServiceInternal();
-        validator.setConfiguration(configuration);
-    }
-
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/maskannot/MaskFacetOnPropertyAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/maskannot/MaskFacetOnPropertyAnnotation.java
deleted file mode 100644
index a6ac033..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/maskannot/MaskFacetOnPropertyAnnotation.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.validating.maskannot;
-
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.object.mask.MaskEvaluator;
-import org.apache.isis.core.metamodel.facets.object.mask.MaskFacetAbstract;
-
-public class MaskFacetOnPropertyAnnotation extends MaskFacetAbstract {
-    private final MaskEvaluator evaluator;
-
-    public MaskFacetOnPropertyAnnotation(final String outputMask, final String inputMask, final FacetHolder holder) {
-        super(outputMask, holder);
-        evaluator = inputMask == null ? null : new MaskEvaluator(inputMask);
-    }
-
-    @Override
-    public boolean doesNotMatch(final ObjectAdapter adapter) {
-        if (evaluator == null) {
-            return false;
-        } else {
-            if (adapter == null) {
-                return false;
-            }
-            final Object object = adapter.getObject();
-            if (object == null) {
-                return false;
-            }
-            return !evaluator.evaluate(object.toString());
-        }
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/maskannot/MaskFacetOnPropertyAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/maskannot/MaskFacetOnPropertyAnnotationFactory.java
deleted file mode 100644
index 9e4d614..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/validating/maskannot/MaskFacetOnPropertyAnnotationFactory.java
+++ /dev/null
@@ -1,123 +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.validating.maskannot;
-
-import org.apache.isis.applib.annotation.Mask;
-import org.apache.isis.core.commons.config.IsisConfiguration;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner;
-import org.apache.isis.core.metamodel.facets.Annotations;
-import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.object.mask.MaskFacet;
-import org.apache.isis.core.metamodel.facets.object.mask.TitleFacetBasedOnMask;
-import org.apache.isis.core.metamodel.facets.object.title.TitleFacet;
-import org.apache.isis.core.metamodel.progmodel.DeprecatedMarker;
-import org.apache.isis.core.metamodel.services.ServicesInjector;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
-
-/**
- * @deprecated
- */
-@Deprecated
-public class MaskFacetOnPropertyAnnotationFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, DeprecatedMarker {
-
-    private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(Mask.class);
-
-    public MaskFacetOnPropertyAnnotationFactory() {
-        super(FeatureType.PROPERTIES_ONLY);
-    }
-
-    /**
-     * In readiness for supporting <tt>@Value</tt> in the future.
-     */
-    @Override
-    public void process(final ProcessClassContext processClassContaxt) {
-        final Mask annotation = Annotations.getAnnotation(processClassContaxt.getCls(), Mask.class);
-        FacetUtil.addFacet(createMaskFacet(annotation, processClassContaxt.getFacetHolder()));
-    }
-
-    @Override
-    public void process(final ProcessMethodContext processMethodContext) {
-        if (processMethodContext.getMethod().getReturnType() == void.class) {
-            return;
-        }
-
-        final Mask annotation = Annotations.getAnnotation(processMethodContext.getMethod(), Mask.class);
-        addMaskFacetAndCorrespondingTitleFacet(annotation, processMethodContext.getMethod().getReturnType(), processMethodContext);
-    }
-
-    @Override
-    public void processParams(final ProcessParameterContext processParameterContext) {
-        final Class<?>[] parameterTypes = processParameterContext.getMethod().getParameterTypes();
-        if (processParameterContext.getParamNum() >= parameterTypes.length) {
-            // ignore
-            return;
-        }
-
-        final java.lang.annotation.Annotation[] parameterAnnotations = Annotations.getParameterAnnotations(processParameterContext.getMethod())[processParameterContext.getParamNum()];
-        for (int i = 0; i < parameterAnnotations.length; i++) {
-            if (parameterAnnotations[i] instanceof Mask) {
-                final Mask annotation = (Mask) parameterAnnotations[i];
-                addMaskFacetAndCorrespondingTitleFacet(annotation, parameterTypes[i], processParameterContext);
-                return;
-            }
-        }
-    }
-
-    private MaskFacet createMaskFacet(final Mask annotation, final FacetHolder holder) {
-        return annotation != null ? new MaskFacetOnPropertyAnnotation(annotation.value(), null, holder) : null;
-    }
-
-    private boolean addMaskFacetAndCorrespondingTitleFacet(final Mask annotation, final Class<?> cls, final AbstractProcessWithMethodContext processContext) {
-        final FacetHolder facetHolder = processContext.getFacetHolder();
-        final MaskFacet maskFacet = validator.flagIfPresent(createMaskFacet(annotation, facetHolder), processContext);
-        if (maskFacet == null) {
-            return false;
-        }
-        FacetUtil.addFacet(maskFacet);
-
-        final ObjectSpecification type = getSpecificationLoader().loadSpecification(cls);
-        final TitleFacet underlyingTitleFacet = type.getFacet(TitleFacet.class);
-        if (underlyingTitleFacet != null) {
-            final TitleFacet titleFacet = new TitleFacetBasedOnMask(maskFacet, underlyingTitleFacet);
-            FacetUtil.addFacet(titleFacet);
-        }
-        return true;
-    }
-
-    @Override
-    public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) {
-        metaModelValidator.add(validator);
-    }
-
-
-    @Override
-    public void setServicesInjector(final ServicesInjector servicesInjector) {
-        super.setServicesInjector(servicesInjector);
-        IsisConfiguration configuration = servicesInjector.getConfigurationServiceInternal();
-        validator.setConfiguration(configuration);
-    }
-
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
index c79575d..41fa98d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
+++ b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
@@ -96,7 +96,6 @@ import org.apache.isis.core.metamodel.facets.object.ignore.jdo.RemoveJdoEnhancem
 import org.apache.isis.core.metamodel.facets.object.ignore.jdo.RemoveJdoPrefixedMethodsFacetFactory;
 import org.apache.isis.core.metamodel.facets.object.immutable.immutableannot.CopyImmutableFacetOntoMembersFactory;
 import org.apache.isis.core.metamodel.facets.object.immutable.immutablemarkerifc.ImmutableFacetMarkerInterfaceFactory;
-import org.apache.isis.core.metamodel.facets.object.mask.annotation.MaskFacetOnTypeAnnotationFactory;
 import org.apache.isis.core.metamodel.facets.object.membergroups.annotprop.MemberGroupLayoutFacetFactory;
 import org.apache.isis.core.metamodel.facets.object.mixin.MixinFacetForMixinAnnotationFactory;
 import org.apache.isis.core.metamodel.facets.object.notpersistable.notpersistableannot.NotPersistableFacetAnnotationFactory;
@@ -127,7 +126,6 @@ import org.apache.isis.core.metamodel.facets.param.layout.ParameterLayoutFacetFa
 import org.apache.isis.core.metamodel.facets.param.mandatory.dflt.MandatoryFacetOnParametersDefaultFactory;
 import org.apache.isis.core.metamodel.facets.param.parameter.ParameterAnnotationFacetFactory;
 import org.apache.isis.core.metamodel.facets.param.typicallen.fromtype.TypicalLengthFacetOnParameterDerivedFromTypeFacetFactory;
-import org.apache.isis.core.metamodel.facets.param.validating.maskannot.MaskFacetOnParameterAnnotationFactory;
 import org.apache.isis.core.metamodel.facets.properties.accessor.PropertyAccessorFacetViaAccessorFactory;
 import org.apache.isis.core.metamodel.facets.properties.autocomplete.method.PropertyAutoCompleteFacetMethodFactory;
 import org.apache.isis.core.metamodel.facets.properties.bigdecimal.javaxvaldigits.BigDecimalFacetOnPropertyFromJavaxValidationDigitsAnnotationFactory;
@@ -147,7 +145,6 @@ import org.apache.isis.core.metamodel.facets.properties.typicallen.fromtype.Typi
 import org.apache.isis.core.metamodel.facets.properties.update.PropertyModifyFacetFactory;
 import org.apache.isis.core.metamodel.facets.properties.update.PropertySetAndClearFacetFactory;
 import org.apache.isis.core.metamodel.facets.properties.validating.dflt.PropertyValidateFacetDefaultFactory;
-import org.apache.isis.core.metamodel.facets.properties.validating.maskannot.MaskFacetOnPropertyAnnotationFactory;
 import org.apache.isis.core.metamodel.facets.properties.validating.method.PropertyValidateFacetViaMethodFactory;
 import org.apache.isis.core.metamodel.facets.value.bigdecimal.BigDecimalValueFacetUsingSemanticsProviderFactory;
 import org.apache.isis.core.metamodel.facets.value.biginteger.BigIntegerValueFacetUsingSemanticsProviderFactory;
@@ -407,15 +404,8 @@ public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract
 
         addFactory(new PagedFacetOnActionFactory());
 
-        // must come after any facets that install titles
-        
-        addFactory(new MaskFacetOnTypeAnnotationFactory());
-        addFactory(new MaskFacetOnPropertyAnnotationFactory());
-        
-        addFactory(new MaskFacetOnParameterAnnotationFactory());
 
-        // must come after any facets that install titles, and after mask
-        // if takes precedence over mask.
+        // must come after any facets that install titles
         
         addFactory(new RegExFacetOnTypeAnnotationFactory());
 
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/validate/mask/MaskAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/validate/mask/MaskAnnotationFacetFactoryTest.java
deleted file mode 100644
index ffb3db1..0000000
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/validate/mask/MaskAnnotationFacetFactoryTest.java
+++ /dev/null
@@ -1,147 +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.propparam.validate.mask;
-
-import java.lang.reflect.Method;
-
-import org.apache.isis.applib.annotation.Mask;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessClassContext;
-import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
-import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessParameterContext;
-import org.apache.isis.core.metamodel.facets.object.mask.annotation.MaskFacetOnTypeAnnotation;
-import org.apache.isis.core.metamodel.facets.object.mask.annotation.MaskFacetOnTypeAnnotationFactory;
-import org.apache.isis.core.metamodel.facets.param.validating.maskannot.MaskFacetOnParameterAnnotation;
-import org.apache.isis.core.metamodel.facets.param.validating.maskannot.MaskFacetOnParameterAnnotationFactory;
-import org.apache.isis.core.metamodel.facets.properties.validating.maskannot.MaskFacetOnPropertyAnnotation;
-import org.apache.isis.core.metamodel.facets.properties.validating.maskannot.MaskFacetOnPropertyAnnotationFactory;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.testspec.ObjectSpecificationStub;
-import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
-import org.apache.isis.core.metamodel.facets.object.mask.MaskFacet;
-
-public class MaskAnnotationFacetFactoryTest extends AbstractFacetFactoryTest {
-
-    private final ObjectSpecification customerNoSpec = new ObjectSpecificationStub(String.class);
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        // mockSpecificationLoader.setLoadSpecificationStringReturn(customerNoSpec);
-        allowing_specificationLoader_loadSpecification_any_willReturn(customerNoSpec);
-
-    }
-
-    public void testMaskAnnotationPickedUpOnClass() {
-        final MaskFacetOnTypeAnnotationFactory facetFactory = new MaskFacetOnTypeAnnotationFactory();
-
-        @Mask("###")
-        class Customer {
-        }
-        facetFactory.process(new ProcessClassContext(Customer.class, methodRemover, facetedMethod));
-
-        final Facet facet = facetedMethod.getFacet(MaskFacet.class);
-        assertNotNull(facet);
-        assertTrue(facet instanceof MaskFacetOnTypeAnnotation);
-        final MaskFacetOnTypeAnnotation maskFacet = (MaskFacetOnTypeAnnotation) facet;
-        assertEquals("###", maskFacet.value());
-    }
-
-    public void testMaskAnnotationPickedUpOnProperty() {
-        final MaskFacetOnPropertyAnnotationFactory facetFactory = new MaskFacetOnPropertyAnnotationFactory();
-        facetFactory.setServicesInjector(stubServicesInjector);
-
-        class Customer {
-            @SuppressWarnings("unused")
-            @Mask("###")
-            public String getFirstName() {
-                return null;
-            }
-        }
-        final Method method = findMethod(Customer.class, "getFirstName");
-
-        facetFactory.process(new ProcessMethodContext(Customer.class, null, null, method, methodRemover, facetedMethod));
-
-        final Facet facet = facetedMethod.getFacet(MaskFacet.class);
-        assertNotNull(facet);
-        assertTrue(facet instanceof MaskFacetOnPropertyAnnotation);
-        final MaskFacetOnPropertyAnnotation maskFacet = (MaskFacetOnPropertyAnnotation) facet;
-        assertEquals("###", maskFacet.value());
-    }
-
-    public void testMaskAnnotationPickedUpOnActionParameter() {
-        final MaskFacetOnParameterAnnotationFactory facetFactory = new MaskFacetOnParameterAnnotationFactory();
-        facetFactory.setServicesInjector(stubServicesInjector);
-
-
-        class Customer {
-            @SuppressWarnings("unused")
-            public void someAction(@Mask("###") final String foo) {
-            }
-        }
-        final Method method = findMethod(Customer.class, "someAction", new Class[] { String.class });
-
-        facetFactory.processParams(new ProcessParameterContext(Customer.class, method, 0, null, facetedMethodParameter));
-
-        final Facet facet = facetedMethodParameter.getFacet(MaskFacet.class);
-        assertNotNull(facet);
-        assertTrue(facet instanceof MaskFacetOnParameterAnnotation);
-        final MaskFacetOnParameterAnnotation maskFacet = (MaskFacetOnParameterAnnotation) facet;
-        assertEquals("###", maskFacet.value());
-    }
-
-    public void testMaskAnnotationNotIgnoredForNonStringsProperty() {
-        final MaskFacetOnPropertyAnnotationFactory facetFactory = new MaskFacetOnPropertyAnnotationFactory();
-        facetFactory.setServicesInjector(stubServicesInjector);
-
-
-        class Customer {
-            @SuppressWarnings("unused")
-            @Mask("###")
-            public int getNumberOfOrders() {
-                return 0;
-            }
-        }
-        final Method method = findMethod(Customer.class, "getNumberOfOrders");
-
-        facetFactory.process(new ProcessMethodContext(Customer.class, null, null, method, methodRemover, facetedMethod));
-
-        assertNotNull(facetedMethod.getFacet(MaskFacet.class));
-    }
-
-    public void testMaskAnnotationNotIgnoredForPrimitiveOnActionParameter() {
-        final MaskFacetOnParameterAnnotationFactory facetFactory = new MaskFacetOnParameterAnnotationFactory();
-        facetFactory.setServicesInjector(stubServicesInjector);
-
-
-        class Customer {
-            @SuppressWarnings("unused")
-            public void someAction(@Mask("###") final int foo) {
-            }
-        }
-        final Method method = findMethod(Customer.class, "someAction", new Class[] { int.class });
-
-        facetFactory.processParams(new ProcessParameterContext(Customer.class, method, 0, null, facetedMethodParameter));
-
-        assertNotNull(facetedMethodParameter.getFacet(MaskFacet.class));
-    }
-
-}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/validate/mask/MaskEvaluatorTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/validate/mask/MaskEvaluatorTest.java
deleted file mode 100644
index 3590bd4..0000000
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/validate/mask/MaskEvaluatorTest.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.facets.propparam.validate.mask;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Locale;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.junit.runners.Parameterized.Parameters;
-
-import org.apache.isis.core.metamodel.facets.object.mask.MaskEvaluator;
-
-@RunWith(Parameterized.class)
-public class MaskEvaluatorTest {
-
-    @Parameters
-    public static Collection<Object[]> data() {
-        return Arrays.asList(new Object[][] { { "AAA", "aby", true }, { "A", "A", true }, { "A", "Z", true }, { "A", "a", true }, { "A", "z", true }, { "A", "0", true }, { "A", "9", true }, { "A", "@", false }, { "A", "~", false }, { "a", "A", true }, { "a", "Z", true }, { "a", "a", true },
-                { "a", "z", true }, { "a", "0", true }, { "a", "9", true }, { "a", " ", true }, { "a", "~", false }, { "9", "z", false }, { "9", "0", true }, { "9", "9", true }, { "9", " ", true }, { "9", "~", false }, { "&", "A", true }, { "&", "Z", true }, { "&", "a", true }, { "&", "z", true },
-                { "&", "9", false }, { "?", "A", true }, { "?", "Z", true }, { "?", "a", true }, { "?", "z", true }, { "U", "A", true }, { "U", "Z", true }, { "U", "a", false }, { "L", "a", true }, { "L", "z", true }, { "L", "A", false }, { "#", "0", true }, { "#", "9", true }, { "#", "X", false },
-                { "#", "#", false }, { ",", ",", true },
-                // {".", "X", false}, // TODO: failing so commented out
-                { ":", ":", true }, { ":", "X", false }, { "/", "/", true }, { "/", "X", false }, { "##", "23", true },
-        // {"##.#", "23.3", true}, // TODO: failing so commented out
-                });
-    }
-
-    private Locale previousLocale = Locale.getDefault();
-
-    @Before
-    public void setUp() {
-        previousLocale = Locale.getDefault();
-        Locale.setDefault(Locale.ENGLISH);
-    }
-
-    @After
-    public void tearDown() {
-        Locale.setDefault(previousLocale);
-    }
-
-    private final String mask;
-    private final String proposed;
-    private final boolean expected;
-
-    public MaskEvaluatorTest(final String mask, final String proposed, final boolean expected) {
-        this.mask = mask;
-        this.proposed = proposed;
-        this.expected = expected;
-    }
-
-    @Test
-    public void all() {
-        assertThat(new MaskEvaluator(mask).evaluate(proposed), is(expected));
-    }
-}
diff --git a/todo-deprecation-list.txt b/todo-deprecation-list.txt
index 8137e6b..dbdda9f 100644
--- a/todo-deprecation-list.txt
+++ b/todo-deprecation-list.txt
@@ -48,6 +48,7 @@ org.apache.isis.applib.annotation
 
     DescribedAs.java - entire annotation, use @XxxLayout(describedAs=...) instead
 
+    Mask.java - entire annotation, not supported by either Wicket viewer or RO viewer
     MaxLength.java - entire annotation, use @Property(maxLength=...) and @Parameter(maxLength=...)
     MultiLine.java - entire annotation, use @PropertyLayout(multiLine=...) and @ParameterLayout(multiLine=...) instead.
     Named.java - entire annotation, use @XxxLayout(named=...) instead, where Xxx is Property, Collection, Action, Parameter, DomainObject, ViewModel
@@ -114,7 +115,6 @@ org.apache.isis.applib.annotation
     Mandatory.java - entire annotation, use @Property(optionality=...) and @Parameter(optionality=...), or @javax.annotations.Nullable
     Optional.java - entire annotation, use @Property(optionality=...) and @Parameter(optionality=...), or @javax.annotations.Nullable
 
-    Mask.java - entire annotation, not supported by either Wicket viewer or RO viewer
 
     MustSatisfy.java - entire annotation, use @Property(mustSatisfy=....) or @Parameter(mustSatisfy=...) instead
     RegEx.java - entire annotation, use @Property(regexPatternFlags=...) or @Parameter(regexPatternFlags=...) instead; or alternatively NEW SUPPORT for JSR-303 @Pattern annotation (http://beanvalidation.org/1.0/spec/, chapter 6).

-- 
To stop receiving notification emails like this one, please contact
"commits@isis.apache.org" <co...@isis.apache.org>.