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 2014/10/28 17:16:24 UTC

[21/56] [abbrv] ISIS-937: moved TCK out of core.

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/MyEnum.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/MyEnum.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/MyEnum.java
new file mode 100644
index 0000000..edcd676
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/MyEnum.java
@@ -0,0 +1,29 @@
+/*
+ *  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.tck.dom.scalars;
+
+public enum MyEnum {
+    RED,
+    ORANGE,
+    YELLOW,
+    GREEN,
+    BLUE,
+    INDIGO,
+    VIOLET
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/PrimitiveValuedEntity.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/PrimitiveValuedEntity.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/PrimitiveValuedEntity.java
new file mode 100644
index 0000000..fc8cefa
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/PrimitiveValuedEntity.java
@@ -0,0 +1,214 @@
+/*
+ *  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.tck.dom.scalars;
+
+import org.apache.isis.applib.AbstractDomainObject;
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.ObjectType;
+import org.apache.isis.applib.annotation.Title;
+
+@javax.jdo.annotations.PersistenceCapable
+@javax.jdo.annotations.Discriminator("PRMV")
+@javax.jdo.annotations.Query(
+        name="prmv_findByIntProperty", language="JDOQL",  
+        value="SELECT FROM org.apache.isis.tck.dom.scalars.PrimitiveValuedEntity WHERE intProperty == :i")
+@ObjectType("PRMV")
+public class PrimitiveValuedEntity extends AbstractDomainObject {
+
+    
+    // {{ Id (Integer)
+    private Integer id;
+
+    @Title(prepend="Primitive Valued Entity #")
+    @javax.jdo.annotations.PrimaryKey // must be on the getter.
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(final Integer id) {
+        this.id = id;
+    }
+    // }}
+
+
+    // {{ BooleanProperty
+    private boolean booleanProperty;
+
+    @MemberOrder(sequence = "3")
+    public boolean getBooleanProperty() {
+        return booleanProperty;
+    }
+
+    public void setBooleanProperty(final boolean booleanProperty) {
+        this.booleanProperty = booleanProperty;
+    }
+
+    public PrimitiveValuedEntity updateBooleanProperty(
+            final boolean booleanProperty) {
+        setBooleanProperty(booleanProperty);
+        return this;
+    }
+    // }}
+
+    // {{ ByteProperty
+    private byte byteProperty;
+
+    @MemberOrder(sequence = "1")
+    public byte getByteProperty() {
+        return byteProperty;
+    }
+
+    public void setByteProperty(final byte byteProperty) {
+        this.byteProperty = byteProperty;
+    }
+
+    public PrimitiveValuedEntity updateByteProperty(
+            final byte byteProperty) {
+        setByteProperty(byteProperty);
+        return this;
+    }
+
+    // }}
+
+    // {{ ShortProperty
+    private short shortProperty;
+
+    @MemberOrder(sequence = "1")
+    public short getShortProperty() {
+        return shortProperty;
+    }
+
+    public void setShortProperty(final short shortProperty) {
+        this.shortProperty = shortProperty;
+    }
+
+    public PrimitiveValuedEntity updateShortProperty(
+            final short shortProperty) {
+        setShortProperty(shortProperty);
+        return this;
+    }
+
+    // }}
+
+    // {{ IntProperty
+    private int intProperty;
+
+    @MemberOrder(sequence = "1")
+    public int getIntProperty() {
+        return intProperty;
+    }
+
+    public void setIntProperty(final int intProperty) {
+        this.intProperty = intProperty;
+    }
+
+    public PrimitiveValuedEntity updateIntProperty(
+            final int intProperty) {
+        setIntProperty(intProperty);
+        return this;
+    }
+
+    // }}
+
+    // {{ LongProperty
+    private long longProperty;
+
+    @MemberOrder(sequence = "1")
+    public long getLongProperty() {
+        return longProperty;
+    }
+
+    public void setLongProperty(final long longProperty) {
+        this.longProperty = longProperty;
+    }
+
+    public PrimitiveValuedEntity updateLongProperty(
+            final long longProperty) {
+        setLongProperty(longProperty);
+        return this;
+    }
+
+    // }}
+
+    // {{ FloatProperty
+    private float floatProperty;
+
+    @MemberOrder(sequence = "1")
+    public float getFloatProperty() {
+        return floatProperty;
+    }
+
+    public void setFloatProperty(final float floatProperty) {
+        this.floatProperty = floatProperty;
+    }
+
+    public PrimitiveValuedEntity updateFloatProperty(
+            final float floatProperty) {
+        setFloatProperty(floatProperty);
+        return this;
+    }
+
+    // }}
+
+    // {{ DoubleProperty
+    private double doubleProperty;
+
+    @MemberOrder(sequence = "1")
+    public double getDoubleProperty() {
+        return doubleProperty;
+    }
+
+    public void setDoubleProperty(final double doubleProperty) {
+        this.doubleProperty = doubleProperty;
+    }
+
+    public PrimitiveValuedEntity updateDoubleProperty(
+            final double doubleProperty) {
+        setDoubleProperty(doubleProperty);
+        return this;
+    }
+
+    // }}
+
+    
+    // {{ CharProperty
+    @javax.jdo.annotations.Column(jdbcType="char") // for hsqldb
+    //@javax.jdo.annotations.Column(jdbcType="char", sqlType="char") // for mssqlserver
+    private char charProperty;
+
+    @MemberOrder(sequence = "1")
+    public char getCharProperty() {
+        return charProperty;
+    }
+
+    public void setCharProperty(final char charProperty) {
+        this.charProperty = charProperty;
+    }
+
+    public PrimitiveValuedEntity updateCharProperty(
+            final char charProperty) {
+        setCharProperty(charProperty);
+        return this;
+    }
+
+    // }}
+
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/PrimitiveValuedEntityRepository.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/PrimitiveValuedEntityRepository.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/PrimitiveValuedEntityRepository.java
new file mode 100644
index 0000000..aa84d55
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/PrimitiveValuedEntityRepository.java
@@ -0,0 +1,43 @@
+/*
+ *  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.tck.dom.scalars;
+
+import org.apache.isis.applib.annotation.*;
+import org.apache.isis.applib.query.Query;
+import org.apache.isis.applib.query.QueryDefault;
+import org.apache.isis.core.tck.dom.AbstractEntityRepository;
+
+@Named("PrimitiveValuedEntities")
+@ObjectType("PrimitiveValuedEntities")
+@DomainService
+public class PrimitiveValuedEntityRepository extends AbstractEntityRepository<PrimitiveValuedEntity> {
+
+    public PrimitiveValuedEntityRepository() {
+        super(PrimitiveValuedEntity.class, "PrimitiveValuedEntities");
+    }
+
+    @QueryOnly
+    @MemberOrder(sequence = "1")
+    public PrimitiveValuedEntity findById(int id) {
+        final Query<PrimitiveValuedEntity> query = 
+                new QueryDefault<PrimitiveValuedEntity>(PrimitiveValuedEntity.class, PrimitiveValuedEntity.class.getName() + "#pk", "id", id);
+        return this.firstMatch(query);
+    }
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/WrapperValuedEntity.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/WrapperValuedEntity.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/WrapperValuedEntity.java
new file mode 100644
index 0000000..a926b25
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/WrapperValuedEntity.java
@@ -0,0 +1,229 @@
+/*
+ *  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.tck.dom.scalars;
+
+import org.apache.isis.applib.AbstractDomainObject;
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.ObjectType;
+import org.apache.isis.applib.annotation.Optional;
+import org.apache.isis.applib.annotation.Title;
+
+@javax.jdo.annotations.PersistenceCapable
+@javax.jdo.annotations.Discriminator("WRPV")
+@javax.jdo.annotations.Query(
+        name="wrpv_findByStringProperty", language="JDOQL",  
+        value="SELECT FROM org.apache.isis.tck.dom.scalars.WrapperValuedEntity WHERE stringProperty == :i")
+@ObjectType("WRPV")
+public class WrapperValuedEntity extends AbstractDomainObject {
+
+    // {{ StringProperty (also pk, title)
+    private String stringProperty;
+
+    @javax.jdo.annotations.PrimaryKey
+    @Title
+    @Optional
+    @MemberOrder(sequence = "1")
+    public String getStringProperty() {
+        return stringProperty;
+    }
+
+    public void setStringProperty(final String stringProperty) {
+        this.stringProperty = stringProperty;
+    }
+
+    public WrapperValuedEntity updateStringProperty(
+            @Optional final String stringProperty) {
+        setStringProperty(stringProperty);
+        return this;
+    }
+
+    // }}
+
+    // {{ BooleanProperty
+    private Boolean booleanProperty;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public Boolean getBooleanProperty() {
+        return booleanProperty;
+    }
+
+    public void setBooleanProperty(final Boolean booleanProperty) {
+        this.booleanProperty = booleanProperty;
+    }
+
+    public WrapperValuedEntity updateBooleanProperty(@Optional final Boolean booleanProperty) {
+        setBooleanProperty(booleanProperty);
+        return this;
+    }
+
+    // }}
+
+    // {{ ByteProperty
+    private Byte byteProperty;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public Byte getByteProperty() {
+        return byteProperty;
+    }
+
+    public void setByteProperty(final Byte byteProperty) {
+        this.byteProperty = byteProperty;
+    }
+
+    public WrapperValuedEntity updateByteProperty(
+            @Optional final Byte byteProperty) {
+        setByteProperty(byteProperty);
+        return this;
+    }
+
+    // }}
+
+    // {{ ShortProperty
+    private Short shortProperty;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public Short getShortProperty() {
+        return shortProperty;
+    }
+
+    public void setShortProperty(final Short shortProperty) {
+        this.shortProperty = shortProperty;
+    }
+
+    public WrapperValuedEntity updateShortProperty(
+            @Optional final Short shortProperty) {
+        setShortProperty(shortProperty);
+        return this;
+    }
+
+    // }}
+
+    // {{ IntegerProperty
+    private Integer integerProperty;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public Integer getIntegerProperty() {
+        return integerProperty;
+    }
+
+    public void setIntegerProperty(final Integer integerProperty) {
+        this.integerProperty = integerProperty;
+    }
+
+    public WrapperValuedEntity updateIntegerProperty(
+            @Optional final Integer integerProperty) {
+        setIntegerProperty(integerProperty);
+        return this;
+    }
+
+    // }}
+
+    // {{ LongProperty
+    private Long longProperty;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public Long getLongProperty() {
+        return longProperty;
+    }
+
+    public void setLongProperty(final Long longProperty) {
+        this.longProperty = longProperty;
+    }
+
+    public WrapperValuedEntity updateLongProperty(
+            @Optional final Long longProperty) {
+        setLongProperty(longProperty);
+        return this;
+    }
+
+    // }}
+
+    // {{ FloatProperty
+    private Float floatProperty;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public Float getFloatProperty() {
+        return floatProperty;
+    }
+
+    public void setFloatProperty(final Float floatProperty) {
+        this.floatProperty = floatProperty;
+    }
+
+    public WrapperValuedEntity updateFloatProperty(
+            @Optional final Float floatProperty) {
+        setFloatProperty(floatProperty);
+        return this;
+    }
+
+    // }}
+
+    // {{ DoubleProperty
+    private Double doubleProperty;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public Double getDoubleProperty() {
+        return doubleProperty;
+    }
+
+    public void setDoubleProperty(final Double doubleProperty) {
+        this.doubleProperty = doubleProperty;
+    }
+
+    public WrapperValuedEntity updateDoubleProperty(
+            @Optional final Double doubleProperty) {
+        setDoubleProperty(doubleProperty);
+        return this;
+    }
+
+    // }}
+
+    // {{ CharacterProperty (property)
+    @javax.jdo.annotations.Column(jdbcType="char") // works for hsqldb
+    //@javax.jdo.annotations.Column(jdbcType="char", sqlType="char") // works for mssqlserver
+    private Character characterProperty;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public Character getCharacterProperty() {
+        return characterProperty;
+    }
+
+    public void setCharacterProperty(final Character charProperty) {
+        this.characterProperty = charProperty;
+    }
+
+    public WrapperValuedEntity updateCharacterProperty(
+            @Optional final Character charProperty) {
+        setCharacterProperty(charProperty);
+        return this;
+    }
+
+    // }}
+
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/WrapperValuedEntityRepository.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/WrapperValuedEntityRepository.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/WrapperValuedEntityRepository.java
new file mode 100644
index 0000000..e9f9eb9
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/WrapperValuedEntityRepository.java
@@ -0,0 +1,46 @@
+/*
+ *  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.tck.dom.scalars;
+
+import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.Named;
+import org.apache.isis.applib.annotation.ObjectType;
+import org.apache.isis.core.tck.dom.AbstractEntityRepository;
+
+@Named("WrapperValues")
+@ObjectType("WrapperValues")
+@DomainService
+public class WrapperValuedEntityRepository extends AbstractEntityRepository<WrapperValuedEntity> {
+
+    public WrapperValuedEntityRepository() {
+        super(WrapperValuedEntity.class, "WrapperValuedEntities");
+    }
+
+    /**
+     * Required to discover the WrapperValuedEntity type.
+     */
+    @Override
+    @MemberOrder(sequence = "2")
+    public WrapperValuedEntity newEntity() {
+        return super.newEntity();
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/sqlos/SqlDomainObjectRepository.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/sqlos/SqlDomainObjectRepository.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/sqlos/SqlDomainObjectRepository.java
new file mode 100644
index 0000000..07a648d
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/sqlos/SqlDomainObjectRepository.java
@@ -0,0 +1,175 @@
+/*
+ *  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.tck.dom.sqlos;
+
+import java.util.List;
+
+import org.apache.isis.applib.AbstractFactoryAndRepository;
+import org.apache.isis.core.tck.dom.poly.Empty;
+import org.apache.isis.core.tck.dom.poly.ReferencingPolyTypesEntity;
+import org.apache.isis.core.tck.dom.poly.SelfReferencingEntity;
+import org.apache.isis.core.tck.dom.poly.StringBaseEntitySub;
+import org.apache.isis.core.tck.dom.poly.StringBaseEntitySubThree;
+import org.apache.isis.core.tck.dom.poly.StringBaseEntitySubTwo;
+import org.apache.isis.core.tck.dom.poly.Stringable;
+import org.apache.isis.core.tck.dom.poly.StringableEntityWithOwnProperties;
+import org.apache.isis.core.tck.dom.poly.StringableEntityWithOwnProperty;
+import org.apache.isis.core.tck.dom.scalars.PrimitiveValuedEntity;
+import org.apache.isis.core.tck.dom.sqlos.data.SimpleClass;
+import org.apache.isis.core.tck.dom.sqlos.data.SimpleClassTwo;
+import org.apache.isis.core.tck.dom.sqlos.data.SqlDataClass;
+
+/**
+ * @author Kevin
+ * 
+ */
+public class SqlDomainObjectRepository extends AbstractFactoryAndRepository {
+
+    // {{ Persistor actions
+    public void save(final Object sqlDataClass) {
+        persistIfNotAlready(sqlDataClass);
+    }
+
+    public void delete(final Object sqlDataClass) {
+        remove(sqlDataClass);
+    }
+
+    public void update(final Object object) {
+        getContainer().objectChanged(object);
+    }
+
+    public void resolve(final Object domainObject) {
+        getContainer().resolve(domainObject);
+    }
+
+    // }}
+
+    // SqlDataClass
+    public List<SqlDataClass> allDataClasses() {
+        return allInstances(SqlDataClass.class);
+    }
+
+    public SqlDataClass newDataClass() {
+        final SqlDataClass object = newTransientInstance(SqlDataClass.class);
+        return object;
+    }
+
+    
+    // SimpleClass
+    public SimpleClass newSimpleClass() {
+        final SimpleClass object = newTransientInstance(SimpleClass.class);
+        return object;
+    }
+
+    public List<SimpleClass> allSimpleClasses() {
+        return allInstances(SimpleClass.class);
+    }
+
+    public List<SimpleClass> allSimpleClassesThatMatch(final SimpleClass simpleClassMatch) {
+        return allMatches(SimpleClass.class, simpleClassMatch);
+    }
+
+    
+    // SimpleClassTwo
+    public List<SimpleClassTwo> allSimpleClassTwos() {
+        return allInstances(SimpleClassTwo.class);
+    }
+
+    public SimpleClassTwo newSimpleClassTwo() {
+        final SimpleClassTwo object = newTransientInstance(SimpleClassTwo.class);
+        return object;
+    }
+
+    // PrimitiveValuedEntity
+    public List<PrimitiveValuedEntity> allPrimitiveValueEntities() {
+        return allInstances(PrimitiveValuedEntity.class);
+    }
+
+    public PrimitiveValuedEntity newPrimitiveValuedEntity() {
+        return newTransientInstance(PrimitiveValuedEntity.class);
+    }
+
+    public List<PrimitiveValuedEntity> allPrimitiveValuedEntitiesThatMatch(final PrimitiveValuedEntity match) {
+        return allMatches(PrimitiveValuedEntity.class, match);
+    }
+
+    
+    // PolyTestClass
+    public ReferencingPolyTypesEntity newPolyTestClass() {
+        final ReferencingPolyTypesEntity object = newTransientInstance(ReferencingPolyTypesEntity.class);
+        return object;
+    }
+
+    public List<ReferencingPolyTypesEntity> allPolyTestClasses() {
+        return allInstances(ReferencingPolyTypesEntity.class);
+    }
+
+    public StringBaseEntitySub newPolySubClassOne() {
+        final StringBaseEntitySub object = newTransientInstance(StringBaseEntitySub.class);
+        return object;
+    }
+
+    public StringBaseEntitySubThree newPolySubClassThree() {
+        final StringBaseEntitySubThree object = newTransientInstance(StringBaseEntitySubThree.class);
+        return object;
+    }
+
+    public StringBaseEntitySubTwo newPolySubClassTwo() {
+        final StringBaseEntitySubTwo object = newTransientInstance(StringBaseEntitySubTwo.class);
+        return object;
+    }
+
+    public StringableEntityWithOwnProperty newPolyInterfaceImplA() {
+        final StringableEntityWithOwnProperty object = newTransientInstance(StringableEntityWithOwnProperty.class);
+        return object;
+    }
+
+    public StringableEntityWithOwnProperties newPolyInterfaceImplB() {
+        final StringableEntityWithOwnProperties object = newTransientInstance(StringableEntityWithOwnProperties.class);
+        return object;
+    }
+
+    public SelfReferencingEntity newPolySelfRefClass() {
+        final SelfReferencingEntity object = newTransientInstance(SelfReferencingEntity.class);
+        return object;
+    }
+
+    public List<Stringable> allPolyInterfaces() {
+        return allInstances(Stringable.class);
+    }
+
+    public List<Stringable> queryPolyInterfaces(final Stringable query) {
+        return allMatches(Stringable.class, query);
+    }
+
+    public List<Empty> allEmptyInterfacesThatMatch(final Empty match) {
+        return allMatches(Empty.class, match);
+    }
+
+    public List<SimpleClass> someSimpleClasses(final long startIndex, final long rowCount) {
+        return allInstances(SimpleClass.class, startIndex, rowCount);
+    }
+
+    // }}
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/sqlos/data/SimpleClass.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/sqlos/data/SimpleClass.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/sqlos/data/SimpleClass.java
new file mode 100644
index 0000000..0b9888d
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/sqlos/data/SimpleClass.java
@@ -0,0 +1,61 @@
+/*
+ *  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.tck.dom.sqlos.data;
+
+import org.apache.isis.applib.AbstractDomainObject;
+
+/**
+ * @author Kevin
+ * 
+ */
+public class SimpleClass extends AbstractDomainObject {
+    public String title() {
+        return string;
+    }
+
+    // {{ String type
+    private String string;
+
+    public String getString() {
+        return string;
+    }
+
+    public void setString(final String string) {
+        this.string = string;
+    }
+
+    // }}
+
+    // {{ SimpleClassTwoA
+    private SimpleClassTwo simplyClassTwoA;
+
+    public SimpleClassTwo getSimpleClassTwoA() {
+        return simplyClassTwoA;
+    }
+
+    public void setSimpleClassTwoA(final SimpleClassTwo simpleClassTwoA) {
+        this.simplyClassTwoA = simpleClassTwoA;
+    }
+    // }}
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/sqlos/data/SimpleClassTwo.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/sqlos/data/SimpleClassTwo.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/sqlos/data/SimpleClassTwo.java
new file mode 100644
index 0000000..8fddc22
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/sqlos/data/SimpleClassTwo.java
@@ -0,0 +1,75 @@
+/*
+ *  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.tck.dom.sqlos.data;
+
+import org.apache.isis.applib.AbstractDomainObject;
+
+/**
+ * @author Kevin
+ * 
+ */
+public class SimpleClassTwo extends AbstractDomainObject {
+    
+    public String title() {
+        return text;
+    }
+
+    // {{ String type
+    public String text;
+
+    public String getText() {
+        return text;
+    }
+
+    public void setText(final String text) {
+        this.text = text;
+    }
+
+    // }}
+
+    // {{ IntValue
+    private int intValue;
+
+    public int getIntValue() {
+        return intValue;
+    }
+
+    public void setIntValue(final int value) {
+        this.intValue = value;
+    }
+
+    // }}
+
+    // {{ BooleanValue
+    private boolean booleanValue;
+
+    public boolean getBooleanValue() {
+        return booleanValue;
+    }
+
+    public void setBooleanValue(final boolean value) {
+        this.booleanValue = value;
+    }
+    // }}
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/sqlos/data/SqlDataClass.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/sqlos/data/SqlDataClass.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/sqlos/data/SqlDataClass.java
new file mode 100644
index 0000000..c1c604b
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/sqlos/data/SqlDataClass.java
@@ -0,0 +1,338 @@
+/*
+ *  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.tck.dom.sqlos.data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.isis.applib.AbstractDomainObject;
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.value.Color;
+import org.apache.isis.applib.value.Date;
+import org.apache.isis.applib.value.DateTime;
+import org.apache.isis.applib.value.Image;
+import org.apache.isis.applib.value.Money;
+import org.apache.isis.applib.value.Password;
+import org.apache.isis.applib.value.Percentage;
+import org.apache.isis.applib.value.Time;
+import org.apache.isis.applib.value.TimeStamp;
+import org.apache.isis.core.tck.dom.scalars.PrimitiveValuedEntity;
+
+/**
+ * The SqlDataClass is a test class used in the sql-persistor integration tests.
+ * It's properties are stored and retrieved using the persistor, to confirm
+ * accurate persistence behaviour.
+ * 
+ * Each property here requires an equivalent test in
+ * {@link SqlIntegrationTestCommon}
+ * 
+ * @author Kevin Meyer
+ * 
+ */
+
+public class SqlDataClass extends AbstractDomainObject {
+    
+    public String title() {
+        return string;
+    }
+
+    // {{ String
+    private String string;
+
+    public String getString() {
+        return string;
+    }
+
+    public void setString(final String string) {
+        this.string = string;
+    }
+
+    // }}
+
+    // {{ Isis Date
+    private Date date;
+
+    public Date getDate() {
+        return date;
+    }
+
+    public void setDate(final Date date) {
+        this.date = date;
+    }
+
+    // }}
+
+    // {{ java.sql Date
+    private java.sql.Date sqlDate;
+
+    @MemberOrder(sequence = "1")
+    public java.sql.Date getSqlDate() {
+        return sqlDate;
+    }
+
+    public void setSqlDate(final java.sql.Date sqlDate) {
+        this.sqlDate = sqlDate;
+    }
+
+    /**/
+
+    // }}
+
+    // {{ Isis Money
+    private Money money;
+
+    @MemberOrder(sequence = "1")
+    public Money getMoney() {
+        return money;
+    }
+
+    public void setMoney(final Money money) {
+        this.money = money;
+    }
+
+    // }}
+
+    // {{ Isis DateTime
+    private DateTime dateTime;
+
+    @MemberOrder(sequence = "1")
+    public DateTime getDateTime() {
+        return dateTime;
+    }
+
+    public void setDateTime(final DateTime dateTime) {
+        this.dateTime = dateTime;
+    }
+
+    // }}
+
+    // {{ Isis TimeStamp
+    private TimeStamp timeStamp;
+
+    @MemberOrder(sequence = "1")
+    public TimeStamp getTimeStamp() {
+        return timeStamp;
+    }
+
+    public void setTimeStamp(final TimeStamp timeStamp) {
+        this.timeStamp = timeStamp;
+    }
+
+    // }}
+
+    // {{ Isis Time
+    private Time time;
+
+    @MemberOrder(sequence = "1")
+    public Time getTime() {
+        return time;
+    }
+
+    public void setTime(final Time time) {
+        this.time = time;
+    }
+
+    // }}
+
+    // {{ Isis Color
+    private Color color;
+
+    @MemberOrder(sequence = "1")
+    public Color getColor() {
+        return color;
+    }
+
+    public void setColor(final Color color) {
+        this.color = color;
+    }
+
+    // }}
+
+    // {{ Isis Image
+    private Image image;
+
+    @MemberOrder(sequence = "1")
+    public Image getImage() {
+        return image;
+    }
+
+    public void setImage(final Image image) {
+        this.image = image;
+    }
+    // }}
+
+    // {{ Isis Password
+    private Password password;
+
+    @MemberOrder(sequence = "1")
+    public Password getPassword() {
+        return password;
+    }
+
+    public void setPassword(final Password password) {
+        this.password = password;
+    }
+
+    // }}
+
+    // {{ Isis Percentage
+    private Percentage percentage;
+
+    @MemberOrder(sequence = "1")
+    public Percentage getPercentage() {
+        return percentage;
+    }
+
+    public void setPercentage(final Percentage percentage) {
+        this.percentage = percentage;
+    }
+
+    // }}
+
+    
+    //
+    // References to other entities
+    //
+    
+    // {{ SimpleClasses
+    public List<SimpleClass> simpleClasses1 = new ArrayList<SimpleClass>();
+
+    @MemberOrder(sequence = "1")
+    public List<SimpleClass> getSimpleClasses1() {
+        return simpleClasses1;
+    }
+
+    public void setSimpleClasses1(final List<SimpleClass> simpleClasses) {
+        this.simpleClasses1 = simpleClasses;
+    }
+
+    public void addToSimpleClasses1(final SimpleClass simpleClass) {
+        // check for no-op
+        if (simpleClass == null || getSimpleClasses1().contains(simpleClass)) {
+            return;
+        }
+        // associate new
+        getSimpleClasses1().add(simpleClass);
+        // additional business logic
+        onAddToSimpleClasses1(simpleClass);
+    }
+
+    public void removeFromSimpleClasses1(final SimpleClass simpleClass) {
+        // check for no-op
+        if (simpleClass == null || !getSimpleClasses1().contains(simpleClass)) {
+            return;
+        }
+        // dissociate existing
+        getSimpleClasses1().remove(simpleClass);
+        // additional business logic
+        onRemoveFromSimpleClasses1(simpleClass);
+    }
+
+    protected void onAddToSimpleClasses1(final SimpleClass simpleClass) {
+    }
+
+    protected void onRemoveFromSimpleClasses1(final SimpleClass simpleClass) {
+    }
+
+    // }}
+
+    // {{ SimpleClasses2
+    /**/
+    private List<SimpleClass> simpleClasses2 = new ArrayList<SimpleClass>();
+
+    @MemberOrder(sequence = "1")
+    public List<SimpleClass> getSimpleClasses2() {
+        return simpleClasses2;
+    }
+
+    public void setSimpleClasses2(final List<SimpleClass> simpleClasses) {
+        this.simpleClasses2 = simpleClasses;
+    }
+
+    public void addToSimpleClasses2(final SimpleClass simpleClass) {
+        // check for no-op
+        if (simpleClass == null || getSimpleClasses2().contains(simpleClass)) {
+            return;
+        }
+        // associate new
+        getSimpleClasses2().add(simpleClass);
+        // additional business logic
+        onAddToSimpleClasses2(simpleClass);
+    }
+
+    public void removeFromSimpleClasses2(final SimpleClass simpleClass) {
+        // check for no-op
+        if (simpleClass == null || !getSimpleClasses2().contains(simpleClass)) {
+            return;
+        }
+        // dissociate existing
+        getSimpleClasses2().remove(simpleClass);
+        // additional business logic
+        onRemoveFromSimpleClasses2(simpleClass);
+    }
+
+    protected void onAddToSimpleClasses2(final SimpleClass simpleClass) {
+    }
+
+    protected void onRemoveFromSimpleClasses2(final SimpleClass simpleClass) {
+    }
+
+    /**/
+    // }}
+
+    // {{ SimpleClassTwo
+    private SimpleClassTwo simplyClassTwo;
+
+    public SimpleClassTwo getSimpleClassTwo() {
+        return simplyClassTwo;
+    }
+
+    public void setSimpleClassTwo(final SimpleClassTwo simpleClassTwo) {
+        this.simplyClassTwo = simpleClassTwo;
+    }
+
+    // }}
+
+    // {{ PrimitiveValuedEntityMax
+    private PrimitiveValuedEntity pveMax;
+
+    public PrimitiveValuedEntity getPrimitiveValuedEntityMax() {
+        return pveMax;
+    }
+
+    public void setPrimitiveValuedEntityMax(final PrimitiveValuedEntity pveMax) {
+        this.pveMax = pveMax;
+    }
+
+    // }}
+
+    // {{ PrimitiveValuedEntityMin
+    private PrimitiveValuedEntity pveMin;
+
+    public PrimitiveValuedEntity getPrimitiveValuedEntityMin() {
+        return pveMin;
+    }
+
+    public void setPrimitiveValuedEntityMin(final PrimitiveValuedEntity pveMin) {
+        this.pveMin = pveMin;
+    }
+
+    // }}
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/viewmodels/SimpleViewModel.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/viewmodels/SimpleViewModel.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/viewmodels/SimpleViewModel.java
new file mode 100644
index 0000000..ab987c6
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/viewmodels/SimpleViewModel.java
@@ -0,0 +1,61 @@
+/*
+ *  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.tck.dom.viewmodels;
+
+import org.apache.isis.applib.AbstractDomainObject;
+import org.apache.isis.applib.ViewModel;
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.util.TitleBuffer;
+
+
+public class SimpleViewModel extends AbstractDomainObject implements ViewModel {
+
+    public String title() {
+        final TitleBuffer buf = new TitleBuffer();
+        buf.append(name);
+        return buf.toString();
+    }
+    
+    // //////////////////////////////////////
+
+    private String name;
+
+    @MemberOrder(sequence = "1")
+    public String getName() {
+        return name;
+    }
+
+    public void setName(final String name) {
+        this.name = name;
+    }
+    
+    // //////////////////////////////////////
+
+    @Override
+    public String viewModelMemento() {
+        return name;
+    }
+
+    @Override
+    public void viewModelInit(final String memento) {
+        setName(memento);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/xmlos/Person.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/xmlos/Person.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/xmlos/Person.java
new file mode 100644
index 0000000..bd6d8be
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/xmlos/Person.java
@@ -0,0 +1,27 @@
+/*
+ *  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.tck.dom.xmlos;
+
+import org.apache.isis.applib.annotation.ObjectType;
+
+@ObjectType("PER")
+public class Person {
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/xmlos/Role.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/xmlos/Role.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/xmlos/Role.java
new file mode 100644
index 0000000..8c2b01f
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/xmlos/Role.java
@@ -0,0 +1,53 @@
+/*
+ *  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.tck.dom.xmlos;
+
+import org.apache.isis.applib.annotation.ObjectType;
+
+@ObjectType("RLE")
+public class Role {
+    
+    // {{ Name (String)
+    public String name;
+    public String getName() {
+        return name;
+    }
+    public void setName(final String name) {
+        this.name = name;
+    }
+    // }}
+    
+    // {{ Person (Person)
+    public Person person;
+    public Person getPerson() {
+        return person;
+    }
+    public void setPerson(final Person v) {
+        person = v;
+    }
+    public void modifyPerson(final Person person) {
+        setPerson(person);
+    }
+    public void clearPerson() {
+        setPerson(null);
+    }
+    // }}
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/xmlos/Team.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/xmlos/Team.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/xmlos/Team.java
new file mode 100644
index 0000000..34ce6ea
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/xmlos/Team.java
@@ -0,0 +1,27 @@
+/*
+ *  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.tck.dom.xmlos;
+
+import org.apache.isis.applib.annotation.ObjectType;
+
+@ObjectType("TEA")
+public class Team {
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/xmlos/TeamDomainRepository.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/xmlos/TeamDomainRepository.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/xmlos/TeamDomainRepository.java
new file mode 100644
index 0000000..bf6c494
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/xmlos/TeamDomainRepository.java
@@ -0,0 +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.core.tck.dom.xmlos;
+
+import java.util.List;
+
+import org.apache.isis.applib.DomainObjectContainer;
+
+public class TeamDomainRepository {
+    
+    public List<Person> allPersons() {
+        return container.allInstances(Person.class); 
+    }
+
+    public List<Role> allRoles() {
+        return container.allInstances(Role.class); 
+    }
+
+    public List<Team> allTeams() {
+        return container.allInstances(Team.class); 
+    }
+
+    
+    // {{ injected: DomainObjectContainer
+    private DomainObjectContainer container;
+
+    public void setDomainObjectContainer(final DomainObjectContainer container) {
+        this.container = container;
+    }
+    // }}
+
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/resources/images/ToDoItem.gif
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/resources/images/ToDoItem.gif b/tck/tck-dom/src/main/resources/images/ToDoItem.gif
new file mode 100644
index 0000000..cc536e1
Binary files /dev/null and b/tck/tck-dom/src/main/resources/images/ToDoItem.gif differ

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-fixture/pom.xml
----------------------------------------------------------------------
diff --git a/tck/tck-fixture/pom.xml b/tck/tck-fixture/pom.xml
new file mode 100644
index 0000000..29c84fd
--- /dev/null
+++ b/tck/tck-fixture/pom.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+--><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.isis.tck</groupId>
+        <artifactId>isis-tck</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+    </parent>
+
+	<artifactId>isis-tck-fixture</artifactId>
+	<name>Isis TCK Fixtures</name>
+
+	<dependencies>
+		<dependency>
+            <groupId>org.apache.isis.tck</groupId>
+            <artifactId>isis-tck-dom</artifactId>
+		</dependency>
+	</dependencies>
+
+</project>

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/LogonAsSvenFixture.java
----------------------------------------------------------------------
diff --git a/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/LogonAsSvenFixture.java b/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/LogonAsSvenFixture.java
new file mode 100644
index 0000000..a815bbc
--- /dev/null
+++ b/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/LogonAsSvenFixture.java
@@ -0,0 +1,30 @@
+/*
+ *  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.tck.fixture;
+
+import org.apache.isis.applib.fixtures.LogonFixture;
+
+public class LogonAsSvenFixture extends LogonFixture {
+
+    public LogonAsSvenFixture() {
+        super("sven");
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/actions/ActionsEntityFixture.java
----------------------------------------------------------------------
diff --git a/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/actions/ActionsEntityFixture.java b/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/actions/ActionsEntityFixture.java
new file mode 100644
index 0000000..2a5e6ad
--- /dev/null
+++ b/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/actions/ActionsEntityFixture.java
@@ -0,0 +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.core.tck.fixture.actions;
+
+import org.apache.isis.applib.fixtures.AbstractFixture;
+import org.apache.isis.core.tck.dom.actions.ActionsEntity;
+import org.apache.isis.core.tck.dom.actions.ActionsEntityRepository;
+import org.apache.isis.core.tck.dom.busrules.BusRulesEntity;
+import org.apache.isis.core.tck.dom.busrules.BusRulesEntityRepository;
+
+public class ActionsEntityFixture extends AbstractFixture {
+
+    @Override
+    public void install() {
+        createEntity(1);
+        createEntity(2);
+        createEntity(3);
+        createEntity(4);
+        createEntity(5);
+    }
+
+    private ActionsEntity createEntity(Integer id) {
+        final ActionsEntity entity = repository.newEntity();
+        entity.setId(id);
+        return entity;
+    }
+
+    // {{ injected: ActionSemanticsEntityRepository
+    private ActionsEntityRepository repository;
+
+    public void setActionSemanticsEntityRepository(final ActionsEntityRepository repository) {
+        this.repository = repository;
+    }
+    // }}
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/busrules/BusRulesEntityFixture.java
----------------------------------------------------------------------
diff --git a/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/busrules/BusRulesEntityFixture.java b/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/busrules/BusRulesEntityFixture.java
new file mode 100644
index 0000000..39a84c4
--- /dev/null
+++ b/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/busrules/BusRulesEntityFixture.java
@@ -0,0 +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.core.tck.fixture.busrules;
+
+import org.apache.isis.applib.fixtures.AbstractFixture;
+import org.apache.isis.core.tck.dom.busrules.BusRulesEntity;
+import org.apache.isis.core.tck.dom.busrules.BusRulesEntityRepository;
+
+public class BusRulesEntityFixture extends AbstractFixture {
+
+    @Override
+    public void install() {
+        createEntity(1);
+        createEntity(2);
+        createEntity(3);
+        createEntity(4);
+        createEntity(5);
+    }
+
+    private BusRulesEntity createEntity(Integer id) {
+        final BusRulesEntity entity = repository.newEntity();
+        entity.setId(id);
+        return entity;
+    }
+
+    // {{ injected: BusRulesEntityRepository
+    private BusRulesEntityRepository repository;
+
+    public void setBusRulesEntityRepository(final BusRulesEntityRepository repository) {
+        this.repository = repository;
+    }
+    // }}
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/defaults/WithDefaultsEntityFixture.java
----------------------------------------------------------------------
diff --git a/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/defaults/WithDefaultsEntityFixture.java b/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/defaults/WithDefaultsEntityFixture.java
new file mode 100644
index 0000000..98fc917
--- /dev/null
+++ b/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/defaults/WithDefaultsEntityFixture.java
@@ -0,0 +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.core.tck.fixture.defaults;
+
+import org.apache.isis.applib.fixtures.AbstractFixture;
+import org.apache.isis.core.tck.dom.defaults.WithDefaultsEntity;
+import org.apache.isis.core.tck.dom.defaults.WithDefaultsEntityRepository;
+
+public class WithDefaultsEntityFixture extends AbstractFixture {
+
+    @Override
+    public void install() {
+        createEntity("John");
+        createEntity("Mary");
+        createEntity("Bill");
+        createEntity("Sally");
+        createEntity("Diedre");
+    }
+
+    private WithDefaultsEntity createEntity(final String name) {
+        final WithDefaultsEntity entity = repository.newTransientEntity();
+        persist(entity);
+        return entity;
+    }
+
+    // {{ injected: WithDefaultsEntityRepository
+    private WithDefaultsEntityRepository repository;
+
+    public void setWithDefaultsEntityRepository(final WithDefaultsEntityRepository repository) {
+        this.repository = repository;
+    }
+    // }}
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/refs/ParentEntitiesFixture.java
----------------------------------------------------------------------
diff --git a/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/refs/ParentEntitiesFixture.java b/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/refs/ParentEntitiesFixture.java
new file mode 100644
index 0000000..66e4eae
--- /dev/null
+++ b/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/refs/ParentEntitiesFixture.java
@@ -0,0 +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.core.tck.fixture.refs;
+
+import org.apache.isis.applib.fixtures.AbstractFixture;
+import org.apache.isis.core.tck.dom.refs.ParentEntity;
+import org.apache.isis.core.tck.dom.refs.ParentEntityRepository;
+
+public class ParentEntitiesFixture extends AbstractFixture {
+
+    @Override
+    public void install() {
+        createEntity("parent 1");
+        createEntity("parent 2");
+        createEntity("parent 3");
+        createEntity("parent 4");
+        createEntity("parent 5");
+    }
+
+    private ParentEntity createEntity(final String name) {
+        final ParentEntity parent = parentEntityRepository.newEntity(name);
+        parent.newChild("child 1");
+        parent.newChild("child 2");
+        return parent;
+    }
+
+    private ParentEntityRepository parentEntityRepository;
+
+    public void setParentEntityRepository(final ParentEntityRepository parentEntityRepository) {
+        this.parentEntityRepository = parentEntityRepository;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/ApplibValuedEntityFixture.java
----------------------------------------------------------------------
diff --git a/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/ApplibValuedEntityFixture.java b/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/ApplibValuedEntityFixture.java
new file mode 100644
index 0000000..4581d26
--- /dev/null
+++ b/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/ApplibValuedEntityFixture.java
@@ -0,0 +1,47 @@
+/*
+ *  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.tck.fixture.scalars;
+
+import org.apache.isis.applib.fixtures.AbstractFixture;
+import org.apache.isis.core.tck.dom.scalars.ApplibValuedEntity;
+import org.apache.isis.core.tck.dom.scalars.ApplibValuedEntityRepository;
+
+public class ApplibValuedEntityFixture extends AbstractFixture {
+
+    @Override
+    public void install() {
+        createEntity();
+        createEntity();
+        createEntity();
+        createEntity();
+        createEntity();
+    }
+
+    private ApplibValuedEntity createEntity() {
+        return applibValuesEntityRepository.newEntity();
+    }
+
+    private ApplibValuedEntityRepository applibValuesEntityRepository;
+
+    public void setApplibValuesEntityRepository(final ApplibValuedEntityRepository applibValuesEntityRepository) {
+        this.applibValuesEntityRepository = applibValuesEntityRepository;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/DateTimeValuedEntityFixture.java
----------------------------------------------------------------------
diff --git a/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/DateTimeValuedEntityFixture.java b/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/DateTimeValuedEntityFixture.java
new file mode 100644
index 0000000..c77b359
--- /dev/null
+++ b/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/DateTimeValuedEntityFixture.java
@@ -0,0 +1,47 @@
+/*
+ *  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.tck.fixture.scalars;
+
+import org.apache.isis.applib.fixtures.AbstractFixture;
+import org.apache.isis.core.tck.dom.scalars.DateTimeValuedEntity;
+import org.apache.isis.core.tck.dom.scalars.DateTimeValuedEntityRepository;
+
+public class DateTimeValuedEntityFixture extends AbstractFixture {
+
+    @Override
+    public void install() {
+        createEntity();
+        createEntity();
+        createEntity();
+        createEntity();
+        createEntity();
+    }
+
+    private DateTimeValuedEntity createEntity() {
+        return dateTimeValuesEntityRepository.newEntity();
+    }
+
+    private DateTimeValuedEntityRepository dateTimeValuesEntityRepository;
+
+    public void setDateTimeValuesEntityRepository(final DateTimeValuedEntityRepository dateTimeValuesEntityRepository) {
+        this.dateTimeValuesEntityRepository = dateTimeValuesEntityRepository;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/JdkValuedEntityFixture.java
----------------------------------------------------------------------
diff --git a/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/JdkValuedEntityFixture.java b/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/JdkValuedEntityFixture.java
new file mode 100644
index 0000000..73e5dd1
--- /dev/null
+++ b/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/JdkValuedEntityFixture.java
@@ -0,0 +1,81 @@
+/*
+ *  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.tck.fixture.scalars;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.sql.Timestamp;
+import java.util.Date;
+import javax.inject.Inject;
+import org.joda.time.format.DateTimeFormat;
+import org.joda.time.format.DateTimeFormatter;
+import org.apache.isis.applib.fixtures.AbstractFixture;
+import org.apache.isis.core.tck.dom.scalars.JdkValuedEntity;
+import org.apache.isis.core.tck.dom.scalars.JdkValuedEntityRepository;
+import org.apache.isis.core.tck.dom.scalars.MyEnum;
+
+public class JdkValuedEntityFixture extends AbstractFixture {
+
+    @Override
+    public void install() {
+        createEntity();
+        createEntity();
+        createEntity();
+        createEntity();
+        createEntity();
+    }
+
+    private JdkValuedEntity createEntity() {
+        final JdkValuedEntity entity = jdkValuesEntityRepository.newEntity();
+        entity.setBigDecimalProperty(new BigDecimal("12345678901234567890.1234567890"));
+        entity.setBigDecimalProperty2(new BigDecimal("123.45"));
+        entity.setBigIntegerProperty(new BigInteger("123456789012345678"));
+        entity.setBigIntegerProperty2(new BigInteger("12345"));
+        entity.setJavaSqlDateProperty(asSqlDate("2014-04-24"));
+        entity.setJavaSqlTimeProperty(asSqlTime("1970-01-01T12:34:45Z"));
+        entity.setJavaSqlTimestampProperty(new Timestamp(1234567890));
+        entity.setJavaUtilDateProperty(asDateTime("2013-05-25T12:34:45Z"));
+        entity.setMyEnum(MyEnum.RED);
+        return entity;
+    }
+
+    private final static DateTimeFormatter yyyyMMdd = DateTimeFormat.forPattern("yyyy-MM-dd").withZoneUTC();
+    private final static DateTimeFormatter yyyyMMddTHHmmssZ = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ssZ").withZoneUTC();
+
+    private static Date asDate(final String text) {
+        return new java.util.Date(yyyyMMdd.parseDateTime(text).getMillis());
+    }
+
+    private static Date asDateTime(final String text) {
+        return new java.util.Date(yyyyMMddTHHmmssZ.parseDateTime(text).getMillis());
+    }
+
+    private static java.sql.Date asSqlDate(final String text) {
+        return new java.sql.Date(yyyyMMdd.parseDateTime(text).getMillis());
+    }
+
+    private static java.sql.Time asSqlTime(final String text) {
+        return new java.sql.Time(yyyyMMddTHHmmssZ.parseDateTime(text).getMillis());
+    }
+
+    @Inject
+    private JdkValuedEntityRepository jdkValuesEntityRepository;
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/JodaValuedEntityFixture.java
----------------------------------------------------------------------
diff --git a/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/JodaValuedEntityFixture.java b/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/JodaValuedEntityFixture.java
new file mode 100644
index 0000000..42cb18b
--- /dev/null
+++ b/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/JodaValuedEntityFixture.java
@@ -0,0 +1,55 @@
+/*
+ *  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.tck.fixture.scalars;
+
+import org.joda.time.DateTime;
+import org.joda.time.DateTimeZone;
+import org.joda.time.LocalDate;
+import org.joda.time.LocalDateTime;
+import org.apache.isis.applib.fixtures.AbstractFixture;
+import org.apache.isis.core.tck.dom.scalars.JodaValuedEntity;
+import org.apache.isis.core.tck.dom.scalars.JodaValuedEntityRepository;
+
+public class JodaValuedEntityFixture extends AbstractFixture {
+
+    @Override
+    public void install() {
+        createEntity();
+        createEntity();
+        createEntity();
+        createEntity();
+        createEntity();
+    }
+
+    private JodaValuedEntity createEntity() {
+        final JodaValuedEntity jve = jodaValuesEntityRepository.newEntity();
+        jve.setLocalDateProperty(new LocalDate(2008,3,21));
+        jve.setLocalDateTimeProperty(new LocalDateTime(2009, 4, 29, 13, 45, 22));
+        jve.setDateTimeProperty(new DateTime(2010, 3, 31, 9, 50, 43, DateTimeZone.UTC));
+        return jve;
+    }
+
+    private JodaValuedEntityRepository jodaValuesEntityRepository;
+
+    public void setJdkValuesEntityRepository(final JodaValuedEntityRepository jodaValuesEntityRepository) {
+        this.jodaValuesEntityRepository = jodaValuesEntityRepository;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/PrimitiveValuedEntityFixture.java
----------------------------------------------------------------------
diff --git a/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/PrimitiveValuedEntityFixture.java b/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/PrimitiveValuedEntityFixture.java
new file mode 100644
index 0000000..e9db111
--- /dev/null
+++ b/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/PrimitiveValuedEntityFixture.java
@@ -0,0 +1,56 @@
+/*
+ *  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.tck.fixture.scalars;
+
+import org.apache.isis.applib.fixtures.AbstractFixture;
+import org.apache.isis.core.tck.dom.scalars.PrimitiveValuedEntity;
+import org.apache.isis.core.tck.dom.scalars.PrimitiveValuedEntityRepository;
+
+public class PrimitiveValuedEntityFixture extends AbstractFixture {
+
+    @Override
+    public void install() {
+        createEntity();
+        createEntity();
+        createEntity();
+        createEntity();
+        createEntity();
+    }
+
+    private PrimitiveValuedEntity createEntity() {
+        final PrimitiveValuedEntity pve = primitiveValuesEntityRepository.newEntity();
+        pve.setBooleanProperty(true);
+        pve.setByteProperty((byte)123);
+        pve.setShortProperty((short)32123);
+        pve.setCharProperty('a');
+        pve.setIntProperty(987654321);
+        pve.setLongProperty(2345678901234567890L);
+        pve.setFloatProperty(12345678901234567890.1234567890F);
+        pve.setDoubleProperty(12345678901234567890.1234567890);
+        return pve;
+    }
+
+    private PrimitiveValuedEntityRepository primitiveValuesEntityRepository;
+
+    public void setPrimitiveValuesEntityRepository(final PrimitiveValuedEntityRepository primitiveValuesEntityRepository) {
+        this.primitiveValuesEntityRepository = primitiveValuesEntityRepository;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/WrapperValuedEntityFixture.java
----------------------------------------------------------------------
diff --git a/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/WrapperValuedEntityFixture.java b/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/WrapperValuedEntityFixture.java
new file mode 100644
index 0000000..0d9d869
--- /dev/null
+++ b/tck/tck-fixture/src/main/java/org/apache/isis/core/tck/fixture/scalars/WrapperValuedEntityFixture.java
@@ -0,0 +1,57 @@
+/*
+ *  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.tck.fixture.scalars;
+
+import org.apache.isis.applib.fixtures.AbstractFixture;
+import org.apache.isis.core.tck.dom.scalars.WrapperValuedEntity;
+import org.apache.isis.core.tck.dom.scalars.WrapperValuedEntityRepository;
+
+public class WrapperValuedEntityFixture extends AbstractFixture {
+
+    @Override
+    public void install() {
+        createEntity();
+        createEntity();
+        createEntity();
+        createEntity();
+        createEntity();
+    }
+
+    private WrapperValuedEntity createEntity() {
+        final WrapperValuedEntity wve = wrapperValuesEntityRepository.newEntity();
+        wve.setBooleanProperty(true);
+        wve.setByteProperty((byte)123);
+        wve.setShortProperty((short)32123);
+        wve.setCharacterProperty('a');
+        wve.setIntegerProperty(987654321);
+        wve.setLongProperty(2345678901234567890L);
+        wve.setFloatProperty(12345678901234567890.1234567890F);
+        wve.setDoubleProperty(12345678901234567890.1234567890);
+
+        return wve;
+    }
+
+    private WrapperValuedEntityRepository wrapperValuesEntityRepository;
+
+    public void setPrimitiveValuesEntityRepository(final WrapperValuedEntityRepository wrapperValuesEntityRepository) {
+        this.wrapperValuesEntityRepository = wrapperValuesEntityRepository;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-integtests/lib/.gitignore
----------------------------------------------------------------------
diff --git a/tck/tck-integtests/lib/.gitignore b/tck/tck-integtests/lib/.gitignore
new file mode 100644
index 0000000..4c21459
--- /dev/null
+++ b/tck/tck-integtests/lib/.gitignore
@@ -0,0 +1,24 @@
+#
+#   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. 
+#
+
+#
+# explicitly ignoring Microsoft JDBC4 jar
+# (cannot redistribute, licensing)
+#
+sqljdbc4.jar

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-integtests/pom.xml
----------------------------------------------------------------------
diff --git a/tck/tck-integtests/pom.xml b/tck/tck-integtests/pom.xml
new file mode 100644
index 0000000..4730376
--- /dev/null
+++ b/tck/tck-integtests/pom.xml
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.isis.tck</groupId>
+        <artifactId>isis-tck</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+    </parent>
+
+	<artifactId>isis-tck-integtests</artifactId>
+    <name>Isis TCK IntegTests</name>
+
+    <properties>
+	    <siteBaseDir>..</siteBaseDir>
+	    <relativeUrl>objectstore-jdo-datanucleus/</relativeUrl>
+	</properties>
+
+    <!-- used in Site generation for relative references. -->
+    <url>http://isis.apache.org/${relativeUrl}</url>
+
+	<build>
+        <resources>
+            <resource>
+                <directory>src/main/java</directory>
+                <filtering>false</filtering>
+                <includes>
+                    <include>**</include>
+                </includes>
+                <excludes>
+                    <exclude>**/*.java</exclude>
+                </excludes>
+            </resource>
+            <resource>
+                <directory>src/main/resources</directory>
+                <filtering>false</filtering>
+            </resource>
+        </resources>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <configuration>
+                    <skipTests>true</skipTests>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+  
+
+	<dependencies>
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-unittestsupport</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-runtime</artifactId>
+        </dependency>
+
+        <!-- other modules in this project -->
+        <dependency>
+            <groupId>org.apache.isis.tck</groupId>
+            <artifactId>isis-tck-dom</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.isis.tck</groupId>
+            <artifactId>isis-tck-fixture</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-integtestsupport</artifactId>
+            <scope>test</scope>
+        </dependency>
+        
+        <dependency>
+            <groupId>org.hsqldb</groupId>
+            <artifactId>hsqldb</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <!--
+        <dependency>
+            <groupId>com.microsoft.sqlserver</groupId>
+            <artifactId>jdbc</artifactId>
+            <version>4.0</version>
+            <scope>system</scope>
+            <optional>true</optional>
+            <systemPath>${basedir}/lib/sqljdbc4.jar</systemPath>
+        </dependency>
+        -->
+
+    </dependencies>
+</project>