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/03 14:24:33 UTC

[2/3] git commit: ISIS-282: mostly implemented

ISIS-282: mostly implemented

* applib & metamodel/progmodel changes
* added JDO mappings for Isis' Blob/Clob types
* wicket components
* blob file upload


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/22cdbe0d
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/22cdbe0d
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/22cdbe0d

Branch: refs/heads/master
Commit: 22cdbe0d836c8bfd402e955cc5f033de675c3eda
Parents: 6f126b1
Author: Dan Haywood <da...@apache.org>
Authored: Sun Dec 2 16:39:18 2012 +0000
Committer: Dan Haywood <da...@apache.org>
Committed: Mon Dec 3 13:01:48 2012 +0000

----------------------------------------------------------------------
 .../java/org/apache/isis/applib/value/Blob.java    |   88 +++++++
 .../java/org/apache/isis/applib/value/Clob.java    |   83 ++++++
 .../isis/applib/value/BlobTest_constructor.java    |   36 +++
 .../isis/applib/value/ClobTest_constructor.java    |   36 +++
 .../object/choices/enums/EnumFacetFactory.java     |    3 +-
 ...lueUsingValueSemanticsProviderFacetFactory.java |    3 +-
 .../BigDecimalValueTypeFacetFactory.java           |    2 +-
 .../BigIntegerValueTypeFacetFactory.java           |    2 +-
 .../facets/value/blobs/BlobValueFacet.java         |   26 ++
 .../value/blobs/BlobValueSemanticsProvider.java    |  119 +++++++++
 .../value/blobs/BlobValueTypeFacetFactory.java     |   41 +++
 .../BooleanPrimitiveValueTypeFacetFactory.java     |    2 +-
 .../BooleanWrapperValueTypeFacetFactory.java       |    2 +-
 .../bytes/BytePrimitiveValueTypeFacetFactory.java  |    2 +-
 .../bytes/ByteWrapperValueTypeFacetFactory.java    |    2 +-
 .../chars/CharPrimitiveValueTypeFacetFactory.java  |    2 +-
 .../chars/CharWrapperValueTypeFacetFactory.java    |    2 +-
 .../facets/value/clobs/ClobValueFacet.java         |   26 ++
 .../value/clobs/ClobValueSemanticsProvider.java    |  119 +++++++++
 .../value/clobs/ClobValueTypeFacetFactory.java     |   42 +++
 .../value/color/ColorValueTypeFacetFactory.java    |    2 +-
 .../value/date/DateValueTypeFacetFactory.java      |    2 +-
 .../JodaLocalDateValueTypeFacetFactory.java        |    2 +-
 .../datesql/JavaSqlDateValueTypeFacetFactory.java  |    3 +-
 .../datetime/DateTimeValueTypeFacetFactory.java    |    3 +-
 .../JodaDateTimeValueTypeFacetFactory.java         |    2 +-
 .../JodaLocalDateTimeValueTypeFacetFactory.java    |    2 +-
 .../JavaUtilDateValueTypeFacetFactory.java         |    3 +-
 .../FloatPrimitiveValueTypeFacetFactory.java       |    2 +-
 .../floats/FloatWrapperValueTypeFacetFactory.java  |    2 +-
 .../value/image/ImageValueTypeFacetFactory.java    |    2 +-
 .../JavaAwtImageValueTypeFacetFactory.java         |    3 +-
 .../integer/IntPrimitiveValueTypeFacetFactory.java |    2 +-
 .../integer/IntWrapperValueTypeFacetFactory.java   |    2 +-
 .../DoublePrimitiveValueTypeFacetFactory.java      |    2 +-
 .../longs/DoubleWrapperValueTypeFacetFactory.java  |    2 +-
 .../longs/LongPrimitiveValueTypeFacetFactory.java  |    2 +-
 .../longs/LongWrapperValueTypeFacetFactory.java    |    2 +-
 .../value/money/MoneyValueTypeFacetFactory.java    |    2 +-
 .../password/PasswordValueTypeFacetFactory.java    |    2 +-
 .../PercentageValueTypeFacetFactory.java           |    3 +-
 .../ShortPrimitiveValueTypeFacetFactory.java       |    2 +-
 .../ShortWrapperValueTypeFacetFactory.java         |    2 +-
 .../value/string/StringValueTypeFacetFactory.java  |    2 +-
 .../value/time/TimeValueTypeFacetFactory.java      |    3 +-
 .../timesql/JavaSqlTimeValueTypeFacetFactory.java  |    3 +-
 .../timestamp/TimeStampValueTypeFacetFactory.java  |    3 +-
 .../JavaSqlTimeStampValueTypeFacetFactory.java     |    3 +-
 .../value/BlobValueSemanticsProviderTest.java      |   65 +++++
 .../value/ClobValueSemanticsProviderTest.java      |   65 +++++
 .../value/DateValueSemanticsProviderTest.java      |    1 -
 .../value/MoneyValueSemanticsProviderTest.java     |    2 -
 .../PercentageValueSemanticsProviderTest.java      |    2 -
 .../PolishMoneyValueSemanticsProviderTest.java     |    1 -
 .../value/TimeValueSemanticsProviderTest.java      |    1 -
 .../ValueSemanticsProviderAbstractTestCase.java    |   19 +-
 .../dflt/ProgrammingModelFacetsJava5.java          |    7 +-
 .../jdo/jdo-applib/src/main/resources/plugin.xml   |   27 ++-
 .../DataNucleusPersistenceMechanismInstaller.java  |    4 +
 .../datanucleus/valuetypes/IsisBlobConverter.java  |   27 ++
 .../datanucleus/valuetypes/IsisBlobMapping.java    |   88 +++++++
 .../datanucleus/valuetypes/IsisClobConverter.java  |   27 ++
 .../datanucleus/valuetypes/IsisClobMapping.java    |   88 +++++++
 .../runtimes/dflt/runtime/memento/Memento.java     |    2 +-
 .../scalars/isisapplib/IsisBlobPanel.css           |   18 ++
 .../scalars/isisapplib/IsisBlobPanel.html          |   41 +++
 .../scalars/isisapplib/IsisBlobPanel.java          |  204 +++++++++++++++
 .../scalars/isisapplib/IsisBlobPanelFactory.java   |   44 +++
 .../selector/links/LinksSelectorPanelAbstract.java |   12 +-
 .../ComponentFactoryRegistrarDefault.java          |    3 +
 70 files changed, 1370 insertions(+), 81 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/applib/src/main/java/org/apache/isis/applib/value/Blob.java
----------------------------------------------------------------------
diff --git a/framework/applib/src/main/java/org/apache/isis/applib/value/Blob.java b/framework/applib/src/main/java/org/apache/isis/applib/value/Blob.java
new file mode 100644
index 0000000..58058a6
--- /dev/null
+++ b/framework/applib/src/main/java/org/apache/isis/applib/value/Blob.java
@@ -0,0 +1,88 @@
+package org.apache.isis.applib.value;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.Serializable;
+
+import javax.activation.MimeType;
+import javax.activation.MimeTypeParseException;
+
+import com.google.common.io.ByteStreams;
+import com.google.common.io.OutputSupplier;
+
+public final class Blob implements Serializable {
+
+    /**
+     * Computed for state:
+     * <pre>
+     *     private final MimeType mimeType;
+     *     private final byte[] bytes;
+     *     private final String name;
+     * </pre>
+     */
+    private static final long serialVersionUID = 5659679806709601263L;
+    
+    private final MimeType mimeType;
+    private final byte[] bytes;
+    private final String name;
+    
+    public Blob(String name, String primaryType, String subtype, byte[] bytes) {
+        this(name, newMimeType(primaryType, subtype), bytes);
+    }
+
+    public Blob(String name, String mimeTypeBase, byte[] bytes) {
+        this(name, newMimeType(mimeTypeBase), bytes);
+    }
+
+    public Blob(String name, MimeType mimeType, byte[] bytes) {
+        if(name.contains(":")) {
+            throw new IllegalArgumentException("Name cannot contain ':'");
+        }
+        this.name = name;
+        this.mimeType = mimeType;
+        this.bytes = bytes;
+    }
+
+    private static MimeType newMimeType(String primaryType, String subtype) {
+        try {
+            return new MimeType(primaryType, subtype);
+        } catch (MimeTypeParseException e) {
+            throw new IllegalArgumentException(e);
+        }
+    }
+
+    private static MimeType newMimeType(String baseType) {
+        try {
+            return new MimeType(baseType);
+        } catch (MimeTypeParseException e) {
+            throw new IllegalArgumentException(e);
+        }
+    }
+
+    public String getName() {
+        return name;
+    }
+    
+    public MimeType getMimeType() {
+        return mimeType;
+    }
+    
+    public byte[] getBytes() {
+        return bytes;
+    }
+    
+    public void writeBytesTo(final OutputStream os) throws IOException {
+        ByteStreams.write(bytes, new OutputSupplier<OutputStream>() {
+            @Override
+            public OutputStream getOutput() throws IOException {
+                return os;
+            }
+        });
+    }
+
+    @Override
+    public String toString() {
+        return getName() + " [" + getMimeType().getBaseType() + "]: " + getBytes().length + " bytes";
+    }
+    
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/applib/src/main/java/org/apache/isis/applib/value/Clob.java
----------------------------------------------------------------------
diff --git a/framework/applib/src/main/java/org/apache/isis/applib/value/Clob.java b/framework/applib/src/main/java/org/apache/isis/applib/value/Clob.java
new file mode 100644
index 0000000..a49429a
--- /dev/null
+++ b/framework/applib/src/main/java/org/apache/isis/applib/value/Clob.java
@@ -0,0 +1,83 @@
+package org.apache.isis.applib.value;
+
+import java.io.IOException;
+import java.io.Writer;
+
+import javax.activation.MimeType;
+import javax.activation.MimeTypeParseException;
+
+import com.google.common.io.CharStreams;
+import com.google.common.io.OutputSupplier;
+
+public final class Clob {
+
+    private final String name;
+    private final MimeType mimeType;
+    private final CharSequence chars;
+    
+    public Clob(String name, String primaryType, String subType, char[] chars) {
+        this(name, primaryType, subType, new String(chars));
+    }
+
+    public Clob(String name, String mimeTypeBase, char[] chars) {
+        this(name, mimeTypeBase, new String(chars));
+    }
+
+    public Clob(String name, MimeType mimeType, char[] chars) {
+        this(name, mimeType, new String(chars));
+    }
+
+    public Clob(String name, String primaryType, String subType, CharSequence chars) {
+        this(name, newMimeType(primaryType, subType), chars);
+    }
+
+    public Clob(String name, String mimeTypeBase, CharSequence chars) {
+        this(name, newMimeType(mimeTypeBase), chars);
+    }
+
+    public Clob(String name, MimeType mimeType, CharSequence chars) {
+        if(name.contains(":")) {
+            throw new IllegalArgumentException("Name cannot contain ':'");
+        }
+        this.name = name;
+        this.mimeType = mimeType;
+        this.chars = chars;
+    }
+
+    private static MimeType newMimeType(String baseType) {
+        try {
+            return new MimeType(baseType);
+        } catch (MimeTypeParseException e) {
+            throw new IllegalArgumentException(e);
+        }
+    }
+
+    private static MimeType newMimeType(String primaryType, String subType) {
+        try {
+            return new MimeType(primaryType, subType);
+        } catch (MimeTypeParseException e) {
+            throw new IllegalArgumentException(e);
+        }
+    }
+
+    public String getName() {
+        return name;
+    }
+    
+    public MimeType getMimeType() {
+        return mimeType;
+    }
+
+    public CharSequence getChars() {
+        return chars;
+    }
+    
+    public void writeCharsTo(final Writer wr) throws IOException {
+        CharStreams.write(chars, new OutputSupplier<Writer>() {
+            @Override
+            public Writer getOutput() throws IOException {
+                return wr;
+            }
+        });
+    }
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/applib/src/test/java/org/apache/isis/applib/value/BlobTest_constructor.java
----------------------------------------------------------------------
diff --git a/framework/applib/src/test/java/org/apache/isis/applib/value/BlobTest_constructor.java b/framework/applib/src/test/java/org/apache/isis/applib/value/BlobTest_constructor.java
new file mode 100644
index 0000000..bc70e26
--- /dev/null
+++ b/framework/applib/src/test/java/org/apache/isis/applib/value/BlobTest_constructor.java
@@ -0,0 +1,36 @@
+/*
+ *  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.value;
+
+import org.junit.Test;
+
+public class BlobTest_constructor {
+    
+    @Test
+    public void happyCase() throws Exception {
+        new Blob("validName", "application", "xml", new byte[]{0,1});
+    }
+
+    @Test(expected=IllegalArgumentException.class)
+    public void name_cannotContainColon() throws Exception {
+        new Blob("with a colon : in it", "application", "xml", new byte[]{0,1});
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/applib/src/test/java/org/apache/isis/applib/value/ClobTest_constructor.java
----------------------------------------------------------------------
diff --git a/framework/applib/src/test/java/org/apache/isis/applib/value/ClobTest_constructor.java b/framework/applib/src/test/java/org/apache/isis/applib/value/ClobTest_constructor.java
new file mode 100644
index 0000000..8716964
--- /dev/null
+++ b/framework/applib/src/test/java/org/apache/isis/applib/value/ClobTest_constructor.java
@@ -0,0 +1,36 @@
+/*
+ *  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.value;
+
+import org.junit.Test;
+
+public class ClobTest_constructor {
+    
+    @Test
+    public void happyCase() throws Exception {
+        new Clob("validName", "application", "xml", "abc");
+    }
+
+    @Test(expected=IllegalArgumentException.class)
+    public void name_cannotContainColon() throws Exception {
+        new Clob("with a colon : in it", "application", "xml", "abc");
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/choices/enums/EnumFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/choices/enums/EnumFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/choices/enums/EnumFacetFactory.java
index 64964a1..c951b3a 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/choices/enums/EnumFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/choices/enums/EnumFacetFactory.java
@@ -22,13 +22,12 @@ package org.apache.isis.core.progmodel.facets.object.choices.enums;
 import org.apache.isis.core.commons.lang.CastUtils;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import org.apache.isis.core.metamodel.facets.choices.ChoicesFacet;
 import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanticsProviderFacetFactory;
 
 public class EnumFacetFactory<T extends Enum<T>> extends ValueUsingValueSemanticsProviderFacetFactory<T> {
 
     public EnumFacetFactory() {
-        super(ChoicesFacet.class);
+        super();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/ValueUsingValueSemanticsProviderFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/ValueUsingValueSemanticsProviderFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/ValueUsingValueSemanticsProviderFacetFactory.java
index 55d5163..99e879d 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/ValueUsingValueSemanticsProviderFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/ValueUsingValueSemanticsProviderFacetFactory.java
@@ -26,7 +26,6 @@ import org.apache.isis.core.commons.config.IsisConfigurationAware;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManagerAware;
 import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
-import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
@@ -48,7 +47,7 @@ public abstract class ValueUsingValueSemanticsProviderFacetFactory<T> extends Fa
      */
     private ValueSemanticsProviderContext context;
 
-    protected ValueUsingValueSemanticsProviderFacetFactory(final Class<? extends Facet> adapterFacetType) {
+    protected ValueUsingValueSemanticsProviderFacetFactory() {
         super(FeatureType.OBJECTS_ONLY);
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/bigdecimal/BigDecimalValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/bigdecimal/BigDecimalValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/bigdecimal/BigDecimalValueTypeFacetFactory.java
index 4aa75c0..d634df6 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/bigdecimal/BigDecimalValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/bigdecimal/BigDecimalValueTypeFacetFactory.java
@@ -27,7 +27,7 @@ import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanti
 public class BigDecimalValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<BigDecimal> {
 
     public BigDecimalValueTypeFacetFactory() {
-        super(BigDecimalValueFacet.class);
+        super();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/biginteger/BigIntegerValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/biginteger/BigIntegerValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/biginteger/BigIntegerValueTypeFacetFactory.java
index 53c89d3..5c2d5e3 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/biginteger/BigIntegerValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/biginteger/BigIntegerValueTypeFacetFactory.java
@@ -27,7 +27,7 @@ import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanti
 public class BigIntegerValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<BigInteger> {
 
     public BigIntegerValueTypeFacetFactory() {
-        super(BigIntegerValueFacet.class);
+        super();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/blobs/BlobValueFacet.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/blobs/BlobValueFacet.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/blobs/BlobValueFacet.java
new file mode 100644
index 0000000..aa72e29
--- /dev/null
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/blobs/BlobValueFacet.java
@@ -0,0 +1,26 @@
+/*
+ *  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.progmodel.facets.value.blobs;
+
+import org.apache.isis.core.metamodel.facetapi.Facet;
+
+public interface BlobValueFacet extends Facet {
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/blobs/BlobValueSemanticsProvider.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/blobs/BlobValueSemanticsProvider.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/blobs/BlobValueSemanticsProvider.java
new file mode 100644
index 0000000..1434548
--- /dev/null
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/blobs/BlobValueSemanticsProvider.java
@@ -0,0 +1,119 @@
+/*
+ *  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.progmodel.facets.value.blobs;
+
+import javax.activation.MimeType;
+import javax.activation.MimeTypeParseException;
+
+import org.apache.commons.codec.binary.Base64;
+import org.apache.isis.applib.adapters.DefaultsProvider;
+import org.apache.isis.applib.adapters.EncoderDecoder;
+import org.apache.isis.applib.adapters.Parser;
+import org.apache.isis.applib.profiles.Localization;
+import org.apache.isis.applib.value.Blob;
+import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.progmodel.facets.object.value.ValueSemanticsProviderAndFacetAbstract;
+import org.apache.isis.core.progmodel.facets.object.value.ValueSemanticsProviderContext;
+
+public class BlobValueSemanticsProvider extends ValueSemanticsProviderAndFacetAbstract<Blob> implements BlobValueFacet {
+
+    private static final int TYPICAL_LENGTH = 0;
+
+    private static Class<? extends Facet> type() {
+        return BlobValueFacet.class;
+    }
+
+    private static final Blob DEFAULT_VALUE = null;
+
+    /**
+     * Required because implementation of {@link Parser} and
+     * {@link EncoderDecoder}.
+     */
+    public BlobValueSemanticsProvider() {
+        this(null, null, null);
+    }
+
+    public BlobValueSemanticsProvider(final FacetHolder holder, final IsisConfiguration configuration, final ValueSemanticsProviderContext context) {
+        super(type(), holder, Blob.class, TYPICAL_LENGTH, Immutability.IMMUTABLE, EqualByContent.NOT_HONOURED, DEFAULT_VALUE, configuration, context);
+    }
+
+    @Override
+    public String titleString(final Object object, final Localization localization) {
+        return object != null? ((Blob)object).getName(): "[null]";
+    }
+
+    @Override
+    public String titleStringWithMask(final Object value, final String usingMask) {
+        return titleString(value, null);
+    }
+
+
+    // //////////////////////////////////////////////////////////////////
+    // Parser
+    // //////////////////////////////////////////////////////////////////
+
+    @Override
+    public Parser<Blob> getParser() {
+        return null;
+    }
+
+    // //////////////////////////////////////////////////////////////////
+    // DefaultsProvider
+    // //////////////////////////////////////////////////////////////////
+    
+    @Override
+    public DefaultsProvider<Blob> getDefaultsProvider() {
+        return null;
+    }
+    
+    // //////////////////////////////////////////////////////////////////
+    // EncoderDecoder
+    // //////////////////////////////////////////////////////////////////
+
+    @Override
+    protected String doEncode(final Object object) {
+        Blob blob = (Blob)object;
+        return blob.getName() + ":" + blob.getMimeType().getBaseType() + ":" + Base64.encodeBase64String((blob.getBytes()));
+    }
+
+    @Override
+    protected Blob doRestore(final String data) {
+        final int colonIdx = data.indexOf(':');
+        final String name  = data.substring(0, colonIdx);
+        final int colon2Idx  = data.indexOf(":", colonIdx+1);
+        final String mimeTypeBase = data.substring(colonIdx+1, colon2Idx);
+        final byte[] bytes = Base64.decodeBase64(data.substring(colon2Idx+1));
+        try {
+            return new Blob(name, new MimeType(mimeTypeBase), bytes);
+        } catch (MimeTypeParseException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    // /////// toString ///////
+
+    @Override
+    public String toString() {
+        return "BlobValueSemanticsProvider";
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/blobs/BlobValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/blobs/BlobValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/blobs/BlobValueTypeFacetFactory.java
new file mode 100644
index 0000000..878fcc7
--- /dev/null
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/blobs/BlobValueTypeFacetFactory.java
@@ -0,0 +1,41 @@
+/*
+ *  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.progmodel.facets.value.blobs;
+
+import org.apache.isis.applib.value.Blob;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanticsProviderFacetFactory;
+
+public class BlobValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<Blob> {
+
+    public BlobValueTypeFacetFactory() {
+    }
+
+    @Override
+    public void process(final ProcessClassContext processClassContext) {
+        final Class<?> type = processClassContext.getCls();
+        final FacetHolder holder = processClassContext.getFacetHolder();
+        if (type != Blob.class) {
+            return;
+        }
+        addFacets(new BlobValueSemanticsProvider(holder, getConfiguration(), getContext()));
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/booleans/BooleanPrimitiveValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/booleans/BooleanPrimitiveValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/booleans/BooleanPrimitiveValueTypeFacetFactory.java
index b1d286b..d09856f 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/booleans/BooleanPrimitiveValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/booleans/BooleanPrimitiveValueTypeFacetFactory.java
@@ -25,7 +25,7 @@ import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanti
 public class BooleanPrimitiveValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<Boolean> {
 
     public BooleanPrimitiveValueTypeFacetFactory() {
-        super(BooleanValueFacet.class);
+        super();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/booleans/BooleanWrapperValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/booleans/BooleanWrapperValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/booleans/BooleanWrapperValueTypeFacetFactory.java
index 048ac5b..50c1e62 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/booleans/BooleanWrapperValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/booleans/BooleanWrapperValueTypeFacetFactory.java
@@ -25,7 +25,7 @@ import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanti
 public class BooleanWrapperValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<Boolean> {
 
     public BooleanWrapperValueTypeFacetFactory() {
-        super(BooleanValueFacet.class);
+        super();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/bytes/BytePrimitiveValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/bytes/BytePrimitiveValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/bytes/BytePrimitiveValueTypeFacetFactory.java
index ebaf3ad..411991e 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/bytes/BytePrimitiveValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/bytes/BytePrimitiveValueTypeFacetFactory.java
@@ -25,7 +25,7 @@ import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanti
 public class BytePrimitiveValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<Byte> {
 
     public BytePrimitiveValueTypeFacetFactory() {
-        super(ByteValueFacet.class);
+        super();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/bytes/ByteWrapperValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/bytes/ByteWrapperValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/bytes/ByteWrapperValueTypeFacetFactory.java
index f3bc429..d626bbc 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/bytes/ByteWrapperValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/bytes/ByteWrapperValueTypeFacetFactory.java
@@ -25,7 +25,7 @@ import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanti
 public class ByteWrapperValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<Byte> {
 
     public ByteWrapperValueTypeFacetFactory() {
-        super(ByteValueFacet.class);
+        super();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/chars/CharPrimitiveValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/chars/CharPrimitiveValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/chars/CharPrimitiveValueTypeFacetFactory.java
index 18a443f..0110a6e 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/chars/CharPrimitiveValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/chars/CharPrimitiveValueTypeFacetFactory.java
@@ -25,7 +25,7 @@ import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanti
 public class CharPrimitiveValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<Character> {
 
     public CharPrimitiveValueTypeFacetFactory() {
-        super(CharValueFacet.class);
+        super();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/chars/CharWrapperValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/chars/CharWrapperValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/chars/CharWrapperValueTypeFacetFactory.java
index a81cbd2..ea37729 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/chars/CharWrapperValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/chars/CharWrapperValueTypeFacetFactory.java
@@ -25,7 +25,7 @@ import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanti
 public class CharWrapperValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<Character> {
 
     public CharWrapperValueTypeFacetFactory() {
-        super(CharValueFacet.class);
+        super();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/clobs/ClobValueFacet.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/clobs/ClobValueFacet.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/clobs/ClobValueFacet.java
new file mode 100644
index 0000000..a568924
--- /dev/null
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/clobs/ClobValueFacet.java
@@ -0,0 +1,26 @@
+/*
+ *  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.progmodel.facets.value.clobs;
+
+import org.apache.isis.core.metamodel.facetapi.Facet;
+
+public interface ClobValueFacet extends Facet {
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/clobs/ClobValueSemanticsProvider.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/clobs/ClobValueSemanticsProvider.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/clobs/ClobValueSemanticsProvider.java
new file mode 100644
index 0000000..eae26b3
--- /dev/null
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/clobs/ClobValueSemanticsProvider.java
@@ -0,0 +1,119 @@
+/*
+ *  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.progmodel.facets.value.clobs;
+
+import javax.activation.MimeType;
+import javax.activation.MimeTypeParseException;
+
+import org.apache.isis.applib.adapters.DefaultsProvider;
+import org.apache.isis.applib.adapters.EncoderDecoder;
+import org.apache.isis.applib.adapters.Parser;
+import org.apache.isis.applib.profiles.Localization;
+import org.apache.isis.applib.value.Clob;
+import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.progmodel.facets.object.value.ValueSemanticsProviderAndFacetAbstract;
+import org.apache.isis.core.progmodel.facets.object.value.ValueSemanticsProviderContext;
+
+public class ClobValueSemanticsProvider extends ValueSemanticsProviderAndFacetAbstract<Clob> implements ClobValueFacet {
+
+    private static final int TYPICAL_LENGTH = 0;
+
+    private static Class<? extends Facet> type() {
+        return ClobValueFacet.class;
+    }
+
+    private static final Clob DEFAULT_VALUE = null;
+
+    /**
+     * Required because implementation of {@link Parser} and
+     * {@link EncoderDecoder}.
+     */
+    public ClobValueSemanticsProvider() {
+        this(null, null, null);
+    }
+
+    public ClobValueSemanticsProvider(final FacetHolder holder, final IsisConfiguration configuration, final ValueSemanticsProviderContext context) {
+        super(type(), holder, Clob.class, TYPICAL_LENGTH, Immutability.IMMUTABLE, EqualByContent.NOT_HONOURED, DEFAULT_VALUE, configuration, context);
+    }
+
+    @Override
+    public String titleString(final Object object, final Localization localization) {
+        return object != null? ((Clob)object).getName(): "[null]";
+    }
+
+    @Override
+    public String titleStringWithMask(final Object value, final String usingMask) {
+        return titleString(value, null);
+    }
+
+
+    // //////////////////////////////////////////////////////////////////
+    // Parser
+    // //////////////////////////////////////////////////////////////////
+
+    @Override
+    public Parser<Clob> getParser() {
+        return null;
+    }
+
+    // //////////////////////////////////////////////////////////////////
+    // DefaultsProvider
+    // //////////////////////////////////////////////////////////////////
+    
+    @Override
+    public DefaultsProvider<Clob> getDefaultsProvider() {
+        return null;
+    }
+    
+    // //////////////////////////////////////////////////////////////////
+    // EncoderDecoder
+    // //////////////////////////////////////////////////////////////////
+
+    @Override
+    protected String doEncode(final Object object) {
+        Clob clob = (Clob)object;
+        return clob.getName() + ":" + clob.getMimeType().getBaseType() + ":" + clob.getChars();
+    }
+
+    @Override
+    protected Clob doRestore(final String data) {
+        final int colonIdx = data.indexOf(':');
+        final String name  = data.substring(0, colonIdx);
+        final int colon2Idx  = data.indexOf(":", colonIdx+1);
+        final String mimeTypeBase = data.substring(colonIdx+1, colon2Idx);
+        final CharSequence chars = data.substring(colon2Idx+1);
+        try {
+            return new Clob(name, new MimeType(mimeTypeBase), chars);
+        } catch (MimeTypeParseException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    
+    // /////// toString ///////
+
+    @Override
+    public String toString() {
+        return "ClobValueSemanticsProvider";
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/clobs/ClobValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/clobs/ClobValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/clobs/ClobValueTypeFacetFactory.java
new file mode 100644
index 0000000..8af88e0
--- /dev/null
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/clobs/ClobValueTypeFacetFactory.java
@@ -0,0 +1,42 @@
+/*
+ *  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.progmodel.facets.value.clobs;
+
+import org.apache.isis.applib.value.Clob;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanticsProviderFacetFactory;
+
+public class ClobValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<Clob> {
+
+    public ClobValueTypeFacetFactory() {
+        super();
+    }
+
+    @Override
+    public void process(final ProcessClassContext processClassContext) {
+        final Class<?> type = processClassContext.getCls();
+        final FacetHolder holder = processClassContext.getFacetHolder();
+        if (type != Clob.class) {
+            return;
+        }
+        addFacets(new ClobValueSemanticsProvider(holder, getConfiguration(), getContext()));
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/color/ColorValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/color/ColorValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/color/ColorValueTypeFacetFactory.java
index d4c1971..c6b9c0c 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/color/ColorValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/color/ColorValueTypeFacetFactory.java
@@ -26,7 +26,7 @@ import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanti
 public class ColorValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<Color> {
 
     public ColorValueTypeFacetFactory() {
-        super(ColorValueFacet.class);
+        super();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/date/DateValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/date/DateValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/date/DateValueTypeFacetFactory.java
index e5c3e47..5eafb24 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/date/DateValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/date/DateValueTypeFacetFactory.java
@@ -25,7 +25,7 @@ import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanti
 public class DateValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<org.apache.isis.applib.value.Date> {
 
     public DateValueTypeFacetFactory() {
-        super(DateValueFacet.class); // as per inherited
+        super(); // as per inherited
                                      // DateTimeValueSemanticsProvider#facetType
         // (inherited)
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/datejodalocal/JodaLocalDateValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/datejodalocal/JodaLocalDateValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/datejodalocal/JodaLocalDateValueTypeFacetFactory.java
index ccae98f..d9b0cd8 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/datejodalocal/JodaLocalDateValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/datejodalocal/JodaLocalDateValueTypeFacetFactory.java
@@ -28,7 +28,7 @@ public class JodaLocalDateValueTypeFacetFactory extends ValueUsingValueSemantics
 
     public JodaLocalDateValueTypeFacetFactory() {
      // as per inherited DateTimeValueSemanticsProvider#facetType
-        super(JodaLocalDateValueFacet.class); 
+        super(); 
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/datesql/JavaSqlDateValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/datesql/JavaSqlDateValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/datesql/JavaSqlDateValueTypeFacetFactory.java
index babfcd1..b1331b4 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/datesql/JavaSqlDateValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/datesql/JavaSqlDateValueTypeFacetFactory.java
@@ -23,13 +23,12 @@ import java.sql.Date;
 
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanticsProviderFacetFactory;
-import org.apache.isis.core.progmodel.facets.value.date.DateValueFacet;
 
 public class JavaSqlDateValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<Date> {
 
     public JavaSqlDateValueTypeFacetFactory() {
         // as per inherited TimeValueSemanticsProvider#facetType 
-        super(DateValueFacet.class); 
+        super(); 
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/datetime/DateTimeValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/datetime/DateTimeValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/datetime/DateTimeValueTypeFacetFactory.java
index be91b33..937f4b2 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/datetime/DateTimeValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/datetime/DateTimeValueTypeFacetFactory.java
@@ -21,12 +21,11 @@ package org.apache.isis.core.progmodel.facets.value.datetime;
 
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanticsProviderFacetFactory;
-import org.apache.isis.core.progmodel.facets.value.date.DateValueFacet;
 
 public class DateTimeValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<org.apache.isis.applib.value.DateTime> {
 
     public DateTimeValueTypeFacetFactory() {
-        super(DateValueFacet.class); // as per inherited
+        super(); // as per inherited
                                      // DateTimeValueSemanticsProvider#facetType
         // (inherited)
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/datetimejoda/JodaDateTimeValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/datetimejoda/JodaDateTimeValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/datetimejoda/JodaDateTimeValueTypeFacetFactory.java
index 956b8d6..1543640 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/datetimejoda/JodaDateTimeValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/datetimejoda/JodaDateTimeValueTypeFacetFactory.java
@@ -28,7 +28,7 @@ public class JodaDateTimeValueTypeFacetFactory extends ValueUsingValueSemanticsP
 
     public JodaDateTimeValueTypeFacetFactory() {
      // as per inherited DateTimeValueSemanticsProvider#facetType
-        super(JodaDateTimeValueFacet.class); 
+        super(); 
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/datetimejodalocal/JodaLocalDateTimeValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/datetimejodalocal/JodaLocalDateTimeValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/datetimejodalocal/JodaLocalDateTimeValueTypeFacetFactory.java
index e8ca372..768bd38 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/datetimejodalocal/JodaLocalDateTimeValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/datetimejodalocal/JodaLocalDateTimeValueTypeFacetFactory.java
@@ -28,7 +28,7 @@ public class JodaLocalDateTimeValueTypeFacetFactory extends ValueUsingValueSeman
 
     public JodaLocalDateTimeValueTypeFacetFactory() {
      // as per inherited DateTimeValueSemanticsProvider#facetType
-        super(JodaLocalDateTimeValueFacet.class); 
+        super(); 
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/dateutil/JavaUtilDateValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/dateutil/JavaUtilDateValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/dateutil/JavaUtilDateValueTypeFacetFactory.java
index 859dd5a..0babe69 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/dateutil/JavaUtilDateValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/dateutil/JavaUtilDateValueTypeFacetFactory.java
@@ -23,12 +23,11 @@ import java.util.Date;
 
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanticsProviderFacetFactory;
-import org.apache.isis.core.progmodel.facets.value.date.DateValueFacet;
 
 public class JavaUtilDateValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<Date> {
 
     public JavaUtilDateValueTypeFacetFactory() {
-        super(DateValueFacet.class); // as per inherited
+        super(); // as per inherited
                                      // TimeValueSemanticsProvider#facetType
                                      // (inherited)
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/floats/FloatPrimitiveValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/floats/FloatPrimitiveValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/floats/FloatPrimitiveValueTypeFacetFactory.java
index 909fe27..8c4d70d 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/floats/FloatPrimitiveValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/floats/FloatPrimitiveValueTypeFacetFactory.java
@@ -25,7 +25,7 @@ import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanti
 public class FloatPrimitiveValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<Float> {
 
     public FloatPrimitiveValueTypeFacetFactory() {
-        super(FloatingPointValueFacet.class);
+        super();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/floats/FloatWrapperValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/floats/FloatWrapperValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/floats/FloatWrapperValueTypeFacetFactory.java
index 396ce01..0e59641 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/floats/FloatWrapperValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/floats/FloatWrapperValueTypeFacetFactory.java
@@ -25,7 +25,7 @@ import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanti
 public class FloatWrapperValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<Float> {
 
     public FloatWrapperValueTypeFacetFactory() {
-        super(FloatingPointValueFacet.class);
+        super();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/image/ImageValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/image/ImageValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/image/ImageValueTypeFacetFactory.java
index 6d415d1..98dfa03 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/image/ImageValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/image/ImageValueTypeFacetFactory.java
@@ -25,7 +25,7 @@ import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanti
 public class ImageValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<org.apache.isis.applib.value.Image> {
 
     public ImageValueTypeFacetFactory() {
-        super(ImageValueFacet.class);
+        super();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/imageawt/JavaAwtImageValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/imageawt/JavaAwtImageValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/imageawt/JavaAwtImageValueTypeFacetFactory.java
index 22ceac1..678dc80 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/imageawt/JavaAwtImageValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/imageawt/JavaAwtImageValueTypeFacetFactory.java
@@ -21,12 +21,11 @@ package org.apache.isis.core.progmodel.facets.value.imageawt;
 
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanticsProviderFacetFactory;
-import org.apache.isis.core.progmodel.facets.value.image.ImageValueFacet;
 
 public class JavaAwtImageValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<java.awt.Image> {
 
     public JavaAwtImageValueTypeFacetFactory() {
-        super(ImageValueFacet.class);
+        super();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/integer/IntPrimitiveValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/integer/IntPrimitiveValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/integer/IntPrimitiveValueTypeFacetFactory.java
index 4588a07..57ee3e0 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/integer/IntPrimitiveValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/integer/IntPrimitiveValueTypeFacetFactory.java
@@ -25,7 +25,7 @@ import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanti
 public class IntPrimitiveValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<Integer> {
 
     public IntPrimitiveValueTypeFacetFactory() {
-        super(IntegerValueFacet.class);
+        super();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/integer/IntWrapperValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/integer/IntWrapperValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/integer/IntWrapperValueTypeFacetFactory.java
index afa717a..946f314 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/integer/IntWrapperValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/integer/IntWrapperValueTypeFacetFactory.java
@@ -25,7 +25,7 @@ import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanti
 public class IntWrapperValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<Integer> {
 
     public IntWrapperValueTypeFacetFactory() {
-        super(IntegerValueFacet.class);
+        super();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/longs/DoublePrimitiveValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/longs/DoublePrimitiveValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/longs/DoublePrimitiveValueTypeFacetFactory.java
index 52bf982..d1e7a2e 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/longs/DoublePrimitiveValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/longs/DoublePrimitiveValueTypeFacetFactory.java
@@ -25,7 +25,7 @@ import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanti
 public class DoublePrimitiveValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<Double> {
 
     public DoublePrimitiveValueTypeFacetFactory() {
-        super(DoubleFloatingPointValueFacet.class);
+        super();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/longs/DoubleWrapperValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/longs/DoubleWrapperValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/longs/DoubleWrapperValueTypeFacetFactory.java
index e7af2b5..9720e6a 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/longs/DoubleWrapperValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/longs/DoubleWrapperValueTypeFacetFactory.java
@@ -25,7 +25,7 @@ import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanti
 public class DoubleWrapperValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<Double> {
 
     public DoubleWrapperValueTypeFacetFactory() {
-        super(DoubleFloatingPointValueFacet.class);
+        super();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/longs/LongPrimitiveValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/longs/LongPrimitiveValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/longs/LongPrimitiveValueTypeFacetFactory.java
index a5cd481..0b77943 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/longs/LongPrimitiveValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/longs/LongPrimitiveValueTypeFacetFactory.java
@@ -25,7 +25,7 @@ import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanti
 public class LongPrimitiveValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<Long> {
 
     public LongPrimitiveValueTypeFacetFactory() {
-        super(LongValueFacet.class);
+        super();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/longs/LongWrapperValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/longs/LongWrapperValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/longs/LongWrapperValueTypeFacetFactory.java
index e6838ce..2ec40ae 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/longs/LongWrapperValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/longs/LongWrapperValueTypeFacetFactory.java
@@ -25,7 +25,7 @@ import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanti
 public class LongWrapperValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<Long> {
 
     public LongWrapperValueTypeFacetFactory() {
-        super(LongValueFacet.class);
+        super();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/money/MoneyValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/money/MoneyValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/money/MoneyValueTypeFacetFactory.java
index 028cac2..c1687ea 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/money/MoneyValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/money/MoneyValueTypeFacetFactory.java
@@ -25,7 +25,7 @@ import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanti
 public class MoneyValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<org.apache.isis.applib.value.Money> {
 
     public MoneyValueTypeFacetFactory() {
-        super(MoneyValueFacet.class);
+        super();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/password/PasswordValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/password/PasswordValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/password/PasswordValueTypeFacetFactory.java
index 4c43396..234ee99 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/password/PasswordValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/password/PasswordValueTypeFacetFactory.java
@@ -25,7 +25,7 @@ import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanti
 public class PasswordValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<org.apache.isis.applib.value.Password> {
 
     public PasswordValueTypeFacetFactory() {
-        super(PasswordValueFacet.class);
+        super();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/percentage/PercentageValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/percentage/PercentageValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/percentage/PercentageValueTypeFacetFactory.java
index 5f7937b..1ad1626 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/percentage/PercentageValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/percentage/PercentageValueTypeFacetFactory.java
@@ -21,12 +21,11 @@ package org.apache.isis.core.progmodel.facets.value.percentage;
 
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanticsProviderFacetFactory;
-import org.apache.isis.core.progmodel.facets.value.floats.FloatingPointValueFacet;
 
 public class PercentageValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<org.apache.isis.applib.value.Percentage> {
 
     public PercentageValueTypeFacetFactory() {
-        super(FloatingPointValueFacet.class);
+        super();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/shortint/ShortPrimitiveValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/shortint/ShortPrimitiveValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/shortint/ShortPrimitiveValueTypeFacetFactory.java
index 5f0f971..f678be3 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/shortint/ShortPrimitiveValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/shortint/ShortPrimitiveValueTypeFacetFactory.java
@@ -25,7 +25,7 @@ import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanti
 public class ShortPrimitiveValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<Short> {
 
     public ShortPrimitiveValueTypeFacetFactory() {
-        super(ShortValueFacet.class);
+        super();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/shortint/ShortWrapperValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/shortint/ShortWrapperValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/shortint/ShortWrapperValueTypeFacetFactory.java
index d958467..ac6fa1f 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/shortint/ShortWrapperValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/shortint/ShortWrapperValueTypeFacetFactory.java
@@ -25,7 +25,7 @@ import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanti
 public class ShortWrapperValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<Short> {
 
     public ShortWrapperValueTypeFacetFactory() {
-        super(ShortValueFacet.class);
+        super();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/string/StringValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/string/StringValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/string/StringValueTypeFacetFactory.java
index 5623eaa..a45880f 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/string/StringValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/string/StringValueTypeFacetFactory.java
@@ -25,7 +25,7 @@ import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanti
 public class StringValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<String> {
 
     public StringValueTypeFacetFactory() {
-        super(StringValueFacet.class);
+        super();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/time/TimeValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/time/TimeValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/time/TimeValueTypeFacetFactory.java
index c6d0b86..9317432 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/time/TimeValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/time/TimeValueTypeFacetFactory.java
@@ -21,12 +21,11 @@ package org.apache.isis.core.progmodel.facets.value.time;
 
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanticsProviderFacetFactory;
-import org.apache.isis.core.progmodel.facets.value.date.DateValueFacet;
 
 public class TimeValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<org.apache.isis.applib.value.Time> {
 
     public TimeValueTypeFacetFactory() {
-        super(DateValueFacet.class); // as per inherited
+        super(); // as per inherited
                                      // DateTimeValueSemanticsProvider#facetType
         // (inherited)
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/timesql/JavaSqlTimeValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/timesql/JavaSqlTimeValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/timesql/JavaSqlTimeValueTypeFacetFactory.java
index 24f952b..8d3bb11 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/timesql/JavaSqlTimeValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/timesql/JavaSqlTimeValueTypeFacetFactory.java
@@ -21,12 +21,11 @@ package org.apache.isis.core.progmodel.facets.value.timesql;
 
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanticsProviderFacetFactory;
-import org.apache.isis.core.progmodel.facets.value.date.DateValueFacet;
 
 public class JavaSqlTimeValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<java.sql.Time> {
 
     public JavaSqlTimeValueTypeFacetFactory() {
-        super(DateValueFacet.class); // as per inherited
+        super(); // as per inherited
                                      // TimeValueSemanticsProvider#facetType
                                      // (inherited)
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/timestamp/TimeStampValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/timestamp/TimeStampValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/timestamp/TimeStampValueTypeFacetFactory.java
index f7f6285..eb58d2a 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/timestamp/TimeStampValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/timestamp/TimeStampValueTypeFacetFactory.java
@@ -22,12 +22,11 @@ package org.apache.isis.core.progmodel.facets.value.timestamp;
 import org.apache.isis.applib.value.TimeStamp;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanticsProviderFacetFactory;
-import org.apache.isis.core.progmodel.facets.value.date.DateValueFacet;
 
 public class TimeStampValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<TimeStamp> {
 
     public TimeStampValueTypeFacetFactory() {
-        super(DateValueFacet.class); // as per inherited
+        super(); // as per inherited
                                      // DateTimeValueSemanticsProvider#facetType
         // (inherited)
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/timestampsql/JavaSqlTimeStampValueTypeFacetFactory.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/timestampsql/JavaSqlTimeStampValueTypeFacetFactory.java b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/timestampsql/JavaSqlTimeStampValueTypeFacetFactory.java
index 1034b7b..2ba824c 100644
--- a/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/timestampsql/JavaSqlTimeStampValueTypeFacetFactory.java
+++ b/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/timestampsql/JavaSqlTimeStampValueTypeFacetFactory.java
@@ -21,12 +21,11 @@ package org.apache.isis.core.progmodel.facets.value.timestampsql;
 
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.progmodel.facets.object.value.ValueUsingValueSemanticsProviderFacetFactory;
-import org.apache.isis.core.progmodel.facets.value.date.DateValueFacet;
 
 public class JavaSqlTimeStampValueTypeFacetFactory extends ValueUsingValueSemanticsProviderFacetFactory<java.sql.Timestamp> {
 
     public JavaSqlTimeStampValueTypeFacetFactory() {
-        super(DateValueFacet.class); // as per inherited
+        super(); // as per inherited
                                      // DateTimeValueSemanticsProvider#facetType
         // (inherited)
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/BlobValueSemanticsProviderTest.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/BlobValueSemanticsProviderTest.java b/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/BlobValueSemanticsProviderTest.java
new file mode 100644
index 0000000..0f66141
--- /dev/null
+++ b/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/BlobValueSemanticsProviderTest.java
@@ -0,0 +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.core.progmodel.facets.value;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThat;
+
+import org.apache.isis.applib.profiles.Localization;
+import org.apache.isis.applib.value.Blob;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
+import org.apache.isis.core.progmodel.facets.value.blobs.BlobValueSemanticsProvider;
+import org.junit.Before;
+import org.junit.Test;
+
+public class BlobValueSemanticsProviderTest extends ValueSemanticsProviderAbstractTestCase {
+
+    private BlobValueSemanticsProvider value;
+    private Blob blob;
+    private FacetHolder holder;
+
+    @Before
+    public void setUpObjects() throws Exception {
+        blob = new Blob("myfile1.docx", "application", "vnd.ms-word", new byte[]{1,2,3,4});
+        allowMockAdapterToReturn(blob);
+        holder = new FacetHolderImpl();
+
+        setValue(value = new BlobValueSemanticsProvider(holder, mockConfiguration, mockContext));
+    }
+
+    @Test
+    public void testTitleOf() {
+        assertEquals("myfile1.docx", value.displayTitleOf(blob, (Localization) null));
+    }
+
+    @Test
+    public void testEncode_and_decode() {
+        String encoded = value.toEncodedString(blob);
+        assertEquals("myfile1.docx:application/vnd.ms-word:AQIDBA==", encoded);
+        Blob decoded = value.fromEncodedString(encoded);
+        assertThat(decoded.getName(), is("myfile1.docx"));
+        assertThat(decoded.getMimeType().getPrimaryType(), is("application"));
+        assertThat(decoded.getMimeType().getSubType(), is("vnd.ms-word"));
+        assertThat(decoded.getBytes().length, is(4));
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/ClobValueSemanticsProviderTest.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/ClobValueSemanticsProviderTest.java b/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/ClobValueSemanticsProviderTest.java
new file mode 100644
index 0000000..94c8ba5
--- /dev/null
+++ b/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/ClobValueSemanticsProviderTest.java
@@ -0,0 +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.core.progmodel.facets.value;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThat;
+
+import org.apache.isis.applib.profiles.Localization;
+import org.apache.isis.applib.value.Clob;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
+import org.apache.isis.core.progmodel.facets.value.clobs.ClobValueSemanticsProvider;
+import org.junit.Before;
+import org.junit.Test;
+
+public class ClobValueSemanticsProviderTest extends ValueSemanticsProviderAbstractTestCase {
+
+    private ClobValueSemanticsProvider value;
+    private Clob clob;
+    private FacetHolder holder;
+
+    @Before
+    public void setUpObjects() throws Exception {
+        clob = new Clob("myfile1.xml", "application", "xml", "abcdef");
+        allowMockAdapterToReturn(clob);
+        holder = new FacetHolderImpl();
+
+        setValue(value = new ClobValueSemanticsProvider(holder, mockConfiguration, mockContext));
+    }
+
+    @Test
+    public void testTitleOf() {
+        assertEquals("myfile1.xml", value.displayTitleOf(clob, (Localization) null));
+    }
+
+    @Test
+    public void testEncode_and_decode() {
+        String encoded = value.toEncodedString(clob);
+        assertEquals("myfile1.xml:application/xml:abcdef", encoded);
+        Clob decoded = value.fromEncodedString(encoded);
+        assertThat(decoded.getName(), is("myfile1.xml"));
+        assertThat(decoded.getMimeType().getPrimaryType(), is("application"));
+        assertThat(decoded.getMimeType().getSubType(), is("xml"));
+        assertThat(decoded.getChars(), is((CharSequence)"abcdef"));
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/22cdbe0d/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/DateValueSemanticsProviderTest.java
----------------------------------------------------------------------
diff --git a/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/DateValueSemanticsProviderTest.java b/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/DateValueSemanticsProviderTest.java
index a6e23bc..5c89a99 100644
--- a/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/DateValueSemanticsProviderTest.java
+++ b/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/DateValueSemanticsProviderTest.java
@@ -49,7 +49,6 @@ public class DateValueSemanticsProviderTest extends ValueSemanticsProviderAbstra
         });
 
         TestClock.initialize();
-        setupSpecification(Date.class);
         date = new Date(2001, 2, 4);
         holder = new FacetHolderImpl();
         setValue(adapter = new DateValueSemanticsProvider(holder, mockConfiguration, mockContext));