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 2012/12/04 23:30:55 UTC

[4/47] ISIS-188: normalizing file endings throughout

http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/claims/viewer-wicket/src/main/webapp/WEB-INF/isis.properties
----------------------------------------------------------------------
diff --git a/examples/claims/viewer-wicket/src/main/webapp/WEB-INF/isis.properties b/examples/claims/viewer-wicket/src/main/webapp/WEB-INF/isis.properties
index 16207d7..77cd70f 100644
--- a/examples/claims/viewer-wicket/src/main/webapp/WEB-INF/isis.properties
+++ b/examples/claims/viewer-wicket/src/main/webapp/WEB-INF/isis.properties
@@ -223,10 +223,10 @@ isis.exploration.users=sven, dick, bob
 
 
 
-
-
-
-###############################
-# archived
-###############################
-#isis.reflector.facets.include=org.apache.isis.viewer.wicket.metamodel.wizardpagedesc.WizardPageDescriptionAnnotationFacetFactory
+
+
+
+###############################
+# archived
+###############################
+#isis.reflector.facets.include=org.apache.isis.viewer.wicket.metamodel.wizardpagedesc.WizardPageDescriptionAnnotationFacetFactory

http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/claims/viewer-wicket/src/main/webapp/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/examples/claims/viewer-wicket/src/main/webapp/WEB-INF/web.xml b/examples/claims/viewer-wicket/src/main/webapp/WEB-INF/web.xml
index d2b58fa..4c72def 100644
--- a/examples/claims/viewer-wicket/src/main/webapp/WEB-INF/web.xml
+++ b/examples/claims/viewer-wicket/src/main/webapp/WEB-INF/web.xml
@@ -17,37 +17,37 @@
   specific language governing permissions and limitations
   under the License.
 -->
-<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
-	version="2.4">
-
-	<display-name>claims</display-name>
-
-	<!--
-		There are three means to configure Wickets configuration mode and they
-		are tested in the order given. 1) A system property:
-		-Dwicket.configuration 2) servlet specific <init-param> 3) context
-		specific <context-param> The value might be either "development"
-		(reloading when templates change) or "deployment". If no configuration
-		is found, "development" is the default.
-	-->
-
-	<filter>
-		<filter-name>wicket.claims</filter-name>
-		<filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
-		<init-param>
-			<param-name>applicationClassName</param-name>
-			<param-value>org.apache.isis.viewer.wicket.viewer.IsisWicketApplication</param-value>
-			<!--
-			<param-value>org.apache.isis.example.claims.viewer.wicket.app.ClaimsApplication</param-value>
-			-->
-		</init-param>
-	</filter>
-
-	<filter-mapping>
-		<filter-name>wicket.claims</filter-name>
-		<url-pattern>/*</url-pattern>
-	</filter-mapping>
-
-
-</web-app>
+<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
+	version="2.4">
+
+	<display-name>claims</display-name>
+
+	<!--
+		There are three means to configure Wickets configuration mode and they
+		are tested in the order given. 1) A system property:
+		-Dwicket.configuration 2) servlet specific <init-param> 3) context
+		specific <context-param> The value might be either "development"
+		(reloading when templates change) or "deployment". If no configuration
+		is found, "development" is the default.
+	-->
+
+	<filter>
+		<filter-name>wicket.claims</filter-name>
+		<filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
+		<init-param>
+			<param-name>applicationClassName</param-name>
+			<param-value>org.apache.isis.viewer.wicket.viewer.IsisWicketApplication</param-value>
+			<!--
+			<param-value>org.apache.isis.example.claims.viewer.wicket.app.ClaimsApplication</param-value>
+			-->
+		</init-param>
+	</filter>
+
+	<filter-mapping>
+		<filter-name>wicket.claims</filter-name>
+		<url-pattern>/*</url-pattern>
+	</filter-mapping>
+
+
+</web-app>

http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/metamodel-examples/jsr303/src/main/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetFactory.java
----------------------------------------------------------------------
diff --git a/examples/metamodel-examples/jsr303/src/main/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetFactory.java b/examples/metamodel-examples/jsr303/src/main/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetFactory.java
index 9184678..2942859 100644
--- a/examples/metamodel-examples/jsr303/src/main/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetFactory.java
+++ b/examples/metamodel-examples/jsr303/src/main/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetFactory.java
@@ -18,37 +18,37 @@
  */
 
 
-package org.apache.isis.metamodel.examples.facets.jsr303;
-
-import java.lang.reflect.Method;
-
-import org.apache.isis.metamodel.facets.FacetFactory;
-import org.apache.isis.metamodel.facets.FacetHolder;
-import org.apache.isis.metamodel.facets.FacetUtil;
-import org.apache.isis.metamodel.facets.MethodRemover;
-import org.apache.isis.metamodel.spec.feature.ObjectFeatureType;
-
-
-public class Jsr303FacetFactory implements FacetFactory {
-
-    public ObjectFeatureType[] getFeatureTypes() {
-        return ObjectFeatureType.OBJECTS_AND_PROPERTIES;
-    }
-
-    public boolean process(final Class<?> cls, final MethodRemover methodRemover, final FacetHolder holder) {
-        return false;
-    }
-
-    /**
-     * Simply attaches
-     */
-    public boolean process(final Method method, final MethodRemover methodRemover, final FacetHolder holder) {
-        return FacetUtil.addFacet(new Jsr303PropertyValidationFacet(holder));
-    }
-
-    public boolean processParams(final Method method, final int paramNum, final FacetHolder holder) {
-        // nothing to do
-        return false;
-    }
-
-}
+package org.apache.isis.metamodel.examples.facets.jsr303;
+
+import java.lang.reflect.Method;
+
+import org.apache.isis.metamodel.facets.FacetFactory;
+import org.apache.isis.metamodel.facets.FacetHolder;
+import org.apache.isis.metamodel.facets.FacetUtil;
+import org.apache.isis.metamodel.facets.MethodRemover;
+import org.apache.isis.metamodel.spec.feature.ObjectFeatureType;
+
+
+public class Jsr303FacetFactory implements FacetFactory {
+
+    public ObjectFeatureType[] getFeatureTypes() {
+        return ObjectFeatureType.OBJECTS_AND_PROPERTIES;
+    }
+
+    public boolean process(final Class<?> cls, final MethodRemover methodRemover, final FacetHolder holder) {
+        return false;
+    }
+
+    /**
+     * Simply attaches
+     */
+    public boolean process(final Method method, final MethodRemover methodRemover, final FacetHolder holder) {
+        return FacetUtil.addFacet(new Jsr303PropertyValidationFacet(holder));
+    }
+
+    public boolean processParams(final Method method, final int paramNum, final FacetHolder holder) {
+        // nothing to do
+        return false;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/metamodel-examples/jsr303/src/main/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303ProgModelFacets.java
----------------------------------------------------------------------
diff --git a/examples/metamodel-examples/jsr303/src/main/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303ProgModelFacets.java b/examples/metamodel-examples/jsr303/src/main/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303ProgModelFacets.java
index 4059be9..dacd6e3 100644
--- a/examples/metamodel-examples/jsr303/src/main/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303ProgModelFacets.java
+++ b/examples/metamodel-examples/jsr303/src/main/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303ProgModelFacets.java
@@ -18,27 +18,27 @@
  */
 
 
-package org.apache.isis.metamodel.examples.facets.jsr303;
-
-import org.apache.isis.metamodel.facets.FacetFactory;
-import org.apache.isis.metamodel.specloader.progmodelfacets.ProgrammingModelFacets;
-import org.apache.isis.metamodel.specloader.progmodelfacets.ProgrammingModelFacetsJava5;
-
-
-/**
- * Implementation of {@link ProgrammingModelFacets} that additionally just installs support for
- * {@link Jsr303PropertyValidationFacet JSR-303} validation.
- * 
- * <p>
- * This implementation is really provided only as an example. Typically you would provide your own
- * {@link ProgrammingModelFacets} implementation that installs other additional {@link FacetFactory facet
- * factories} ass required for your programming model.
- */
-public class Jsr303ProgModelFacets extends ProgrammingModelFacetsJava5 {
-
-	
-	public Jsr303ProgModelFacets() {
-		addFactory(Jsr303FacetFactory.class);
-	}
-
-}
+package org.apache.isis.metamodel.examples.facets.jsr303;
+
+import org.apache.isis.metamodel.facets.FacetFactory;
+import org.apache.isis.metamodel.specloader.progmodelfacets.ProgrammingModelFacets;
+import org.apache.isis.metamodel.specloader.progmodelfacets.ProgrammingModelFacetsJava5;
+
+
+/**
+ * Implementation of {@link ProgrammingModelFacets} that additionally just installs support for
+ * {@link Jsr303PropertyValidationFacet JSR-303} validation.
+ * 
+ * <p>
+ * This implementation is really provided only as an example. Typically you would provide your own
+ * {@link ProgrammingModelFacets} implementation that installs other additional {@link FacetFactory facet
+ * factories} ass required for your programming model.
+ */
+public class Jsr303ProgModelFacets extends ProgrammingModelFacetsJava5 {
+
+	
+	public Jsr303ProgModelFacets() {
+		addFactory(Jsr303FacetFactory.class);
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/metamodel-examples/jsr303/src/main/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303PropertyValidationFacet.java
----------------------------------------------------------------------
diff --git a/examples/metamodel-examples/jsr303/src/main/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303PropertyValidationFacet.java b/examples/metamodel-examples/jsr303/src/main/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303PropertyValidationFacet.java
index d94d60e..da2a0a1 100644
--- a/examples/metamodel-examples/jsr303/src/main/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303PropertyValidationFacet.java
+++ b/examples/metamodel-examples/jsr303/src/main/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303PropertyValidationFacet.java
@@ -18,87 +18,87 @@
  */
 
 
-package org.apache.isis.metamodel.examples.facets.jsr303;
-
-import java.util.Set;
-
-import javax.validation.InvalidConstraint;
-import javax.validation.ValidationProviderFactory;
-import javax.validation.Validator;
-
-import org.apache.isis.applib.events.ValidityEvent;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.facets.Facet;
-import org.apache.isis.metamodel.facets.FacetAbstract;
-import org.apache.isis.metamodel.facets.FacetHolder;
-import org.apache.isis.metamodel.interactions.ProposedHolder;
-import org.apache.isis.metamodel.interactions.ValidatingInteractionAdvisor;
-import org.apache.isis.metamodel.interactions.ValidityContext;
-import org.apache.isis.metamodel.spec.identifier.Identified;
-
-
-public class Jsr303PropertyValidationFacet extends FacetAbstract implements ValidatingInteractionAdvisor {
-
-    public static Class<? extends Facet> type() {
-        return Jsr303PropertyValidationFacet.class;
-    }
-
-    private final Identified identifierHolder;
-    
-    public Jsr303PropertyValidationFacet(final FacetHolder holder) {
-        super(type(), holder, false);
-        identifierHolder = (holder instanceof Identified) ? (Identified)holder : null;
-    }
-
-    @SuppressWarnings("unchecked")
-    public String invalidates(final ValidityContext<? extends ValidityEvent> validityContext) {
-        final Validator validator = getTargetValidator(validityContext);
-        final Object proposed = getProposed(validityContext);
-        
-        if (validator == null || proposed == null || identifierHolder == null) {
-            return null;
-        }
-        
-        final String memberName = identifierHolder.getIdentifier().getMemberName();
-        Set<InvalidConstraint<?>> constraints = validator.validateValue(memberName, proposed);
-        return asString(memberName, constraints);
-    }
-
-    private Validator<?> getTargetValidator(final ValidityContext<? extends ValidityEvent> validityContext) {
-        final ObjectAdapter targetNO = validityContext.getTarget();
-        final Object targetObject = targetNO.getObject();
-        final Class<?> cls = targetObject.getClass();
-        return ValidationProviderFactory.createValidator(cls);
-    }
-
-    private Object getProposed(final ValidityContext<? extends ValidityEvent> validityContext) {
-        if (!(validityContext instanceof ProposedHolder)) {
-            return null;
-        }
-        final ProposedHolder propertyModifyContext = (ProposedHolder) validityContext;
-        final ObjectAdapter proposedNO = propertyModifyContext.getProposed();
-        if (proposedNO == null) {
-            return null;
-        }
-        return proposedNO.getObject();
-    }
-
-
-    private String asString(final String memberName, final Set<InvalidConstraint<?>> constraints) {
-        if (constraints.isEmpty()) {
-            return null;
-        }
-        final StringBuilder buf = new StringBuilder(memberName + " is invalid: ");
-        boolean first = true;
-        for (final InvalidConstraint<?> constraint : constraints) {
-            if (!first) {
-                buf.append("; ");
-            } else {
-                first = false;
-            }
-            buf.append(constraint.getMessage());
-        }
-        return buf.toString();
-    }
-
-}
+package org.apache.isis.metamodel.examples.facets.jsr303;
+
+import java.util.Set;
+
+import javax.validation.InvalidConstraint;
+import javax.validation.ValidationProviderFactory;
+import javax.validation.Validator;
+
+import org.apache.isis.applib.events.ValidityEvent;
+import org.apache.isis.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.metamodel.facets.Facet;
+import org.apache.isis.metamodel.facets.FacetAbstract;
+import org.apache.isis.metamodel.facets.FacetHolder;
+import org.apache.isis.metamodel.interactions.ProposedHolder;
+import org.apache.isis.metamodel.interactions.ValidatingInteractionAdvisor;
+import org.apache.isis.metamodel.interactions.ValidityContext;
+import org.apache.isis.metamodel.spec.identifier.Identified;
+
+
+public class Jsr303PropertyValidationFacet extends FacetAbstract implements ValidatingInteractionAdvisor {
+
+    public static Class<? extends Facet> type() {
+        return Jsr303PropertyValidationFacet.class;
+    }
+
+    private final Identified identifierHolder;
+    
+    public Jsr303PropertyValidationFacet(final FacetHolder holder) {
+        super(type(), holder, false);
+        identifierHolder = (holder instanceof Identified) ? (Identified)holder : null;
+    }
+
+    @SuppressWarnings("unchecked")
+    public String invalidates(final ValidityContext<? extends ValidityEvent> validityContext) {
+        final Validator validator = getTargetValidator(validityContext);
+        final Object proposed = getProposed(validityContext);
+        
+        if (validator == null || proposed == null || identifierHolder == null) {
+            return null;
+        }
+        
+        final String memberName = identifierHolder.getIdentifier().getMemberName();
+        Set<InvalidConstraint<?>> constraints = validator.validateValue(memberName, proposed);
+        return asString(memberName, constraints);
+    }
+
+    private Validator<?> getTargetValidator(final ValidityContext<? extends ValidityEvent> validityContext) {
+        final ObjectAdapter targetNO = validityContext.getTarget();
+        final Object targetObject = targetNO.getObject();
+        final Class<?> cls = targetObject.getClass();
+        return ValidationProviderFactory.createValidator(cls);
+    }
+
+    private Object getProposed(final ValidityContext<? extends ValidityEvent> validityContext) {
+        if (!(validityContext instanceof ProposedHolder)) {
+            return null;
+        }
+        final ProposedHolder propertyModifyContext = (ProposedHolder) validityContext;
+        final ObjectAdapter proposedNO = propertyModifyContext.getProposed();
+        if (proposedNO == null) {
+            return null;
+        }
+        return proposedNO.getObject();
+    }
+
+
+    private String asString(final String memberName, final Set<InvalidConstraint<?>> constraints) {
+        if (constraints.isEmpty()) {
+            return null;
+        }
+        final StringBuilder buf = new StringBuilder(memberName + " is invalid: ");
+        boolean first = true;
+        for (final InvalidConstraint<?> constraint : constraints) {
+            if (!first) {
+                buf.append("; ");
+            } else {
+                first = false;
+            }
+            buf.append(constraint.getMessage());
+        }
+        return buf.toString();
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/CustomPattern.java
----------------------------------------------------------------------
diff --git a/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/CustomPattern.java b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/CustomPattern.java
index 119c2d0..fd04d8e 100644
--- a/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/CustomPattern.java
+++ b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/CustomPattern.java
@@ -18,31 +18,31 @@
  */
 
 
-package org.apache.isis.metamodel.examples.facets.jsr303;
-
-import static java.lang.annotation.ElementType.FIELD;
-import static java.lang.annotation.ElementType.METHOD;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-
-import javax.validation.ConstraintValidator;
-
-
-@Documented
-@ConstraintValidator(CustomPatternValidator.class)
-@Target( { METHOD, FIELD })
-@Retention(RUNTIME)
-public @interface CustomPattern {
-    /** regular expression */
-    String regex();
-
-    /** Flags parameter for Pattern.compile() */
-    int flags() default 0;
-
-    String message() default "{beancheck.pattern}";
-
-    String[] groups() default {};
-}
+package org.apache.isis.metamodel.examples.facets.jsr303;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.validation.ConstraintValidator;
+
+
+@Documented
+@ConstraintValidator(CustomPatternValidator.class)
+@Target( { METHOD, FIELD })
+@Retention(RUNTIME)
+public @interface CustomPattern {
+    /** regular expression */
+    String regex();
+
+    /** Flags parameter for Pattern.compile() */
+    int flags() default 0;
+
+    String message() default "{beancheck.pattern}";
+
+    String[] groups() default {};
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/CustomPatternValidator.java
----------------------------------------------------------------------
diff --git a/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/CustomPatternValidator.java b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/CustomPatternValidator.java
index 6e8287c..4adc9f4 100644
--- a/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/CustomPatternValidator.java
+++ b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/CustomPatternValidator.java
@@ -18,26 +18,26 @@
  */
 
 
-package org.apache.isis.metamodel.examples.facets.jsr303;
-
-import javax.validation.Constraint;
-
-
-public class CustomPatternValidator implements Constraint<CustomPattern> {
-    private java.util.regex.Pattern pattern;
-
-    public void initialize(final CustomPattern params) {
-        pattern = java.util.regex.Pattern.compile(params.regex(), params.flags());
-    }
-
-    public boolean isValid(final Object ovalue) {
-        if (ovalue == null) {
-            return true;
-        }
-        if (!(ovalue instanceof String)) {
-            return false;
-        }
-        final String value = (String) ovalue;
-        return pattern.matcher(value).matches();
-    }
-}
+package org.apache.isis.metamodel.examples.facets.jsr303;
+
+import javax.validation.Constraint;
+
+
+public class CustomPatternValidator implements Constraint<CustomPattern> {
+    private java.util.regex.Pattern pattern;
+
+    public void initialize(final CustomPattern params) {
+        pattern = java.util.regex.Pattern.compile(params.regex(), params.flags());
+    }
+
+    public boolean isValid(final Object ovalue) {
+        if (ovalue == null) {
+            return true;
+        }
+        if (!(ovalue instanceof String)) {
+            return false;
+        }
+        final String value = (String) ovalue;
+        return pattern.matcher(value).matches();
+    }
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/CustomPatterns.java
----------------------------------------------------------------------
diff --git a/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/CustomPatterns.java b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/CustomPatterns.java
index fbd216a..fc2828a 100644
--- a/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/CustomPatterns.java
+++ b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/CustomPatterns.java
@@ -18,20 +18,20 @@
  */
 
 
-package org.apache.isis.metamodel.examples.facets.jsr303;
-
-import static java.lang.annotation.ElementType.FIELD;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-
-
-@Documented
-@Target( { ElementType.METHOD, FIELD })
-@Retention(RUNTIME)
-public @interface CustomPatterns {
-    CustomPattern[] value();
-}
+package org.apache.isis.metamodel.examples.facets.jsr303;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+
+@Documented
+@Target( { ElementType.METHOD, FIELD })
+@Retention(RUNTIME)
+public @interface CustomPatterns {
+    CustomPattern[] value();
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/DomainObjectVanilla.java
----------------------------------------------------------------------
diff --git a/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/DomainObjectVanilla.java b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/DomainObjectVanilla.java
index 3f49343..148120f 100644
--- a/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/DomainObjectVanilla.java
+++ b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/DomainObjectVanilla.java
@@ -18,22 +18,22 @@
  */
 
 
-package org.apache.isis.metamodel.examples.facets.jsr303;
-
-import org.apache.isis.applib.AbstractDomainObject;
-
-public class DomainObjectVanilla extends AbstractDomainObject {
-
-    private String firstName;
-
-    public String getFirstName() {
-        resolve(firstName);
-        return firstName;
-    }
-
-    public void setFirstName(String firstName) {
-        this.firstName = firstName;
-        objectChanged();
-    }
-    
-}
+package org.apache.isis.metamodel.examples.facets.jsr303;
+
+import org.apache.isis.applib.AbstractDomainObject;
+
+public class DomainObjectVanilla extends AbstractDomainObject {
+
+    private String firstName;
+
+    public String getFirstName() {
+        resolve(firstName);
+        return firstName;
+    }
+
+    public void setFirstName(String firstName) {
+        this.firstName = firstName;
+        objectChanged();
+    }
+    
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/DomainObjectWithBuiltInValidation.java
----------------------------------------------------------------------
diff --git a/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/DomainObjectWithBuiltInValidation.java b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/DomainObjectWithBuiltInValidation.java
index e4b9586..4d24609 100644
--- a/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/DomainObjectWithBuiltInValidation.java
+++ b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/DomainObjectWithBuiltInValidation.java
@@ -18,24 +18,24 @@
  */
 
 
-package org.apache.isis.metamodel.examples.facets.jsr303;
-
-import javax.validation.Pattern;
-import javax.validation.Patterns;
-
-
-public class DomainObjectWithBuiltInValidation {
-
-    private String serialNumber;
-
-    @Patterns( { @Pattern(regex = "^[A-Z0-9-]+$", message = "must contain alphabetical characters only"),
-            @Pattern(regex = "^....-....-....$", message = "must match ....-....-....") })
-    public String getSerialNumber() {
-        return serialNumber;
-    }
-
-    public void setSerialNumber(final String serialNumber) {
-        this.serialNumber = serialNumber;
-    }
-
-}
+package org.apache.isis.metamodel.examples.facets.jsr303;
+
+import javax.validation.Pattern;
+import javax.validation.Patterns;
+
+
+public class DomainObjectWithBuiltInValidation {
+
+    private String serialNumber;
+
+    @Patterns( { @Pattern(regex = "^[A-Z0-9-]+$", message = "must contain alphabetical characters only"),
+            @Pattern(regex = "^....-....-....$", message = "must match ....-....-....") })
+    public String getSerialNumber() {
+        return serialNumber;
+    }
+
+    public void setSerialNumber(final String serialNumber) {
+        this.serialNumber = serialNumber;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/DomainObjectWithCustomValidation.java
----------------------------------------------------------------------
diff --git a/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/DomainObjectWithCustomValidation.java b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/DomainObjectWithCustomValidation.java
index dcfea0e..e7be3da 100644
--- a/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/DomainObjectWithCustomValidation.java
+++ b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/DomainObjectWithCustomValidation.java
@@ -18,20 +18,20 @@
  */
 
 
-package org.apache.isis.metamodel.examples.facets.jsr303;
-
-public class DomainObjectWithCustomValidation {
-
-    private String serialNumber;
-
-    @CustomPatterns( { @CustomPattern(regex = "^[A-Z0-9-]+$", message = "must contain alphabetical characters only"),
-            @CustomPattern(regex = "^....-....-....$", message = "must match ....-....-....") })
-    public String getSerialNumber() {
-        return serialNumber;
-    }
-
-    public void setSerialNumber(final String serialNumber) {
-        this.serialNumber = serialNumber;
-    }
-
-}
+package org.apache.isis.metamodel.examples.facets.jsr303;
+
+public class DomainObjectWithCustomValidation {
+
+    private String serialNumber;
+
+    @CustomPatterns( { @CustomPattern(regex = "^[A-Z0-9-]+$", message = "must contain alphabetical characters only"),
+            @CustomPattern(regex = "^....-....-....$", message = "must match ....-....-....") })
+    public String getSerialNumber() {
+        return serialNumber;
+    }
+
+    public void setSerialNumber(final String serialNumber) {
+        this.serialNumber = serialNumber;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetFacetHolder.java
----------------------------------------------------------------------
diff --git a/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetFacetHolder.java b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetFacetHolder.java
index 53837d3..b8376b6 100644
--- a/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetFacetHolder.java
+++ b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetFacetHolder.java
@@ -18,54 +18,54 @@
  */
 
 
-package org.apache.isis.metamodel.examples.facets.jsr303;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-
-import org.jmock.Mockery;
-import org.jmock.integration.junit4.JMock;
-import org.jmock.integration.junit4.JUnit4Mockery;
-import org.jmock.lib.legacy.ClassImposteriser;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.apache.isis.metamodel.examples.facets.jsr303.Jsr303PropertyValidationFacet;
-import org.apache.isis.metamodel.facets.FacetHolder;
-
-
-
-
-@RunWith(JMock.class)
-public class Jsr303FacetFacetHolder {
-
-    private final Mockery mockery = new JUnit4Mockery() {
-        {
-            setImposteriser(ClassImposteriser.INSTANCE);
-        }
-    };
-
-    private Jsr303PropertyValidationFacet facet;
-    private FacetHolder mockHolder;
-
-    
-    @Before
-    public void setUp() throws Exception {
-        mockHolder = mockery.mock(FacetHolder.class);
-        facet = new Jsr303PropertyValidationFacet(mockHolder);
-    }
-
-    @After
-    public void tearDown() throws Exception {
-        mockHolder = null;
-        facet = null;
-    }
-
-
-    @Test
-    public void facetHolder() {
-        assertThat(facet.getFacetHolder(), is(mockHolder));
-    }
-
-}
+package org.apache.isis.metamodel.examples.facets.jsr303;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+import org.jmock.Mockery;
+import org.jmock.integration.junit4.JMock;
+import org.jmock.integration.junit4.JUnit4Mockery;
+import org.jmock.lib.legacy.ClassImposteriser;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.apache.isis.metamodel.examples.facets.jsr303.Jsr303PropertyValidationFacet;
+import org.apache.isis.metamodel.facets.FacetHolder;
+
+
+
+
+@RunWith(JMock.class)
+public class Jsr303FacetFacetHolder {
+
+    private final Mockery mockery = new JUnit4Mockery() {
+        {
+            setImposteriser(ClassImposteriser.INSTANCE);
+        }
+    };
+
+    private Jsr303PropertyValidationFacet facet;
+    private FacetHolder mockHolder;
+
+    
+    @Before
+    public void setUp() throws Exception {
+        mockHolder = mockery.mock(FacetHolder.class);
+        facet = new Jsr303PropertyValidationFacet(mockHolder);
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        mockHolder = null;
+        facet = null;
+    }
+
+
+    @Test
+    public void facetHolder() {
+        assertThat(facet.getFacetHolder(), is(mockHolder));
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetFactoryFeatureTypes.java
----------------------------------------------------------------------
diff --git a/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetFactoryFeatureTypes.java b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetFactoryFeatureTypes.java
index 4e2f347..45dd6d5 100644
--- a/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetFactoryFeatureTypes.java
+++ b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetFactoryFeatureTypes.java
@@ -18,51 +18,51 @@
  */
 
 
-package org.apache.isis.metamodel.examples.facets.jsr303;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.collection.IsArrayContaining.hasItemInArray;
-import static org.junit.Assert.assertThat;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.apache.isis.metamodel.examples.facets.jsr303.Jsr303FacetFactory;
-import org.apache.isis.metamodel.spec.feature.ObjectFeatureType;
-
-
-
-public class Jsr303FacetFactoryFeatureTypes {
-
-    private Jsr303FacetFactory facetFactory;
-
-    @Before
-    public void setUp() throws Exception {
-        facetFactory = new Jsr303FacetFactory();
-    }
-
-    @After
-    public void tearDown() throws Exception {
-        facetFactory = null;
-    }
-
-    @Test
-    public void featureTypesLength() {
-        ObjectFeatureType[] featureTypes = facetFactory.getFeatureTypes();
-        assertThat(featureTypes.length, is(2));
-    }
-
-    @Test
-    public void featureTypesContainsTypeRepresentingObject() {
-        ObjectFeatureType[] featureTypes = facetFactory.getFeatureTypes();
-        assertThat(featureTypes, hasItemInArray(ObjectFeatureType.OBJECT));
-    }
-
-    @Test
-    public void featureTypesContainsTypeRepresentingProperty() {
-        ObjectFeatureType[] featureTypes = facetFactory.getFeatureTypes();
-        assertThat(featureTypes, hasItemInArray(ObjectFeatureType.PROPERTY));
-    }
-
-
-}
+package org.apache.isis.metamodel.examples.facets.jsr303;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.collection.IsArrayContaining.hasItemInArray;
+import static org.junit.Assert.assertThat;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.apache.isis.metamodel.examples.facets.jsr303.Jsr303FacetFactory;
+import org.apache.isis.metamodel.spec.feature.ObjectFeatureType;
+
+
+
+public class Jsr303FacetFactoryFeatureTypes {
+
+    private Jsr303FacetFactory facetFactory;
+
+    @Before
+    public void setUp() throws Exception {
+        facetFactory = new Jsr303FacetFactory();
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        facetFactory = null;
+    }
+
+    @Test
+    public void featureTypesLength() {
+        ObjectFeatureType[] featureTypes = facetFactory.getFeatureTypes();
+        assertThat(featureTypes.length, is(2));
+    }
+
+    @Test
+    public void featureTypesContainsTypeRepresentingObject() {
+        ObjectFeatureType[] featureTypes = facetFactory.getFeatureTypes();
+        assertThat(featureTypes, hasItemInArray(ObjectFeatureType.OBJECT));
+    }
+
+    @Test
+    public void featureTypesContainsTypeRepresentingProperty() {
+        ObjectFeatureType[] featureTypes = facetFactory.getFeatureTypes();
+        assertThat(featureTypes, hasItemInArray(ObjectFeatureType.PROPERTY));
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetFactoryInstantiation.java
----------------------------------------------------------------------
diff --git a/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetFactoryInstantiation.java b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetFactoryInstantiation.java
index e5c015b..c3ed4ab 100644
--- a/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetFactoryInstantiation.java
+++ b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetFactoryInstantiation.java
@@ -18,18 +18,18 @@
  */
 
 
-package org.apache.isis.metamodel.examples.facets.jsr303;
-
-import org.junit.Test;
-import org.apache.isis.metamodel.examples.facets.jsr303.Jsr303FacetFactory;
-
-
-public class Jsr303FacetFactoryInstantiation {
-
-
-    @Test
-    public void canInstantiate() {
-        new Jsr303FacetFactory();
-    }
-
-}
+package org.apache.isis.metamodel.examples.facets.jsr303;
+
+import org.junit.Test;
+import org.apache.isis.metamodel.examples.facets.jsr303.Jsr303FacetFactory;
+
+
+public class Jsr303FacetFactoryInstantiation {
+
+
+    @Test
+    public void canInstantiate() {
+        new Jsr303FacetFactory();
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetFactoryProcessObject.java
----------------------------------------------------------------------
diff --git a/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetFactoryProcessObject.java b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetFactoryProcessObject.java
index e14e25d..fa0f288 100644
--- a/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetFactoryProcessObject.java
+++ b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetFactoryProcessObject.java
@@ -18,60 +18,60 @@
  */
 
 
-package org.apache.isis.metamodel.examples.facets.jsr303;
-
-import static org.junit.Assert.fail;
-
-import org.jmock.Mockery;
-import org.jmock.integration.junit4.JMock;
-import org.jmock.integration.junit4.JUnit4Mockery;
-import org.jmock.lib.legacy.ClassImposteriser;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.apache.isis.metamodel.examples.facets.jsr303.Jsr303FacetFactory;
-import org.apache.isis.metamodel.facets.FacetHolder;
-import org.apache.isis.metamodel.facets.MethodRemover;
-
-
-@RunWith(JMock.class)
-public class Jsr303FacetFactoryProcessObject {
-
-    private Mockery mockery = new JUnit4Mockery() {
-        {
-            setImposteriser(ClassImposteriser.INSTANCE);
-        }
-    };
-    
-    private Jsr303FacetFactory facetFactory;
-    private MethodRemover mockMethodRemover;
-    private FacetHolder mockFacetHolder;
-
-    private Class<DomainObjectVanilla> domainObjectClass;
-
-    @Before
-    public void setUp() throws Exception {
-        facetFactory = new Jsr303FacetFactory();
-        mockMethodRemover = mockery.mock(MethodRemover.class);
-        mockFacetHolder = mockery.mock(FacetHolder.class);
-        domainObjectClass = DomainObjectVanilla.class;
-    }
-
-    @After
-    public void tearDown() throws Exception {
-        facetFactory = null;
-        mockMethodRemover = null;
-        mockFacetHolder = null;
-    }
-
-    @Ignore("TODO")
-    @Test
-    public void process() {
-        facetFactory.process(domainObjectClass, mockMethodRemover, mockFacetHolder);
-        fail();
-    }
-
-
-}
+package org.apache.isis.metamodel.examples.facets.jsr303;
+
+import static org.junit.Assert.fail;
+
+import org.jmock.Mockery;
+import org.jmock.integration.junit4.JMock;
+import org.jmock.integration.junit4.JUnit4Mockery;
+import org.jmock.lib.legacy.ClassImposteriser;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.apache.isis.metamodel.examples.facets.jsr303.Jsr303FacetFactory;
+import org.apache.isis.metamodel.facets.FacetHolder;
+import org.apache.isis.metamodel.facets.MethodRemover;
+
+
+@RunWith(JMock.class)
+public class Jsr303FacetFactoryProcessObject {
+
+    private Mockery mockery = new JUnit4Mockery() {
+        {
+            setImposteriser(ClassImposteriser.INSTANCE);
+        }
+    };
+    
+    private Jsr303FacetFactory facetFactory;
+    private MethodRemover mockMethodRemover;
+    private FacetHolder mockFacetHolder;
+
+    private Class<DomainObjectVanilla> domainObjectClass;
+
+    @Before
+    public void setUp() throws Exception {
+        facetFactory = new Jsr303FacetFactory();
+        mockMethodRemover = mockery.mock(MethodRemover.class);
+        mockFacetHolder = mockery.mock(FacetHolder.class);
+        domainObjectClass = DomainObjectVanilla.class;
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        facetFactory = null;
+        mockMethodRemover = null;
+        mockFacetHolder = null;
+    }
+
+    @Ignore("TODO")
+    @Test
+    public void process() {
+        facetFactory.process(domainObjectClass, mockMethodRemover, mockFacetHolder);
+        fail();
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetFactoryProcessProperty.java
----------------------------------------------------------------------
diff --git a/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetFactoryProcessProperty.java b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetFactoryProcessProperty.java
index 3905803..0049e33 100644
--- a/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetFactoryProcessProperty.java
+++ b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetFactoryProcessProperty.java
@@ -18,66 +18,66 @@
  */
 
 
-package org.apache.isis.metamodel.examples.facets.jsr303;
-
-import static org.apache.isis.metamodel.commons.matchers.NofMatchers.anInstanceOf;
-
-import java.lang.reflect.Method;
-
-import org.jmock.Expectations;
-import org.jmock.Mockery;
-import org.jmock.integration.junit4.JMock;
-import org.jmock.integration.junit4.JUnit4Mockery;
-import org.jmock.lib.legacy.ClassImposteriser;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.apache.isis.metamodel.examples.facets.jsr303.Jsr303FacetFactory;
-import org.apache.isis.metamodel.examples.facets.jsr303.Jsr303PropertyValidationFacet;
-import org.apache.isis.metamodel.facets.FacetHolder;
-import org.apache.isis.metamodel.facets.MethodRemover;
-
-@RunWith(JMock.class)
-public class Jsr303FacetFactoryProcessProperty {
-
-    private Mockery mockery = new JUnit4Mockery() {
-        {
-            setImposteriser(ClassImposteriser.INSTANCE);
-        }
-    };
-    
-    private Jsr303FacetFactory facetFactory;
-    private MethodRemover mockMethodRemover;
-    private FacetHolder mockFacetHolder;
-
-    private Class<DomainObjectVanilla> domainObjectClass;
-    private Method firstNameMethod;
-
-    @Before
-    public void setUp() throws Exception {
-        facetFactory = new Jsr303FacetFactory();
-        mockMethodRemover = mockery.mock(MethodRemover.class);
-        mockFacetHolder = mockery.mock(FacetHolder.class);
-        domainObjectClass = DomainObjectVanilla.class;
-        firstNameMethod = domainObjectClass.getMethod("getFirstName");
-    }
-
-    @After
-    public void tearDown() throws Exception {
-        facetFactory = null;
-        mockMethodRemover = null;
-        mockFacetHolder = null;
-    }
-
-    @Test
-    public void alwaysAddsAJsr303FacetToHolder() {
-        mockery.checking(new Expectations() {{
-            one(mockFacetHolder).addFacet(with(anInstanceOf(Jsr303PropertyValidationFacet.class)));
-        }});
-
-        facetFactory.process(firstNameMethod, mockMethodRemover, mockFacetHolder);
-    }
-
-
-}
+package org.apache.isis.metamodel.examples.facets.jsr303;
+
+import static org.apache.isis.metamodel.commons.matchers.NofMatchers.anInstanceOf;
+
+import java.lang.reflect.Method;
+
+import org.jmock.Expectations;
+import org.jmock.Mockery;
+import org.jmock.integration.junit4.JMock;
+import org.jmock.integration.junit4.JUnit4Mockery;
+import org.jmock.lib.legacy.ClassImposteriser;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.apache.isis.metamodel.examples.facets.jsr303.Jsr303FacetFactory;
+import org.apache.isis.metamodel.examples.facets.jsr303.Jsr303PropertyValidationFacet;
+import org.apache.isis.metamodel.facets.FacetHolder;
+import org.apache.isis.metamodel.facets.MethodRemover;
+
+@RunWith(JMock.class)
+public class Jsr303FacetFactoryProcessProperty {
+
+    private Mockery mockery = new JUnit4Mockery() {
+        {
+            setImposteriser(ClassImposteriser.INSTANCE);
+        }
+    };
+    
+    private Jsr303FacetFactory facetFactory;
+    private MethodRemover mockMethodRemover;
+    private FacetHolder mockFacetHolder;
+
+    private Class<DomainObjectVanilla> domainObjectClass;
+    private Method firstNameMethod;
+
+    @Before
+    public void setUp() throws Exception {
+        facetFactory = new Jsr303FacetFactory();
+        mockMethodRemover = mockery.mock(MethodRemover.class);
+        mockFacetHolder = mockery.mock(FacetHolder.class);
+        domainObjectClass = DomainObjectVanilla.class;
+        firstNameMethod = domainObjectClass.getMethod("getFirstName");
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        facetFactory = null;
+        mockMethodRemover = null;
+        mockFacetHolder = null;
+    }
+
+    @Test
+    public void alwaysAddsAJsr303FacetToHolder() {
+        mockery.checking(new Expectations() {{
+            one(mockFacetHolder).addFacet(with(anInstanceOf(Jsr303PropertyValidationFacet.class)));
+        }});
+
+        facetFactory.process(firstNameMethod, mockMethodRemover, mockFacetHolder);
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetInstantiation.java
----------------------------------------------------------------------
diff --git a/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetInstantiation.java b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetInstantiation.java
index 2bc7828..e1619fd 100644
--- a/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetInstantiation.java
+++ b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetInstantiation.java
@@ -18,32 +18,32 @@
  */
 
 
-package org.apache.isis.metamodel.examples.facets.jsr303;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.apache.isis.metamodel.examples.facets.jsr303.Jsr303PropertyValidationFacet;
-import org.apache.isis.metamodel.facets.FacetHolderImpl;
-
-
-public class Jsr303FacetInstantiation {
-
-    private FacetHolderImpl holder;
-
-    @Before
-    public void setUp() throws Exception {
-        holder = new FacetHolderImpl();
-    }
-
-    @After
-    public void tearDown() throws Exception {
-        holder = null;
-    }
-
-    @Test
-    public void canInstantiate() {
-        new Jsr303PropertyValidationFacet(holder);
-    }
-
-}
+package org.apache.isis.metamodel.examples.facets.jsr303;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.apache.isis.metamodel.examples.facets.jsr303.Jsr303PropertyValidationFacet;
+import org.apache.isis.metamodel.facets.FacetHolderImpl;
+
+
+public class Jsr303FacetInstantiation {
+
+    private FacetHolderImpl holder;
+
+    @Before
+    public void setUp() throws Exception {
+        holder = new FacetHolderImpl();
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        holder = null;
+    }
+
+    @Test
+    public void canInstantiate() {
+        new Jsr303PropertyValidationFacet(holder);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetValidatingInteraction.java
----------------------------------------------------------------------
diff --git a/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetValidatingInteraction.java b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetValidatingInteraction.java
index c956cce..50e4664 100644
--- a/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetValidatingInteraction.java
+++ b/examples/metamodel-examples/jsr303/src/test/java/org/apache/isis/metamodel/examples/facets/jsr303/Jsr303FacetValidatingInteraction.java
@@ -18,145 +18,145 @@
  */
 
 
-package org.apache.isis.metamodel.examples.facets.jsr303;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.CoreMatchers.not;
-import static org.hamcrest.CoreMatchers.nullValue;
-import static org.junit.Assert.assertThat;
-
-import org.jmock.Expectations;
-import org.jmock.Mockery;
-import org.jmock.integration.junit4.JMock;
-import org.jmock.integration.junit4.JUnit4Mockery;
-import org.jmock.lib.legacy.ClassImposteriser;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.apache.isis.applib.Identifier;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.examples.facets.jsr303.Jsr303PropertyValidationFacet;
-import org.apache.isis.metamodel.interactions.PropertyModifyContext;
-import org.apache.isis.metamodel.spec.identifier.Identified;
-
-
-@RunWith(JMock.class)
-public class Jsr303FacetValidatingInteraction {
-
-    private final Mockery mockery = new JUnit4Mockery() {
-        {
-            setImposteriser(ClassImposteriser.INSTANCE);
-        }
-    };
-
-    private Jsr303PropertyValidationFacet facet;
-    private Identified mockHolder;
-
-    private PropertyModifyContext mockContext;
-    private ObjectAdapter mockTargetObjectAdapter;
-    private ObjectAdapter mockProposedObjectAdapter;
-
-    private DomainObjectWithCustomValidation domainObjectWithCustomValidation;
-
-    private DomainObjectWithBuiltInValidation domainObjectWithBuiltInValidation;
-    
-    @Before
-    public void setUp() throws Exception {
-        mockHolder = mockery.mock(Identified.class);
-        facet = new Jsr303PropertyValidationFacet(mockHolder);
-        mockContext = mockery.mock(PropertyModifyContext.class);
-        mockTargetObjectAdapter = mockery.mock(ObjectAdapter.class, "target");
-        mockProposedObjectAdapter = mockery.mock(ObjectAdapter.class, "proposed");
-
-        domainObjectWithBuiltInValidation = new DomainObjectWithBuiltInValidation();
-        domainObjectWithCustomValidation = new DomainObjectWithCustomValidation();
-
-        mockery.checking(new Expectations() {
-            {
-                one(mockHolder).getIdentifier();
-                will(returnValue(Identifier.propertyOrCollectionIdentifier(DomainObjectWithBuiltInValidation.class, "serialNumber")));
-
-                one(mockContext).getTarget();
-                will(returnValue(mockTargetObjectAdapter));
-
-                one(mockContext).getProposed();
-                will(returnValue(mockProposedObjectAdapter));
-            }
-        });
-    }
-
-    @After
-    public void tearDown() throws Exception {
-        mockHolder = null;
-        facet = null;
-        mockContext = null;
-    }
-
-    @Test
-    public void invalidatesWhenBuiltInConstraintVetoes() {
-        mockery.checking(new Expectations() {
-            {
-                one(mockTargetObjectAdapter).getObject();
-                will(returnValue(domainObjectWithBuiltInValidation));
-
-                one(mockProposedObjectAdapter).getObject();
-                will(returnValue("NONSENSE"));
-            }
-        });
-
-        final String reason = facet.invalidates(mockContext);
-        assertThat(reason, is(not(nullValue())));
-        assertThat(reason, is("serialNumber is invalid: must match ....-....-...."));
-    }
-
-    @Test
-    public void validatesWhenBuiltInConstraintIsMet() {
-        mockery.checking(new Expectations() {
-            {
-                one(mockTargetObjectAdapter).getObject();
-                will(returnValue(domainObjectWithBuiltInValidation));
-
-                one(mockProposedObjectAdapter).getObject();
-                will(returnValue("1234-5678-9012"));
-            }
-        });
-
-        final String reason = facet.invalidates(mockContext);
-        assertThat(reason, is(nullValue()));
-    }
-
-    @Test
-    public void invalidatesWhenFailsCustomConstraint() {
-        mockery.checking(new Expectations() {
-            {
-                one(mockTargetObjectAdapter).getObject();
-                will(returnValue(domainObjectWithCustomValidation));
-
-                one(mockProposedObjectAdapter).getObject();
-                will(returnValue("NONSENSE"));
-            }
-        });
-
-        final String reason = facet.invalidates(mockContext);
-        assertThat(reason, is(not(nullValue())));
-        assertThat(reason, is("serialNumber is invalid: must match ....-....-...."));
-    }
-
-    @Test
-    public void validatesWhenFailsCustomConstraint() {
-        mockery.checking(new Expectations() {
-            {
-                one(mockTargetObjectAdapter).getObject();
-                will(returnValue(domainObjectWithCustomValidation));
-
-                one(mockProposedObjectAdapter).getObject();
-                will(returnValue("1234-5678-9012"));
-            }
-        });
-
-        final String reason = facet.invalidates(mockContext);
-        assertThat(reason, is(nullValue()));
-    }
-
-}
+package org.apache.isis.metamodel.examples.facets.jsr303;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.CoreMatchers.nullValue;
+import static org.junit.Assert.assertThat;
+
+import org.jmock.Expectations;
+import org.jmock.Mockery;
+import org.jmock.integration.junit4.JMock;
+import org.jmock.integration.junit4.JUnit4Mockery;
+import org.jmock.lib.legacy.ClassImposteriser;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.apache.isis.applib.Identifier;
+import org.apache.isis.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.metamodel.examples.facets.jsr303.Jsr303PropertyValidationFacet;
+import org.apache.isis.metamodel.interactions.PropertyModifyContext;
+import org.apache.isis.metamodel.spec.identifier.Identified;
+
+
+@RunWith(JMock.class)
+public class Jsr303FacetValidatingInteraction {
+
+    private final Mockery mockery = new JUnit4Mockery() {
+        {
+            setImposteriser(ClassImposteriser.INSTANCE);
+        }
+    };
+
+    private Jsr303PropertyValidationFacet facet;
+    private Identified mockHolder;
+
+    private PropertyModifyContext mockContext;
+    private ObjectAdapter mockTargetObjectAdapter;
+    private ObjectAdapter mockProposedObjectAdapter;
+
+    private DomainObjectWithCustomValidation domainObjectWithCustomValidation;
+
+    private DomainObjectWithBuiltInValidation domainObjectWithBuiltInValidation;
+    
+    @Before
+    public void setUp() throws Exception {
+        mockHolder = mockery.mock(Identified.class);
+        facet = new Jsr303PropertyValidationFacet(mockHolder);
+        mockContext = mockery.mock(PropertyModifyContext.class);
+        mockTargetObjectAdapter = mockery.mock(ObjectAdapter.class, "target");
+        mockProposedObjectAdapter = mockery.mock(ObjectAdapter.class, "proposed");
+
+        domainObjectWithBuiltInValidation = new DomainObjectWithBuiltInValidation();
+        domainObjectWithCustomValidation = new DomainObjectWithCustomValidation();
+
+        mockery.checking(new Expectations() {
+            {
+                one(mockHolder).getIdentifier();
+                will(returnValue(Identifier.propertyOrCollectionIdentifier(DomainObjectWithBuiltInValidation.class, "serialNumber")));
+
+                one(mockContext).getTarget();
+                will(returnValue(mockTargetObjectAdapter));
+
+                one(mockContext).getProposed();
+                will(returnValue(mockProposedObjectAdapter));
+            }
+        });
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        mockHolder = null;
+        facet = null;
+        mockContext = null;
+    }
+
+    @Test
+    public void invalidatesWhenBuiltInConstraintVetoes() {
+        mockery.checking(new Expectations() {
+            {
+                one(mockTargetObjectAdapter).getObject();
+                will(returnValue(domainObjectWithBuiltInValidation));
+
+                one(mockProposedObjectAdapter).getObject();
+                will(returnValue("NONSENSE"));
+            }
+        });
+
+        final String reason = facet.invalidates(mockContext);
+        assertThat(reason, is(not(nullValue())));
+        assertThat(reason, is("serialNumber is invalid: must match ....-....-...."));
+    }
+
+    @Test
+    public void validatesWhenBuiltInConstraintIsMet() {
+        mockery.checking(new Expectations() {
+            {
+                one(mockTargetObjectAdapter).getObject();
+                will(returnValue(domainObjectWithBuiltInValidation));
+
+                one(mockProposedObjectAdapter).getObject();
+                will(returnValue("1234-5678-9012"));
+            }
+        });
+
+        final String reason = facet.invalidates(mockContext);
+        assertThat(reason, is(nullValue()));
+    }
+
+    @Test
+    public void invalidatesWhenFailsCustomConstraint() {
+        mockery.checking(new Expectations() {
+            {
+                one(mockTargetObjectAdapter).getObject();
+                will(returnValue(domainObjectWithCustomValidation));
+
+                one(mockProposedObjectAdapter).getObject();
+                will(returnValue("NONSENSE"));
+            }
+        });
+
+        final String reason = facet.invalidates(mockContext);
+        assertThat(reason, is(not(nullValue())));
+        assertThat(reason, is("serialNumber is invalid: must match ....-....-...."));
+    }
+
+    @Test
+    public void validatesWhenFailsCustomConstraint() {
+        mockery.checking(new Expectations() {
+            {
+                one(mockTargetObjectAdapter).getObject();
+                will(returnValue(domainObjectWithCustomValidation));
+
+                one(mockProposedObjectAdapter).getObject();
+                will(returnValue("1234-5678-9012"));
+            }
+        });
+
+        final String reason = facet.invalidates(mockContext);
+        assertThat(reason, is(nullValue()));
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/metamodel-examples/namefile/src/test/resources/config/namefile.properties
----------------------------------------------------------------------
diff --git a/examples/metamodel-examples/namefile/src/test/resources/config/namefile.properties b/examples/metamodel-examples/namefile/src/test/resources/config/namefile.properties
index 4e1d2b5..038791a 100644
--- a/examples/metamodel-examples/namefile/src/test/resources/config/namefile.properties
+++ b/examples/metamodel-examples/namefile/src/test/resources/config/namefile.properties
@@ -14,5 +14,5 @@
 #  KIND, either express or implied.  See the License for the
 #  specific language governing permissions and limitations
 #  under the License.
-org.apache.isis.metamodel.examples.facets.namefile.DomainObjectWithNameFileEntry = Customer
-org.apache.isis.metamodel.examples.facets.namefile.DomainObjectWithNameFileEntry#lastName = surname
+org.apache.isis.metamodel.examples.facets.namefile.DomainObjectWithNameFileEntry = Customer
+org.apache.isis.metamodel.examples.facets.namefile.DomainObjectWithNameFileEntry#lastName = surname

http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/onlinedemo/dom/src/main/java/org/apache/isis/examples/onlinedemo/dom/demo/DemoFixtures.java
----------------------------------------------------------------------
diff --git a/examples/onlinedemo/dom/src/main/java/org/apache/isis/examples/onlinedemo/dom/demo/DemoFixtures.java b/examples/onlinedemo/dom/src/main/java/org/apache/isis/examples/onlinedemo/dom/demo/DemoFixtures.java
index 5e75204..01c7d2e 100644
--- a/examples/onlinedemo/dom/src/main/java/org/apache/isis/examples/onlinedemo/dom/demo/DemoFixtures.java
+++ b/examples/onlinedemo/dom/src/main/java/org/apache/isis/examples/onlinedemo/dom/demo/DemoFixtures.java
@@ -1,50 +1,50 @@
-/*
- *  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.examples.onlinedemo.dom.demo;
-
-import java.util.List;
-
-import org.apache.isis.applib.annotation.ActionSemantics;
-import org.apache.isis.applib.annotation.Idempotent;
-import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.Named;
-import org.apache.isis.applib.annotation.ActionSemantics.Of;
-import org.apache.isis.examples.onlinedemo.dom.items.ToDoItem;
-
-/**
- * Install fixtures (test data set) for the currently logged-in user.
- * 
- * <p>
- * Typically fixtures are installed directly by the framework, using the
- * <tt>isis.fixtures</tt> key within the <tt>isis.properties</tt> configuration
- * file. In this case though, because the online demo is intended to be
- * multi-user, we have made this capability available directly in the UI. (In
- * production, this service would be excluded from the final build)
- */
-@Named("Demo")
-// name to use in the UI
-public interface DemoFixtures {
-
-    
-    @ActionSemantics(Of.IDEMPOTENT) // post-conditions are always same
-    @MemberOrder(sequence = "1")
-    public List<ToDoItem> resetFixtures();
-
-}
+/*
+ *  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.examples.onlinedemo.dom.demo;
+
+import java.util.List;
+
+import org.apache.isis.applib.annotation.ActionSemantics;
+import org.apache.isis.applib.annotation.Idempotent;
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.Named;
+import org.apache.isis.applib.annotation.ActionSemantics.Of;
+import org.apache.isis.examples.onlinedemo.dom.items.ToDoItem;
+
+/**
+ * Install fixtures (test data set) for the currently logged-in user.
+ * 
+ * <p>
+ * Typically fixtures are installed directly by the framework, using the
+ * <tt>isis.fixtures</tt> key within the <tt>isis.properties</tt> configuration
+ * file. In this case though, because the online demo is intended to be
+ * multi-user, we have made this capability available directly in the UI. (In
+ * production, this service would be excluded from the final build)
+ */
+@Named("Demo")
+// name to use in the UI
+public interface DemoFixtures {
+
+    
+    @ActionSemantics(Of.IDEMPOTENT) // post-conditions are always same
+    @MemberOrder(sequence = "1")
+    public List<ToDoItem> resetFixtures();
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/onlinedemo/dom/src/main/java/org/apache/isis/examples/onlinedemo/dom/items/Categories.java
----------------------------------------------------------------------
diff --git a/examples/onlinedemo/dom/src/main/java/org/apache/isis/examples/onlinedemo/dom/items/Categories.java b/examples/onlinedemo/dom/src/main/java/org/apache/isis/examples/onlinedemo/dom/items/Categories.java
index ccf1785..e122dcd 100644
--- a/examples/onlinedemo/dom/src/main/java/org/apache/isis/examples/onlinedemo/dom/items/Categories.java
+++ b/examples/onlinedemo/dom/src/main/java/org/apache/isis/examples/onlinedemo/dom/items/Categories.java
@@ -1,52 +1,52 @@
-/*
- *  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.examples.onlinedemo.dom.items;
-
-import java.util.List;
-
-import org.apache.isis.applib.annotation.Hidden;
-import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.Named;
-import org.apache.isis.applib.annotation.QueryOnly;
-
-/**
- * A repository for {@link Category}.
- * 
- * <p>
- * The implementation depends on the configured object store.
- */
-@Hidden
-@Named("Categories")
-public interface Categories {
-
-    @QueryOnly
-    // no side-effects
-    @MemberOrder(sequence = "1")
-    public List<Category> all();
-
-    @QueryOnly
-    @MemberOrder(sequence = "2")
-    public Category find(@Named("Description") String description);
-
-    @Hidden
-    // intended for fixtures only, so is hidden in the UI
-    public Category newCategory(String description);
-
-}
+/*
+ *  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.examples.onlinedemo.dom.items;
+
+import java.util.List;
+
+import org.apache.isis.applib.annotation.Hidden;
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.Named;
+import org.apache.isis.applib.annotation.QueryOnly;
+
+/**
+ * A repository for {@link Category}.
+ * 
+ * <p>
+ * The implementation depends on the configured object store.
+ */
+@Hidden
+@Named("Categories")
+public interface Categories {
+
+    @QueryOnly
+    // no side-effects
+    @MemberOrder(sequence = "1")
+    public List<Category> all();
+
+    @QueryOnly
+    @MemberOrder(sequence = "2")
+    public Category find(@Named("Description") String description);
+
+    @Hidden
+    // intended for fixtures only, so is hidden in the UI
+    public Category newCategory(String description);
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/onlinedemo/dom/src/main/java/org/apache/isis/examples/onlinedemo/dom/items/Category.java
----------------------------------------------------------------------
diff --git a/examples/onlinedemo/dom/src/main/java/org/apache/isis/examples/onlinedemo/dom/items/Category.java b/examples/onlinedemo/dom/src/main/java/org/apache/isis/examples/onlinedemo/dom/items/Category.java
index b5de885..dd9b751 100644
--- a/examples/onlinedemo/dom/src/main/java/org/apache/isis/examples/onlinedemo/dom/items/Category.java
+++ b/examples/onlinedemo/dom/src/main/java/org/apache/isis/examples/onlinedemo/dom/items/Category.java
@@ -1,65 +1,65 @@
-/*
- *  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.examples.onlinedemo.dom.items;
-
-import com.google.common.base.Objects;
-
-import org.apache.isis.applib.AbstractDomainObject;
-import org.apache.isis.applib.annotation.Bounded;
-import org.apache.isis.applib.annotation.Immutable;
-import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.Title;
-import org.apache.isis.applib.filter.Filter;
-
-@Immutable
-// cannot be modified through the UI
-@Bounded
-// a bounded number of instances (viewers typically display all instances in a
-// drop-down)
-public class Category extends AbstractDomainObject {
-
-    // {{ Description
-    private String description;
-
-    @Title
-    // use as the title
-    @MemberOrder(sequence = "1")
-    public String getDescription() {
-        return description;
-    }
-
-    public void setDescription(final String description) {
-        this.description = description;
-    }
-
-    // }}
-
-    // {{ filters (programmatic)
-    public static Filter<Category> matching(final String description) {
-        return new Filter<Category>() {
-            @Override
-            public boolean accept(final Category category) {
-                return Objects.equal(category.getDescription(), description);
-            }
-        };
-    }
-    // }}
-
-}
+/*
+ *  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.examples.onlinedemo.dom.items;
+
+import com.google.common.base.Objects;
+
+import org.apache.isis.applib.AbstractDomainObject;
+import org.apache.isis.applib.annotation.Bounded;
+import org.apache.isis.applib.annotation.Immutable;
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.Title;
+import org.apache.isis.applib.filter.Filter;
+
+@Immutable
+// cannot be modified through the UI
+@Bounded
+// a bounded number of instances (viewers typically display all instances in a
+// drop-down)
+public class Category extends AbstractDomainObject {
+
+    // {{ Description
+    private String description;
+
+    @Title
+    // use as the title
+    @MemberOrder(sequence = "1")
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(final String description) {
+        this.description = description;
+    }
+
+    // }}
+
+    // {{ filters (programmatic)
+    public static Filter<Category> matching(final String description) {
+        return new Filter<Category>() {
+            @Override
+            public boolean accept(final Category category) {
+                return Objects.equal(category.getDescription(), description);
+            }
+        };
+    }
+    // }}
+
+}