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:25 UTC

[22/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/refs/PolyInterfaceParentEntity.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/PolyInterfaceParentEntity.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/PolyInterfaceParentEntity.java
new file mode 100644
index 0000000..144d401
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/PolyInterfaceParentEntity.java
@@ -0,0 +1,127 @@
+/*
+ *  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.refs;
+
+import java.math.BigDecimal;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import javax.jdo.annotations.IdentityType;
+import javax.jdo.annotations.Join;
+import javax.jdo.annotations.Persistent;
+
+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(identityType=IdentityType.DATASTORE)
+@javax.jdo.annotations.Discriminator("PIPR")
+@javax.jdo.annotations.DatastoreIdentity(strategy=javax.jdo.annotations.IdGeneratorStrategy.IDENTITY)
+@ObjectType("PIPR")
+public class PolyInterfaceParentEntity extends BaseEntity {
+
+    
+    // {{ Name (also title)
+    private String name;
+    
+    @Title
+    @MemberOrder(sequence = "1")
+    @Optional
+    public String getName() {
+        return name;
+    }
+
+    public void setName(final String name) {
+        this.name = name;
+    }
+
+    // }}
+
+
+    // {{ Children
+    @Persistent
+    @Join
+    private Set<PolyInterface> children = new HashSet<PolyInterface>();
+
+    @MemberOrder(sequence = "1")
+    public Set<PolyInterface> getChildren() {
+        return children;
+    }
+
+    public void setChildren(final Set<PolyInterface> children) {
+        this.children = children;
+    }
+    // }}
+
+    
+    // {{ newSubtype1 (action)
+    public PolyInterfaceSubtype1Entity newSubtype1(final String name, int foo) {
+        final PolyInterfaceSubtype1Entity childEntity = newTransientInstance(PolyInterfaceSubtype1Entity.class);
+        childEntity.setName(name);
+        childEntity.setFoo(foo);
+        childEntity.setParent(this);
+        this.getChildren().add(childEntity);
+        persistIfNotAlready(childEntity);
+        return childEntity;
+    }
+    // }}
+
+    // {{ newSubtype2 (action)
+    public PolyInterfaceSubtype2Entity newSubtype2(final String name, String bar) {
+        final PolyInterfaceSubtype2Entity childEntity = newTransientInstance(PolyInterfaceSubtype2Entity.class);
+        childEntity.setName(name);
+        childEntity.setParent(this);
+        childEntity.setBar(bar);
+        this.getChildren().add(childEntity);
+        persistIfNotAlready(childEntity);
+        return childEntity;
+    }
+    // }}
+    
+    // {{ newSubtype3 (action)
+    public PolyInterfaceSubtype3Entity newSubtype3(final String name, BigDecimal boz) {
+        final PolyInterfaceSubtype3Entity childEntity = newTransientInstance(PolyInterfaceSubtype3Entity.class);
+        childEntity.setName(name);
+        childEntity.setParent(this);
+        childEntity.setBoz(boz);
+        this.getChildren().add(childEntity);
+        persistIfNotAlready(childEntity);
+        return childEntity;
+    }
+    // }}
+    
+    // {{ removeChild (action)
+    public PolyInterfaceParentEntity removeChild(final PolyInterface childEntity) {
+        if (getChildren().contains(childEntity)) {
+            getChildren().remove(childEntity);
+            childEntity.setParent(null);
+        }
+        return this;
+    }
+
+    public List<PolyInterface> choices0RemoveChild() {
+        return Arrays.asList(getChildren().toArray(new PolyInterface[0]));
+    }
+    // }}
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/PolyInterfaceParentEntityRepository.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/PolyInterfaceParentEntityRepository.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/PolyInterfaceParentEntityRepository.java
new file mode 100644
index 0000000..5d302e4
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/PolyInterfaceParentEntityRepository.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.dom.refs;
+
+import org.apache.isis.applib.annotation.*;
+import org.apache.isis.core.tck.dom.AbstractEntityRepository;
+
+@Named("PolyInterfaceParentEntities")
+@ObjectType("PolyInterfaceParentEntities")
+@DomainService
+public class PolyInterfaceParentEntityRepository extends AbstractEntityRepository<PolyInterfaceParentEntity> {
+
+    public PolyInterfaceParentEntityRepository() {
+        super(PolyInterfaceParentEntity.class, "PolyInterfaceParentEntities");
+    }
+
+    @MemberOrder(sequence = "2")
+    public PolyInterfaceParentEntity newEntity(final String name) {
+        final PolyInterfaceParentEntity entity = newTransientInstance(PolyInterfaceParentEntity.class);
+        entity.setName(name);
+        persist(entity);
+        return entity;
+    }
+
+    
+    @Hidden
+    public void registerType(PolyInterfaceSubtype1Entity e) { }
+
+    @Hidden
+    public void registerType(PolyInterfaceSubtype2Entity e) { }
+
+    @Hidden
+    public void registerType(PolyInterfaceSubtype3Entity e) { }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/PolyInterfaceSubtype1Entity.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/PolyInterfaceSubtype1Entity.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/PolyInterfaceSubtype1Entity.java
new file mode 100644
index 0000000..eedc86a
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/PolyInterfaceSubtype1Entity.java
@@ -0,0 +1,86 @@
+/*
+ *  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.refs;
+
+import javax.jdo.annotations.IdentityType;
+import javax.jdo.annotations.Inheritance;
+import javax.jdo.annotations.InheritanceStrategy;
+
+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(identityType=IdentityType.DATASTORE)
+@javax.jdo.annotations.Discriminator("PIS1")
+@javax.jdo.annotations.DatastoreIdentity(strategy=javax.jdo.annotations.IdGeneratorStrategy.IDENTITY)
+@Inheritance(strategy=InheritanceStrategy.NEW_TABLE)
+@ObjectType("PIS1")
+public class PolyInterfaceSubtype1Entity extends BaseEntity implements PolyInterface {
+
+
+    
+    // {{ Parent (title #1)
+    private PolyInterfaceParentEntity parent;
+
+    @Title(sequence="1", append="-")
+    @MemberOrder(sequence = "1")
+    @Optional
+    public PolyInterfaceParentEntity getParent() {
+        return parent;
+    }
+
+    public void setParent(final PolyInterfaceParentEntity parent) {
+        this.parent = parent;
+    }
+
+    // }}
+
+    // {{ Name  (title #2)
+    private String name;
+
+    @Title(sequence="2")
+    @MemberOrder(sequence = "1")
+    public String getName() {
+        return name;
+    }
+
+    public void setName(final String name) {
+        this.name = name;
+    }
+
+    // }}
+
+    
+    // {{ Foo (property)
+    private int foo;
+
+    @MemberOrder(sequence = "1")
+    public int getFoo() {
+        return foo;
+    }
+
+    public void setFoo(final int foo) {
+        this.foo = foo;
+    }
+    // }}
+
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/PolyInterfaceSubtype2Entity.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/PolyInterfaceSubtype2Entity.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/PolyInterfaceSubtype2Entity.java
new file mode 100644
index 0000000..ec64f86
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/PolyInterfaceSubtype2Entity.java
@@ -0,0 +1,86 @@
+/*
+ *  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.refs;
+
+import javax.jdo.annotations.IdentityType;
+import javax.jdo.annotations.Inheritance;
+import javax.jdo.annotations.InheritanceStrategy;
+
+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(identityType=IdentityType.DATASTORE)
+@javax.jdo.annotations.Discriminator("PIS2")
+@javax.jdo.annotations.DatastoreIdentity(strategy=javax.jdo.annotations.IdGeneratorStrategy.IDENTITY)
+@Inheritance(strategy=InheritanceStrategy.NEW_TABLE)
+@ObjectType("PIS2")
+public class PolyInterfaceSubtype2Entity extends BaseEntity implements PolyInterface {
+
+    
+    // {{ Parent (title #1)
+    private PolyInterfaceParentEntity parent;
+
+    @Title(sequence="1", append="-")
+    @MemberOrder(sequence = "1")
+    @Optional
+    public PolyInterfaceParentEntity getParent() {
+        return parent;
+    }
+
+    public void setParent(final PolyInterfaceParentEntity parent) {
+        this.parent = parent;
+    }
+
+    // }}
+
+    // {{ Name  (title #2)
+    private String name;
+
+    @Title(sequence="2")
+    @MemberOrder(sequence = "1")
+    public String getName() {
+        return name;
+    }
+
+    public void setName(final String name) {
+        this.name = name;
+    }
+
+    // }}
+
+    
+    // {{ Bar (property)
+    private String bar;
+
+    @MemberOrder(sequence = "1")
+    public String getBar() {
+        return bar;
+    }
+
+    public void setBar(final String bar) {
+        this.bar = bar;
+    }
+    // }}
+
+
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/PolyInterfaceSubtype3Entity.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/PolyInterfaceSubtype3Entity.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/PolyInterfaceSubtype3Entity.java
new file mode 100644
index 0000000..134d76a
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/PolyInterfaceSubtype3Entity.java
@@ -0,0 +1,87 @@
+/*
+ *  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.refs;
+
+import javax.jdo.annotations.IdentityType;
+import javax.jdo.annotations.Inheritance;
+import javax.jdo.annotations.InheritanceStrategy;
+
+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(identityType=IdentityType.DATASTORE)
+@javax.jdo.annotations.Discriminator("PIS3")
+@javax.jdo.annotations.DatastoreIdentity(strategy=javax.jdo.annotations.IdGeneratorStrategy.IDENTITY)
+@Inheritance(strategy=InheritanceStrategy.NEW_TABLE)
+@ObjectType("PIS3")
+public class PolyInterfaceSubtype3Entity extends BaseEntity implements PolyInterface {
+
+    
+
+    // {{ Parent (title #1)
+    private PolyInterfaceParentEntity parent;
+
+    @Title(sequence="1", append="-")
+    @MemberOrder(sequence = "1")
+    @Optional
+    public PolyInterfaceParentEntity getParent() {
+        return parent;
+    }
+
+    public void setParent(final PolyInterfaceParentEntity parent) {
+        this.parent = parent;
+    }
+
+    // }}
+
+    // {{ Name  (title #2)
+    private String name;
+
+    @Title(sequence="2")
+    @MemberOrder(sequence = "1")
+    public String getName() {
+        return name;
+    }
+
+    public void setName(final String name) {
+        this.name = name;
+    }
+
+    // }}
+
+    
+    // {{ Baz (property)
+    private java.math.BigDecimal boz;
+
+    @MemberOrder(sequence = "1")
+    public java.math.BigDecimal getBoz() {
+        return boz;
+    }
+
+    public void setBoz(final java.math.BigDecimal baz) {
+        this.boz = baz;
+    }
+    // }}
+
+
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/ReferencingEntity.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/ReferencingEntity.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/ReferencingEntity.java
new file mode 100644
index 0000000..645e03e
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/ReferencingEntity.java
@@ -0,0 +1,95 @@
+/*
+ *  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.refs;
+
+import java.util.List;
+
+import javax.jdo.annotations.IdentityType;
+
+import com.google.common.collect.Lists;
+
+import org.apache.isis.applib.annotation.NotPersisted;
+import org.apache.isis.applib.annotation.ObjectType;
+
+@javax.jdo.annotations.PersistenceCapable(identityType=IdentityType.DATASTORE)
+@javax.jdo.annotations.Discriminator("RFCG")
+@javax.jdo.annotations.DatastoreIdentity(strategy=javax.jdo.annotations.IdGeneratorStrategy.IDENTITY)
+@ObjectType("RFCG")
+public class ReferencingEntity extends BaseEntity {
+    
+    
+    // {{ Reference
+    private SimpleEntity reference;
+
+    public SimpleEntity getReference() {
+        return reference;
+    }
+
+    public void setReference(final SimpleEntity reference) {
+        this.reference = reference;
+    }
+
+    // }}
+
+    // {{ AggregatedEntity
+    private AggregatedEntity aggregatedReference;
+
+    public AggregatedEntity getAggregatedReference() {
+        return aggregatedReference;
+    }
+
+    public void setAggregatedReference(final AggregatedEntity aggregatedReference) {
+        this.aggregatedReference = aggregatedReference;
+    }
+
+    public AggregatedEntity addAggregatedReference() {
+        final AggregatedEntity aggregatedEntity = newAggregatedInstance(AggregatedEntity.class);
+        setAggregatedReference(aggregatedEntity);
+        return aggregatedEntity;
+    }
+    // }}
+
+    // {{ AggregatedEntities
+    private List<AggregatedEntity> aggregatedEntities = Lists.newArrayList();
+
+    public List<AggregatedEntity> getAggregatedEntities() {
+        return aggregatedEntities;
+    }
+
+    public void setAggregatedEntities(List<AggregatedEntity> aggregatedEntities) {
+        this.aggregatedEntities = aggregatedEntities;
+    }
+    
+    public AggregatedEntity addAggregatedEntityToCollection() {
+        final AggregatedEntity aggregatedEntity = newAggregatedInstance(AggregatedEntity.class);
+        getAggregatedEntities().add(aggregatedEntity);
+        return aggregatedEntity;
+    }
+    // }}
+
+    // {{ NotPersisted
+    @NotPersisted
+    public SimpleEntity getNotPersisted() {
+        throw new org.apache.isis.applib.NonRecoverableException("unexpected call");
+    }
+    // }}
+
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/SimpleEntity.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/SimpleEntity.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/SimpleEntity.java
new file mode 100644
index 0000000..89c3fc4
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/SimpleEntity.java
@@ -0,0 +1,104 @@
+/*
+ *  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.refs;
+
+import java.util.Date;
+
+import javax.jdo.annotations.IdentityType;
+
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.NotPersisted;
+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(identityType=IdentityType.DATASTORE)
+@javax.jdo.annotations.Discriminator("SMPL")
+@javax.jdo.annotations.DatastoreIdentity(strategy=javax.jdo.annotations.IdGeneratorStrategy.IDENTITY)
+@ObjectType("SMPL")
+public class SimpleEntity extends BaseEntity {
+    
+    // {{ name: String (title)
+    private String name;
+
+    @Title
+    @MemberOrder(sequence = "1")
+    public String getName() {
+        return name;
+    }
+
+    public void setName(final String name) {
+        this.name = name;
+    }
+
+    // }}
+
+    // {{ Date: java.util.Date
+    private Date date;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public Date getDate() {
+        return date;
+    }
+
+    public void setDate(final Date date) {
+        this.date = date;
+    }
+    // }}
+
+    // {{ Size: int
+    private int size;
+
+    @MemberOrder(sequence = "1")
+    public int getSize() {
+        return size;
+    }
+
+    public void setSize(final int size) {
+        this.size = size;
+    }
+
+    // }}
+
+    // {{ Nullable: long
+    private Long number;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public Long getNullable() {
+        return number;
+    }
+
+    public void setNullable(final Long number) {
+        this.number = number;
+    }
+
+    // }}
+
+    // {{ NotPersisted: int  (nb: throws exception if called)
+    @NotPersisted
+    public int getNotPersisted() {
+        throw new org.apache.isis.applib.NonRecoverableException("unexpected call");
+    }
+    // }}
+
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirFkChildEntity.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirFkChildEntity.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirFkChildEntity.java
new file mode 100644
index 0000000..8015cbc
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirFkChildEntity.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.dom.refs;
+
+import javax.jdo.annotations.IdentityType;
+
+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(identityType=IdentityType.DATASTORE)
+@javax.jdo.annotations.Discriminator("UDFC")
+@javax.jdo.annotations.DatastoreIdentity(strategy=javax.jdo.annotations.IdGeneratorStrategy.IDENTITY)
+@ObjectType("UDFC")
+public class UnidirFkChildEntity extends AbstractDomainObject {
+    
+
+    // {{ Name  (title)
+    private String name;
+
+    @Title(sequence="1")
+    @MemberOrder(sequence = "1")
+    public String getName() {
+        return name;
+    }
+
+    public void setName(final String name) {
+        this.name = name;
+    }
+
+    // }}
+
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirFkParentEntity.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirFkParentEntity.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirFkParentEntity.java
new file mode 100644
index 0000000..f2be389
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirFkParentEntity.java
@@ -0,0 +1,101 @@
+/*
+ *  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.refs;
+
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import javax.jdo.annotations.IdentityType;
+
+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(identityType=IdentityType.DATASTORE)
+@javax.jdo.annotations.Discriminator("UDFP")
+@javax.jdo.annotations.DatastoreIdentity(strategy=javax.jdo.annotations.IdGeneratorStrategy.IDENTITY)
+@ObjectType("UDFP")
+public class UnidirFkParentEntity extends BaseEntity {
+
+    
+    // {{ Name (also title)
+    private String name;
+    
+    @Title
+    @MemberOrder(sequence = "1")
+    @Optional
+    public String getName() {
+        return name;
+    }
+
+    public void setName(final String name) {
+        this.name = name;
+    }
+
+    // }}
+
+
+    // {{ Children
+    private Set<UnidirFkChildEntity> children = new HashSet<UnidirFkChildEntity>();
+
+    public Set<UnidirFkChildEntity> getChildren() {
+        return children;
+    }
+
+    public void setChildren(final Set<UnidirFkChildEntity> children) {
+        this.children = children;
+    }
+    // }}
+
+
+    // {{ newChild (action)
+    public UnidirFkChildEntity newChild(final String name) {
+        final UnidirFkChildEntity childEntity = newTransientInstance(UnidirFkChildEntity.class);
+        childEntity.setName(name);
+        addChild(childEntity);
+        return childEntity;
+    }
+    // }}
+
+
+    // {{ removeChild (action)
+    public void addChild(UnidirFkChildEntity childEntity) {
+        this.getChildren().add(childEntity);
+        persistIfNotAlready(childEntity);
+    }
+    // }}
+
+    // {{ removeChild (action)
+    public UnidirFkParentEntity removeChild(final UnidirFkChildEntity childEntity) {
+        if (getChildren().contains(childEntity)) {
+            getChildren().remove(childEntity);
+        }
+        return this;
+    }
+
+    public List<UnidirFkChildEntity> choices0RemoveChild() {
+        return Arrays.asList(getChildren().toArray(new UnidirFkChildEntity[0]));
+    }
+    // }}
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirFkParentEntityRepository.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirFkParentEntityRepository.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirFkParentEntityRepository.java
new file mode 100644
index 0000000..5277df6
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirFkParentEntityRepository.java
@@ -0,0 +1,45 @@
+/*
+ *  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.refs;
+
+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("UnidirFkParentEntities")
+@ObjectType("UnidirFkParentEntities")
+@DomainService
+public class UnidirFkParentEntityRepository extends AbstractEntityRepository<UnidirFkParentEntity> {
+
+    public UnidirFkParentEntityRepository() {
+        super(UnidirFkParentEntity.class, "UnidirParentEntities");
+    }
+
+    @MemberOrder(sequence = "2")
+    public UnidirFkParentEntity newEntity(final String name) {
+        final UnidirFkParentEntity entity = newTransientInstance(UnidirFkParentEntity.class);
+        entity.setName(name);
+        persist(entity);
+        return entity;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirJoinChildEntity.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirJoinChildEntity.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirJoinChildEntity.java
new file mode 100644
index 0000000..6452ee6
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirJoinChildEntity.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.dom.refs;
+
+import javax.jdo.annotations.IdentityType;
+
+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(identityType=IdentityType.DATASTORE)
+@javax.jdo.annotations.Discriminator("UDJC")
+@javax.jdo.annotations.DatastoreIdentity(strategy=javax.jdo.annotations.IdGeneratorStrategy.IDENTITY)
+@ObjectType("UDJC")
+public class UnidirJoinChildEntity extends AbstractDomainObject {
+    
+
+    // {{ Name  (title)
+    private String name;
+
+    @Title(sequence="1")
+    @MemberOrder(sequence = "1")
+    public String getName() {
+        return name;
+    }
+
+    public void setName(final String name) {
+        this.name = name;
+    }
+
+    // }}
+
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirJoinParentEntity.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirJoinParentEntity.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirJoinParentEntity.java
new file mode 100644
index 0000000..3cf7dcc
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirJoinParentEntity.java
@@ -0,0 +1,103 @@
+/*
+ *  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.refs;
+
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import javax.jdo.annotations.IdentityType;
+import javax.jdo.annotations.Join;
+
+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(identityType=IdentityType.DATASTORE)
+@javax.jdo.annotations.Discriminator("UDJP")
+@javax.jdo.annotations.DatastoreIdentity(strategy=javax.jdo.annotations.IdGeneratorStrategy.IDENTITY)
+@ObjectType("UDJP")
+public class UnidirJoinParentEntity extends BaseEntity {
+
+    
+    // {{ Name (also title)
+    private String name;
+    
+    @Title
+    @MemberOrder(sequence = "1")
+    @Optional
+    public String getName() {
+        return name;
+    }
+
+    public void setName(final String name) {
+        this.name = name;
+    }
+
+    // }}
+
+
+    // {{ Children
+    @Join
+    private Set<UnidirJoinChildEntity> children = new HashSet<UnidirJoinChildEntity>();
+
+    public Set<UnidirJoinChildEntity> getChildren() {
+        return children;
+    }
+
+    public void setChildren(final Set<UnidirJoinChildEntity> children) {
+        this.children = children;
+    }
+    // }}
+
+
+    // {{ newChild (action)
+    public UnidirJoinChildEntity newChild(final String name) {
+        final UnidirJoinChildEntity childEntity = newTransientInstance(UnidirJoinChildEntity.class);
+        childEntity.setName(name);
+        addChild(childEntity);
+        return childEntity;
+    }
+    // }}
+
+
+    // {{ removeChild (action)
+    public void addChild(UnidirJoinChildEntity childEntity) {
+        this.getChildren().add(childEntity);
+        persistIfNotAlready(childEntity);
+    }
+    // }}
+
+    // {{ removeChild (action)
+    public UnidirJoinParentEntity removeChild(final UnidirJoinChildEntity childEntity) {
+        if (getChildren().contains(childEntity)) {
+            getChildren().remove(childEntity);
+        }
+        return this;
+    }
+
+    public List<UnidirFkChildEntity> choices0RemoveChild() {
+        return Arrays.asList(getChildren().toArray(new UnidirFkChildEntity[0]));
+    }
+    // }}
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirJoinParentEntityRepository.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirJoinParentEntityRepository.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirJoinParentEntityRepository.java
new file mode 100644
index 0000000..47da2d4
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirJoinParentEntityRepository.java
@@ -0,0 +1,45 @@
+/*
+ *  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.refs;
+
+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("UnidirJoinParentEntities")
+@ObjectType("UnidirJoinParentEntities")
+@DomainService
+public class UnidirJoinParentEntityRepository extends AbstractEntityRepository<UnidirJoinParentEntity> {
+
+    public UnidirJoinParentEntityRepository() {
+        super(UnidirJoinParentEntity.class, "UnidirJoinParentEntities");
+    }
+
+    @MemberOrder(sequence = "2")
+    public UnidirJoinParentEntity newEntity(final String name) {
+        final UnidirJoinParentEntity entity = newTransientInstance(UnidirJoinParentEntity.class);
+        entity.setName(name);
+        persist(entity);
+        return entity;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirReferencedEntity.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirReferencedEntity.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirReferencedEntity.java
new file mode 100644
index 0000000..9049cad
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirReferencedEntity.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.dom.refs;
+
+import javax.jdo.annotations.IdentityType;
+
+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(identityType=IdentityType.DATASTORE)
+@javax.jdo.annotations.Discriminator("UDRD")
+@javax.jdo.annotations.DatastoreIdentity(strategy=javax.jdo.annotations.IdGeneratorStrategy.IDENTITY)
+@ObjectType("UDRD")
+public class UnidirReferencedEntity extends AbstractDomainObject {
+    
+
+    // {{ Name  (title)
+    private String name;
+
+    @Title(sequence="1")
+    @MemberOrder(sequence = "1")
+    public String getName() {
+        return name;
+    }
+
+    public void setName(final String name) {
+        this.name = name;
+    }
+
+    // }}
+
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirReferencedEntityRepository.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirReferencedEntityRepository.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirReferencedEntityRepository.java
new file mode 100644
index 0000000..6decf98
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirReferencedEntityRepository.java
@@ -0,0 +1,45 @@
+/*
+ *  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.refs;
+
+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("UnidirReferencedEntities")
+@ObjectType("UnidirReferencedEntities")
+@DomainService
+public class UnidirReferencedEntityRepository extends AbstractEntityRepository<UnidirReferencedEntity> {
+
+    public UnidirReferencedEntityRepository() {
+        super(UnidirReferencedEntity.class, "UnidirReferencedEntities");
+    }
+
+    @MemberOrder(sequence = "2")
+    public UnidirReferencedEntity newEntity(final String name) {
+        final UnidirReferencedEntity entity = newTransientInstance(UnidirReferencedEntity.class);
+        entity.setName(name);
+        persist(entity);
+        return entity;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirReferencingEntity.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirReferencingEntity.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirReferencingEntity.java
new file mode 100644
index 0000000..170968f
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirReferencingEntity.java
@@ -0,0 +1,66 @@
+/*
+ *  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.refs;
+
+import javax.jdo.annotations.IdentityType;
+
+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(identityType=IdentityType.DATASTORE)
+@javax.jdo.annotations.Discriminator("UDRG")
+@javax.jdo.annotations.DatastoreIdentity(strategy=javax.jdo.annotations.IdGeneratorStrategy.IDENTITY)
+@ObjectType("UDRG")
+public class UnidirReferencingEntity extends BaseEntity {
+
+    
+    // {{ Name (also title)
+    private String name;
+    
+    @Title
+    @MemberOrder(sequence = "1")
+    @Optional
+    public String getName() {
+        return name;
+    }
+
+    public void setName(final String name) {
+        this.name = name;
+    }
+
+    // }}
+
+
+    // {{ Referenced (property)
+    public UnidirReferencedEntity referenced;
+
+    @MemberOrder(sequence = "1")
+    public UnidirReferencedEntity getReferenced() {
+        return referenced;
+    }
+
+    public void setReferenced(final UnidirReferencedEntity referenced) {
+        this.referenced = referenced;
+    }
+    // }}
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirReferencingEntityRepository.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirReferencingEntityRepository.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirReferencingEntityRepository.java
new file mode 100644
index 0000000..9100601
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/refs/UnidirReferencingEntityRepository.java
@@ -0,0 +1,45 @@
+/*
+ *  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.refs;
+
+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("UnidirReferencingEntities")
+@ObjectType("UnidirReferencingEntities")
+@DomainService
+public class UnidirReferencingEntityRepository extends AbstractEntityRepository<UnidirReferencingEntity> {
+
+    public UnidirReferencingEntityRepository() {
+        super(UnidirReferencingEntity.class, "UnidirReferencingEntities");
+    }
+
+    @MemberOrder(sequence = "2")
+    public UnidirReferencingEntity newEntity(final String name) {
+        final UnidirReferencingEntity entity = newTransientInstance(UnidirReferencingEntity.class);
+        entity.setName(name);
+        persist(entity);
+        return entity;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/ApplibValuedEntity.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/ApplibValuedEntity.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/ApplibValuedEntity.java
new file mode 100644
index 0000000..0206039
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/ApplibValuedEntity.java
@@ -0,0 +1,267 @@
+/*
+ *  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;
+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;
+
+@javax.jdo.annotations.PersistenceCapable
+@javax.jdo.annotations.Discriminator("APLV")
+@javax.jdo.annotations.Query(
+        name="jdkv_findByStringProperty", language="JDOQL",  
+        value="SELECT FROM org.apache.isis.tck.dom.scalars.ApplibValuedEntity WHERE stringProperty == :i")
+@ObjectType("APLV")
+public class ApplibValuedEntity extends AbstractDomainObject {
+
+    
+    // {{ StringProperty (also title, pk)
+    private String stringProperty;
+
+    @javax.jdo.annotations.PrimaryKey
+    @Title
+    @Optional
+    @MemberOrder(sequence = "1")
+    public String getStringProperty() {
+        return stringProperty;
+    }
+
+    public void setStringProperty(final String description) {
+        this.stringProperty = description;
+    }
+
+    public ApplibValuedEntity updateStringProperty(
+            @Optional final String description) {
+        setStringProperty(stringProperty);
+        return this;
+    }
+
+    // }}
+
+    
+    
+    // {{ DateProperty
+    @javax.jdo.annotations.Persistent
+    private Date dateProperty;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public Date getDateProperty() {
+        return dateProperty;
+    }
+
+    public void setDateProperty(final Date dateProperty) {
+        this.dateProperty = dateProperty;
+    }
+
+    public ApplibValuedEntity updateDateProperty(
+            @Optional final Date dateProperty) {
+        setDateProperty(dateProperty);
+        return this;
+    }
+
+    // }}
+
+    // {{ ColorProperty
+    @javax.jdo.annotations.NotPersistent
+    private Color colorProperty;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public Color getColorProperty() {
+        return colorProperty;
+    }
+
+    public void setColorProperty(final Color colorProperty) {
+        this.colorProperty = colorProperty;
+    }
+
+    public ApplibValuedEntity updateColorProperty(
+            @Optional final Color colorProperty) {
+        setColorProperty(colorProperty);
+        return this;
+    }
+
+    // }}
+
+    // {{ DateTimeProperty
+    @javax.jdo.annotations.NotPersistent
+    private DateTime dateTimeProperty;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public DateTime getDateTimeProperty() {
+        return dateTimeProperty;
+    }
+
+    public void setDateTimeProperty(final DateTime dateTimeProperty) {
+        this.dateTimeProperty = dateTimeProperty;
+    }
+
+    public ApplibValuedEntity updateDateTimeProperty(
+            @Optional final DateTime dateTimeProperty) {
+        setDateTimeProperty(dateTimeProperty);
+        return this;
+    }
+    // }}
+
+    // {{ ImageProperty
+    @javax.jdo.annotations.NotPersistent
+    private Image imageProperty;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public Image getImageProperty() {
+        return imageProperty;
+    }
+
+    public void setImageProperty(final Image imageProperty) {
+        this.imageProperty = imageProperty;
+    }
+
+    public ApplibValuedEntity updateImageProperty(
+            @Optional final Image imageProperty) {
+        setImageProperty(imageProperty);
+        return this;
+    }
+
+    // }}
+
+    // {{ MoneyProperty
+    @javax.jdo.annotations.NotPersistent
+    private Money moneyProperty;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public Money getMoneyProperty() {
+        return moneyProperty;
+    }
+
+    public void setMoneyProperty(final Money moneyProperty) {
+        this.moneyProperty = moneyProperty;
+    }
+
+    public ApplibValuedEntity updateMoneyProperty(
+            @Optional final Money moneyProperty) {
+        this.moneyProperty = moneyProperty;
+        return this;
+    }
+
+    // }}
+
+    // {{ PasswordProperty
+    @javax.jdo.annotations.NotPersistent
+    private Password passwordProperty;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public Password getPasswordProperty() {
+        return passwordProperty;
+    }
+
+    public void setPasswordProperty(final Password passwordProperty) {
+        this.passwordProperty = passwordProperty;
+    }
+
+    public ApplibValuedEntity updatePasswordProperty(
+            @Optional final Password passwordProperty) {
+        setPasswordProperty(passwordProperty);
+        return this;
+    }
+
+    // }}
+
+    // {{ PercentageProperty
+    @javax.jdo.annotations.NotPersistent
+    private Percentage percentageProperty;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public Percentage getPercentageProperty() {
+        return percentageProperty;
+    }
+
+    public void setPercentageProperty(final Percentage percentageProperty) {
+        this.percentageProperty = percentageProperty;
+    }
+
+    public ApplibValuedEntity updatePercentageProperty(
+            @Optional final Percentage percentageProperty) {
+        setPercentageProperty(percentageProperty);
+        return this;
+    }
+
+    // }}
+
+    // {{ TimeProperty
+    @javax.jdo.annotations.NotPersistent
+    private Time timeProperty;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public Time getTimeProperty() {
+        return timeProperty;
+    }
+
+    public void setTimeProperty(final Time timeProperty) {
+        this.timeProperty = timeProperty;
+    }
+
+    public ApplibValuedEntity updateTimeProperty(
+            @Optional final Time timeProperty) {
+        setTimeProperty(timeProperty);
+        return this;
+    }
+
+    // }}
+
+    // {{ TimeStampProperty
+    @javax.jdo.annotations.NotPersistent
+    private TimeStamp timeStampProperty;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public TimeStamp getTimeStampProperty() {
+        return timeStampProperty;
+    }
+
+    public void setTimestampProperty(final TimeStamp timestampProperty) {
+        this.timeStampProperty = timestampProperty;
+    }
+
+    public ApplibValuedEntity updateTimestampProperty(
+            @Optional final TimeStamp timestampProperty) {
+        setTimestampProperty(timestampProperty);
+        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/ApplibValuedEntityRepository.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/ApplibValuedEntityRepository.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/ApplibValuedEntityRepository.java
new file mode 100644
index 0000000..79c982d
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/ApplibValuedEntityRepository.java
@@ -0,0 +1,45 @@
+/*
+ *  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("ApplibValuedEntities")
+@ObjectType("ApplibValuedEntities")
+@DomainService
+public class ApplibValuedEntityRepository extends AbstractEntityRepository<ApplibValuedEntity> {
+
+    public ApplibValuedEntityRepository() {
+        super(ApplibValuedEntity.class, "ApplibValuedEntities");
+    }
+    
+    /**
+     * Required to discover the ApplibValuedEntity type.
+     */
+    @Override
+    @MemberOrder(sequence = "2")
+    public ApplibValuedEntity 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/scalars/AutoAssignedEntity.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/AutoAssignedEntity.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/AutoAssignedEntity.java
new file mode 100644
index 0000000..46be149
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/AutoAssignedEntity.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.scalars;
+
+import javax.jdo.annotations.IdentityType;
+
+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(identityType=IdentityType.DATASTORE)
+@javax.jdo.annotations.Discriminator("AUAS")
+@javax.jdo.annotations.DatastoreIdentity(strategy=javax.jdo.annotations.IdGeneratorStrategy.IDENTITY)
+@ObjectType("AUAS")
+public class AutoAssignedEntity extends AbstractDomainObject {
+
+    
+    // {{ StringProperty (used in title)
+    private String stringProperty;
+
+    @Title(sequence="2")
+    @Optional
+    @MemberOrder(sequence = "1")
+    public String getStringProperty() {
+        return stringProperty;
+    }
+
+    public void setStringProperty(final String description) {
+        this.stringProperty = description;
+    }
+
+    // }}
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/AutoAssignedEntityRepository.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/AutoAssignedEntityRepository.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/AutoAssignedEntityRepository.java
new file mode 100644
index 0000000..9de9e87
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/AutoAssignedEntityRepository.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.MemberOrder;
+import org.apache.isis.applib.annotation.Named;
+import org.apache.isis.applib.annotation.ObjectType;
+import org.apache.isis.core.tck.dom.AbstractEntityRepository;
+
+@Named("AutoAssignedEntities")
+@ObjectType("AutoAssignedEntities")
+public class AutoAssignedEntityRepository extends AbstractEntityRepository<AutoAssignedEntity> {
+
+    public AutoAssignedEntityRepository() {
+        super(AutoAssignedEntity.class, "AutoAssignedEntities");
+    }
+    
+    /**
+     * Required to discover the AutoAssignedEntity type.
+     */
+    @Override
+    @MemberOrder(sequence = "2")
+    public AutoAssignedEntity 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/scalars/DateTimeValuedEntity.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/DateTimeValuedEntity.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/DateTimeValuedEntity.java
new file mode 100644
index 0000000..1985e16
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/DateTimeValuedEntity.java
@@ -0,0 +1,171 @@
+/*
+ *  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;
+
+/**
+ * TODO: delete ... OVERLAPS WITH ApplibValuedEntity, JdkValuedEntity, JodaValuedEntity
+ *
+ * @deprecated
+ */
+@javax.jdo.annotations.PersistenceCapable
+@javax.jdo.annotations.Discriminator("APLV")
+@javax.jdo.annotations.Query(
+        name="dtmv_findByStringProperty", language="JDOQL",  
+        value="SELECT FROM org.apache.isis.tck.dom.scalars.DateTimeValuedEntity WHERE stringProperty == :i")
+@ObjectType("APLV")
+@Deprecated
+public class DateTimeValuedEntity extends AbstractDomainObject {
+
+    
+    // {{ StringProperty (also title, pk)
+    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;
+    }
+    // }}
+
+    
+    // {{ JavaUtilDate (property)
+    private java.util.Date javaUtilDate;
+
+    @Optional
+    @MemberOrder(name="dates", sequence = "1")
+    public java.util.Date getJavaUtilDate() {
+        return javaUtilDate;
+    }
+
+    public void setJavaUtilDate(final java.util.Date javaUtilDate) {
+        this.javaUtilDate = javaUtilDate;
+    }
+    // }}
+
+    // {{ JavaSqlDate (property)
+    private java.sql.Date javaSqlDate;
+
+    @javax.jdo.annotations.Persistent
+    @Optional
+    @MemberOrder(name="dates", sequence = "1")
+    public java.sql.Date getJavaSqlDate() {
+        return javaSqlDate;
+    }
+
+    public void setJavaSqlDate(final java.sql.Date javaSqlDate) {
+        this.javaSqlDate = javaSqlDate;
+    }
+
+    public DateTimeValuedEntity updateJavaSqlDate(
+            @Optional final java.sql.Date javaSqlDate) {
+        setJavaSqlDate(javaSqlDate);
+        return this;
+    }
+    // }}
+
+    // {{ ApplibDate (property)
+    private org.apache.isis.applib.value.Date applibDate;
+
+    @javax.jdo.annotations.Persistent
+    @Optional
+    @MemberOrder(name="dates", sequence = "1")
+    public org.apache.isis.applib.value.Date getApplibDate() {
+        return applibDate;
+    }
+
+    public void setApplibDate(final org.apache.isis.applib.value.Date applibDate) {
+        this.applibDate = applibDate;
+    }
+    // }}
+
+    // {{ ApplibDateTime (property)
+    private org.apache.isis.applib.value.DateTime applibDateTime;
+
+    @javax.jdo.annotations.Persistent
+    @Optional
+    @MemberOrder(name="dates", sequence = "1")
+    public org.apache.isis.applib.value.DateTime getApplibDateTime() {
+        return applibDateTime;
+    }
+
+    public void setApplibDateTime(final org.apache.isis.applib.value.DateTime applibDateTime) {
+        this.applibDateTime = applibDateTime;
+    }
+    // }}
+
+    // {{ JodaLocalDateTime (property)
+    private org.joda.time.LocalDateTime jodaLocalDateTime;
+
+    @javax.jdo.annotations.Persistent
+    @Optional
+    @MemberOrder(name="dates", sequence = "1")
+    public org.joda.time.LocalDateTime getJodaLocalDateTime() {
+        return jodaLocalDateTime;
+    }
+    public void setJodaLocalDateTime(final org.joda.time.LocalDateTime jodaLocalDateTime) {
+        this.jodaLocalDateTime = jodaLocalDateTime;
+    }
+    // }}
+
+    // {{ JodaLocalDate (property)
+    private org.joda.time.LocalDate jodaLocalDate;
+
+    @javax.jdo.annotations.Persistent
+    @Optional
+    @MemberOrder(name="dates", sequence = "1")
+    public org.joda.time.LocalDate getJodaLocalDate() {
+        return jodaLocalDate;
+    }
+
+    public void setJodaLocalDate(final org.joda.time.LocalDate jodaLocalDate) {
+        this.jodaLocalDate = jodaLocalDate;
+    }
+    // }}
+
+
+    // {{ JodaDateTime (property)
+    private org.joda.time.DateTime jodaDateTime;
+
+    @javax.jdo.annotations.Persistent
+    @Optional
+    @MemberOrder(name="dates", sequence = "1")
+    public org.joda.time.DateTime getJodaDateTime() {
+        return jodaDateTime;
+    }
+
+    public void setJodaDateTime(final org.joda.time.DateTime jodaDateTime) {
+        this.jodaDateTime = jodaDateTime;
+    }
+    // }}
+    
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/DateTimeValuedEntityRepository.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/DateTimeValuedEntityRepository.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/DateTimeValuedEntityRepository.java
new file mode 100644
index 0000000..6f4c0b4
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/DateTimeValuedEntityRepository.java
@@ -0,0 +1,44 @@
+/*
+ *  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.MemberOrder;
+import org.apache.isis.applib.annotation.Named;
+import org.apache.isis.applib.annotation.ObjectType;
+import org.apache.isis.core.tck.dom.AbstractEntityRepository;
+
+@Named("DateTimeValuedEntities")
+@ObjectType("DateTimeValuedEntities")
+public class DateTimeValuedEntityRepository extends AbstractEntityRepository<DateTimeValuedEntity> {
+
+    public DateTimeValuedEntityRepository() {
+        super(DateTimeValuedEntity.class, "DateTimeValuedEntities");
+    }
+
+    /**
+     * Required to discover the DateTimeValueEntity type.
+     */
+    @Override
+    @MemberOrder(sequence = "2")
+    public DateTimeValuedEntity 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/scalars/JdkValuedEntity.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/JdkValuedEntity.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/JdkValuedEntity.java
new file mode 100644
index 0000000..43cd3fe
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/JdkValuedEntity.java
@@ -0,0 +1,201 @@
+/*
+ *  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 java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.Date;
+import javax.validation.constraints.Digits;
+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("JDKV")
+@javax.jdo.annotations.Query(
+        name="jdkv_findByStringProperty", language="JDOQL",  
+        value="SELECT FROM org.apache.isis.tck.dom.scalars.JdkValuedEntity WHERE stringProperty == :i")
+@ObjectType("JDKV")
+public class JdkValuedEntity extends AbstractDomainObject {
+
+    // {{ StringProperty (also title, pk)
+    private String stringProperty;
+
+    @javax.jdo.annotations.PrimaryKey
+    @Title
+    @Optional
+    @MemberOrder(sequence = "1")
+    public String getStringProperty() {
+        return stringProperty;
+    }
+
+    public void setStringProperty(final String description) {
+        this.stringProperty = description;
+    }
+
+    // }}
+
+    // {{ JavaUtilDateProperty
+    private Date javaUtilDateProperty;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public Date getJavaUtilDateProperty() {
+        return javaUtilDateProperty;
+    }
+
+    public void setJavaUtilDateProperty(final Date javaUtilDateProperty) {
+        this.javaUtilDateProperty = javaUtilDateProperty;
+    }
+
+    // }}
+
+    // {{ JavaSqlDateProperty
+    private java.sql.Date javaSqlDateProperty;
+
+    @javax.jdo.annotations.Persistent() // since not persistent by default
+    @Optional
+    @MemberOrder(sequence = "1")
+    public java.sql.Date getJavaSqlDateProperty() {
+        return javaSqlDateProperty;
+    }
+
+    public void setJavaSqlDateProperty(final java.sql.Date javaSqlDateProperty) {
+        this.javaSqlDateProperty = javaSqlDateProperty;
+    }
+
+    // }}
+
+    // {{ JavaSqlTimeProperty (property)
+    @javax.jdo.annotations.Persistent() // since not persistent by default
+    private java.sql.Time javaSqlTimeProperty;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public java.sql.Time getJavaSqlTimeProperty() {
+        return javaSqlTimeProperty;
+    }
+
+    public void setJavaSqlTimeProperty(final java.sql.Time javaSqlTimeProperty) {
+        this.javaSqlTimeProperty = javaSqlTimeProperty;
+    }
+    // }}
+
+
+    
+    // {{ JavaSqlTimestampProperty
+    @javax.jdo.annotations.Persistent() // since not persistent by default
+    private java.sql.Timestamp javaSqlTimestampProperty;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public java.sql.Timestamp getJavaSqlTimestampProperty() {
+        return javaSqlTimestampProperty;
+    }
+
+    public void setJavaSqlTimestampProperty(final java.sql.Timestamp javaSqlTimestampProperty) {
+        this.javaSqlTimestampProperty = javaSqlTimestampProperty;
+    }
+
+    // }}
+
+    // {{ BigIntegerProperty (to hold values that are larger than a long)
+    private BigInteger bigIntegerProperty;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public BigInteger getBigIntegerProperty() {
+        return bigIntegerProperty;
+    }
+
+    public void setBigIntegerProperty(final BigInteger bigIntegerProperty) {
+        this.bigIntegerProperty = bigIntegerProperty;
+    }
+
+    // }}
+
+    // {{ BigIntegerProperty2 (to hold values that can also fit into a long)
+    private BigInteger bigIntegerProperty2;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public BigInteger getBigIntegerProperty2() {
+        return bigIntegerProperty2;
+    }
+
+    public void setBigIntegerProperty2(final BigInteger bigIntegerProperty2) {
+        this.bigIntegerProperty2 = bigIntegerProperty2;
+    }
+
+    // }}
+
+    // {{ BigDecimalProperty (to hold values that are larger than a double)
+    private BigDecimal bigDecimalProperty;
+
+    @Digits(integer=20,fraction = 10) // corresponds to big-decimal(30,10)
+    @Optional
+    @MemberOrder(sequence = "1")
+    public BigDecimal getBigDecimalProperty() {
+        return bigDecimalProperty;
+    }
+
+    public void setBigDecimalProperty(final BigDecimal bigDecimalProperty) {
+        this.bigDecimalProperty = bigDecimalProperty;
+    }
+
+    // }}
+
+
+    // {{ BigDecimalProperty (to hold values that are larger than a double)
+    private BigDecimal bigDecimalProperty2;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public BigDecimal getBigDecimalProperty2() {
+        return bigDecimalProperty2;
+    }
+
+    public void setBigDecimalProperty2(final BigDecimal bigDecimalProperty2) {
+        this.bigDecimalProperty2 = bigDecimalProperty2;
+    }
+
+    // }}
+
+
+    // {{ MyEnum (property)
+    private MyEnum myEnum;
+
+    @javax.jdo.annotations.Persistent
+    @Optional
+    @MemberOrder(sequence = "1")
+    public MyEnum getMyEnum() {
+        return myEnum;
+    }
+
+    public void setMyEnum(final MyEnum myEnum) {
+        this.myEnum = myEnum;
+    }
+    // }}
+
+
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/21e2882a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/JdkValuedEntityRepository.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/JdkValuedEntityRepository.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/JdkValuedEntityRepository.java
new file mode 100644
index 0000000..9a0624e
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/JdkValuedEntityRepository.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("JdkValuedEntities")
+@ObjectType("JdkValuedEntities")
+@DomainService
+public class JdkValuedEntityRepository extends AbstractEntityRepository<JdkValuedEntity> {
+
+    public JdkValuedEntityRepository() {
+        super(JdkValuedEntity.class, "JdkValuedEntities");
+    }
+
+    /**
+     * Required to discover the JdkValueEntity type.
+     */
+    @Override
+    @MemberOrder(sequence = "2")
+    public JdkValuedEntity 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/scalars/JodaValuedEntity.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/JodaValuedEntity.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/JodaValuedEntity.java
new file mode 100644
index 0000000..cc0e81c
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/JodaValuedEntity.java
@@ -0,0 +1,126 @@
+/*
+ *  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.joda.time.DateTime;
+import org.joda.time.LocalDate;
+import org.joda.time.LocalDateTime;
+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("JODA")
+@javax.jdo.annotations.Query(
+        name="joda_findByStringProperty", language="JDOQL",  
+        value="SELECT FROM org.apache.isis.tck.dom.scalars.JdkValuedEntity WHERE stringProperty == :i")
+@ObjectType("JODA")
+public class JodaValuedEntity extends AbstractDomainObject {
+
+    // {{ StringProperty (also title, pk)
+    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 JodaValuedEntity updateStringProperty(
+            @Optional final String stringProperty) {
+        setStringProperty(stringProperty);
+        return this;
+    }
+
+    // }}
+
+    // {{ LocalDateProperty
+    private LocalDate localDateProperty;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public LocalDate getLocalDateProperty() {
+        return localDateProperty;
+    }
+
+    public void setLocalDateProperty(final LocalDate localDateProperty) {
+        this.localDateProperty = localDateProperty;
+    }
+
+    public JodaValuedEntity updateLocalDateProperty(
+            @Optional final LocalDate localDateProperty) {
+        setLocalDateProperty(localDateProperty);
+        return this;
+    }
+    // }}
+
+
+    // {{ LocalDateTimeProperty
+    private LocalDateTime localDateTimeProperty;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public LocalDateTime getLocalDateTimeProperty() {
+        return localDateTimeProperty;
+    }
+
+    public void setLocalDateTimeProperty(final LocalDateTime localDateTimeProperty) {
+        this.localDateTimeProperty = localDateTimeProperty;
+    }
+
+    public JodaValuedEntity updateLocalDateTimeProperty(
+            @Optional final LocalDateTime localDateTimeProperty) {
+        setLocalDateTimeProperty(localDateTimeProperty);
+        return this;
+    }
+    // }}
+    
+    
+    // {{ DateTimeProperty
+    private DateTime dateTimeProperty;
+    
+    @Optional
+    @MemberOrder(sequence = "1")
+    public DateTime getDateTimeProperty() {
+        return dateTimeProperty;
+    }
+    
+    public void setDateTimeProperty(final DateTime dateTimeProperty) {
+        this.dateTimeProperty = dateTimeProperty;
+    }
+
+    public JodaValuedEntity updateDateTimeProperty(
+            @Optional final DateTime dateTimeProperty) {
+        setDateTimeProperty(dateTimeProperty);
+        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/JodaValuedEntityRepository.java
----------------------------------------------------------------------
diff --git a/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/JodaValuedEntityRepository.java b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/JodaValuedEntityRepository.java
new file mode 100644
index 0000000..8f46899
--- /dev/null
+++ b/tck/tck-dom/src/main/java/org/apache/isis/core/tck/dom/scalars/JodaValuedEntityRepository.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("JodaValuedEntities")
+@ObjectType("JodaValuedEntities")
+@DomainService
+public class JodaValuedEntityRepository extends AbstractEntityRepository<JodaValuedEntity> {
+
+    public JodaValuedEntityRepository() {
+        super(JodaValuedEntity.class, "JodaValuedEntities");
+    }
+
+    /**
+     * Required to discover the JodaValueEntity type.
+     */
+    @Override
+    @MemberOrder(sequence = "2")
+    public JodaValuedEntity newEntity() {
+        return super.newEntity();
+    }
+
+}