You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2012/12/06 15:29:39 UTC

[15/32] ISIS-188: factored out isis-parent pom

http://git-wip-us.apache.org/repos/asf/isis/blob/cb83d4c7/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/scalars/WrapperValuedEntity.java
----------------------------------------------------------------------
diff --git a/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/scalars/WrapperValuedEntity.java b/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/scalars/WrapperValuedEntity.java
new file mode 100644
index 0000000..87fd362
--- /dev/null
+++ b/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/scalars/WrapperValuedEntity.java
@@ -0,0 +1,174 @@
+/*
+ *  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.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 description) {
+        this.stringProperty = description;
+    }
+
+    // }}
+
+    // {{ BooleanProperty
+    private Boolean booleanProperty;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public Boolean getBooleanProperty() {
+        return booleanProperty;
+    }
+
+    public void setBooleanProperty(final Boolean booleanProperty) {
+        this.booleanProperty = booleanProperty;
+    }
+
+    // }}
+
+    // {{ ByteProperty
+    private Byte byteProperty;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public Byte getByteProperty() {
+        return byteProperty;
+    }
+
+    public void setByteProperty(final Byte byteWProperty) {
+        this.byteProperty = byteWProperty;
+    }
+
+    // }}
+
+    // {{ ShortProperty
+    private Short shortProperty;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public Short getShortProperty() {
+        return shortProperty;
+    }
+
+    public void setShortProperty(final Short shortProperty) {
+        this.shortProperty = shortProperty;
+    }
+
+    // }}
+
+    // {{ IntegerProperty
+    private Integer integerProperty;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public Integer getIntegerProperty() {
+        return integerProperty;
+    }
+
+    public void setIntegerProperty(final Integer integerProperty) {
+        this.integerProperty = integerProperty;
+    }
+
+    // }}
+
+    // {{ LongProperty
+    private Long longProperty;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public Long getLongProperty() {
+        return longProperty;
+    }
+
+    public void setLongProperty(final Long longProperty) {
+        this.longProperty = longProperty;
+    }
+
+    // }}
+
+    // {{ FloatProperty
+    private Float floatProperty;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public Float getFloatProperty() {
+        return floatProperty;
+    }
+
+    public void setFloatProperty(final Float floatWProperty) {
+        this.floatProperty = floatWProperty;
+    }
+
+    // }}
+
+    // {{ DoubleProperty
+    private Double doubleProperty;
+
+    @Optional
+    @MemberOrder(sequence = "1")
+    public Double getDoubleProperty() {
+        return doubleProperty;
+    }
+
+    public void setDoubleProperty(final Double doubleWProperty) {
+        this.doubleProperty = doubleWProperty;
+    }
+    // }}
+
+    // {{ 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;
+    }
+    // }}
+
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/cb83d4c7/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/scalars/WrapperValuedEntityRepository.java
----------------------------------------------------------------------
diff --git a/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/scalars/WrapperValuedEntityRepository.java b/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/scalars/WrapperValuedEntityRepository.java
new file mode 100644
index 0000000..762c3ea
--- /dev/null
+++ b/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/scalars/WrapperValuedEntityRepository.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.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.tck.dom.AbstractEntityRepository;
+
+@Named("WrapperValues")
+@ObjectType("WrapperValues")
+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/cb83d4c7/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/sqlos/SqlDomainObjectRepository.java
----------------------------------------------------------------------
diff --git a/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/sqlos/SqlDomainObjectRepository.java b/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/sqlos/SqlDomainObjectRepository.java
new file mode 100644
index 0000000..f01bd01
--- /dev/null
+++ b/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/sqlos/SqlDomainObjectRepository.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.tck.dom.sqlos;
+
+import java.util.List;
+
+import org.apache.isis.applib.AbstractFactoryAndRepository;
+import org.apache.isis.tck.dom.poly.Empty;
+import org.apache.isis.tck.dom.poly.ReferencingPolyTypesEntity;
+import org.apache.isis.tck.dom.poly.SelfReferencingEntity;
+import org.apache.isis.tck.dom.poly.StringBaseEntitySub;
+import org.apache.isis.tck.dom.poly.StringBaseEntitySubThree;
+import org.apache.isis.tck.dom.poly.StringBaseEntitySubTwo;
+import org.apache.isis.tck.dom.poly.Stringable;
+import org.apache.isis.tck.dom.poly.StringableEntityWithOwnProperties;
+import org.apache.isis.tck.dom.poly.StringableEntityWithOwnProperty;
+import org.apache.isis.tck.dom.scalars.PrimitiveValuedEntity;
+import org.apache.isis.tck.dom.sqlos.data.SimpleClass;
+import org.apache.isis.tck.dom.sqlos.data.SimpleClassTwo;
+import org.apache.isis.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);
+    }
+
+    // }}
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/cb83d4c7/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/sqlos/data/SimpleClass.java
----------------------------------------------------------------------
diff --git a/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/sqlos/data/SimpleClass.java b/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/sqlos/data/SimpleClass.java
new file mode 100644
index 0000000..c392e51
--- /dev/null
+++ b/framework/core/tck/tck-dom/src/main/java/org/apache/isis/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.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/cb83d4c7/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/sqlos/data/SimpleClassTwo.java
----------------------------------------------------------------------
diff --git a/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/sqlos/data/SimpleClassTwo.java b/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/sqlos/data/SimpleClassTwo.java
new file mode 100644
index 0000000..e22a5a8
--- /dev/null
+++ b/framework/core/tck/tck-dom/src/main/java/org/apache/isis/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.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/cb83d4c7/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/sqlos/data/SqlDataClass.java
----------------------------------------------------------------------
diff --git a/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/sqlos/data/SqlDataClass.java b/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/sqlos/data/SqlDataClass.java
new file mode 100644
index 0000000..30196ef
--- /dev/null
+++ b/framework/core/tck/tck-dom/src/main/java/org/apache/isis/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.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.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/cb83d4c7/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/viewmodels/SimpleViewModel.java
----------------------------------------------------------------------
diff --git a/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/viewmodels/SimpleViewModel.java b/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/viewmodels/SimpleViewModel.java
new file mode 100644
index 0000000..ff54c45
--- /dev/null
+++ b/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/viewmodels/SimpleViewModel.java
@@ -0,0 +1,51 @@
+/*
+ *  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.tck.dom.viewmodels;
+
+import org.apache.isis.applib.AbstractDomainObject;
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.ViewModel;
+import org.apache.isis.applib.util.TitleBuffer;
+
+@ViewModel
+public class SimpleViewModel extends AbstractDomainObject {
+
+    // {{ title
+    public String title() {
+        final TitleBuffer buf = new TitleBuffer();
+        buf.append(name);
+        return buf.toString();
+    }
+    // }}
+    
+    // {{ Name
+    private String name;
+
+    @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/cb83d4c7/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/xmlos/Person.java
----------------------------------------------------------------------
diff --git a/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/xmlos/Person.java b/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/xmlos/Person.java
new file mode 100644
index 0000000..9a77ea3
--- /dev/null
+++ b/framework/core/tck/tck-dom/src/main/java/org/apache/isis/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.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/cb83d4c7/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/xmlos/Role.java
----------------------------------------------------------------------
diff --git a/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/xmlos/Role.java b/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/xmlos/Role.java
new file mode 100644
index 0000000..c9d7ee3
--- /dev/null
+++ b/framework/core/tck/tck-dom/src/main/java/org/apache/isis/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.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/cb83d4c7/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/xmlos/Team.java
----------------------------------------------------------------------
diff --git a/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/xmlos/Team.java b/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/xmlos/Team.java
new file mode 100644
index 0000000..8132784
--- /dev/null
+++ b/framework/core/tck/tck-dom/src/main/java/org/apache/isis/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.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/cb83d4c7/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/xmlos/TeamDomainRepository.java
----------------------------------------------------------------------
diff --git a/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/xmlos/TeamDomainRepository.java b/framework/core/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/xmlos/TeamDomainRepository.java
new file mode 100644
index 0000000..2001573
--- /dev/null
+++ b/framework/core/tck/tck-dom/src/main/java/org/apache/isis/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.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/cb83d4c7/framework/core/tck/tck-dom/src/main/resources/images/ToDoItem.gif
----------------------------------------------------------------------
diff --git a/framework/core/tck/tck-dom/src/main/resources/images/ToDoItem.gif b/framework/core/tck/tck-dom/src/main/resources/images/ToDoItem.gif
new file mode 100644
index 0000000..cc536e1
Binary files /dev/null and b/framework/core/tck/tck-dom/src/main/resources/images/ToDoItem.gif differ

http://git-wip-us.apache.org/repos/asf/isis/blob/cb83d4c7/framework/core/tck/tck-fixture/pom.xml
----------------------------------------------------------------------
diff --git a/framework/core/tck/tck-fixture/pom.xml b/framework/core/tck/tck-fixture/pom.xml
new file mode 100644
index 0000000..47b087e
--- /dev/null
+++ b/framework/core/tck/tck-fixture/pom.xml
@@ -0,0 +1,39 @@
+<?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>tck</artifactId>
+        <version>0.3.1-SNAPSHOT</version>
+    </parent>
+
+	<artifactId>tck-fixture</artifactId>
+	<name>TCK Fixtures</name>
+
+	<dependencies>
+		<dependency>
+            <groupId>org.apache.isis.tck</groupId>
+			<artifactId>tck-dom</artifactId>
+            <version>0.3.1-SNAPSHOT</version>
+		</dependency>
+	</dependencies>
+
+</project>

http://git-wip-us.apache.org/repos/asf/isis/blob/cb83d4c7/framework/core/tck/tck-fixture/src/main/java/org/apache/isis/tck/fixture/LogonAsSvenFixture.java
----------------------------------------------------------------------
diff --git a/framework/core/tck/tck-fixture/src/main/java/org/apache/isis/tck/fixture/LogonAsSvenFixture.java b/framework/core/tck/tck-fixture/src/main/java/org/apache/isis/tck/fixture/LogonAsSvenFixture.java
new file mode 100644
index 0000000..a1d5016
--- /dev/null
+++ b/framework/core/tck/tck-fixture/src/main/java/org/apache/isis/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.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/cb83d4c7/framework/core/tck/tck-fixture/src/main/java/org/apache/isis/tck/fixture/defaults/WithDefaultsEntityFixture.java
----------------------------------------------------------------------
diff --git a/framework/core/tck/tck-fixture/src/main/java/org/apache/isis/tck/fixture/defaults/WithDefaultsEntityFixture.java b/framework/core/tck/tck-fixture/src/main/java/org/apache/isis/tck/fixture/defaults/WithDefaultsEntityFixture.java
new file mode 100644
index 0000000..c963f1a
--- /dev/null
+++ b/framework/core/tck/tck-fixture/src/main/java/org/apache/isis/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.tck.fixture.defaults;
+
+import org.apache.isis.applib.fixtures.AbstractFixture;
+import org.apache.isis.tck.dom.defaults.WithDefaultsEntity;
+import org.apache.isis.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/cb83d4c7/framework/core/tck/tck-fixture/src/main/java/org/apache/isis/tck/fixture/refs/ParentEntitiesFixture.java
----------------------------------------------------------------------
diff --git a/framework/core/tck/tck-fixture/src/main/java/org/apache/isis/tck/fixture/refs/ParentEntitiesFixture.java b/framework/core/tck/tck-fixture/src/main/java/org/apache/isis/tck/fixture/refs/ParentEntitiesFixture.java
new file mode 100644
index 0000000..cf1741b
--- /dev/null
+++ b/framework/core/tck/tck-fixture/src/main/java/org/apache/isis/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.tck.fixture.refs;
+
+import org.apache.isis.applib.fixtures.AbstractFixture;
+import org.apache.isis.tck.dom.refs.ParentEntityRepository;
+import org.apache.isis.tck.dom.refs.ParentEntity;
+
+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/cb83d4c7/framework/core/tck/tck-fixture/src/main/java/org/apache/isis/tck/fixture/scalars/ApplibValuedEntityFixture.java
----------------------------------------------------------------------
diff --git a/framework/core/tck/tck-fixture/src/main/java/org/apache/isis/tck/fixture/scalars/ApplibValuedEntityFixture.java b/framework/core/tck/tck-fixture/src/main/java/org/apache/isis/tck/fixture/scalars/ApplibValuedEntityFixture.java
new file mode 100644
index 0000000..01adf4b
--- /dev/null
+++ b/framework/core/tck/tck-fixture/src/main/java/org/apache/isis/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.tck.fixture.scalars;
+
+import org.apache.isis.applib.fixtures.AbstractFixture;
+import org.apache.isis.tck.dom.scalars.ApplibValuedEntity;
+import org.apache.isis.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/cb83d4c7/framework/core/tck/tck-fixture/src/main/java/org/apache/isis/tck/fixture/scalars/JdkValuedEntityFixture.java
----------------------------------------------------------------------
diff --git a/framework/core/tck/tck-fixture/src/main/java/org/apache/isis/tck/fixture/scalars/JdkValuedEntityFixture.java b/framework/core/tck/tck-fixture/src/main/java/org/apache/isis/tck/fixture/scalars/JdkValuedEntityFixture.java
new file mode 100644
index 0000000..8d02b91
--- /dev/null
+++ b/framework/core/tck/tck-fixture/src/main/java/org/apache/isis/tck/fixture/scalars/JdkValuedEntityFixture.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.tck.fixture.scalars;
+
+import org.apache.isis.applib.fixtures.AbstractFixture;
+import org.apache.isis.tck.dom.scalars.JdkValuedEntity;
+import org.apache.isis.tck.dom.scalars.JdkValuedEntityRepository;
+
+public class JdkValuedEntityFixture extends AbstractFixture {
+
+    @Override
+    public void install() {
+        createEntity();
+        createEntity();
+        createEntity();
+        createEntity();
+        createEntity();
+    }
+
+    private JdkValuedEntity createEntity() {
+        return jdkValuesEntityRepository.newEntity();
+    }
+
+    private JdkValuedEntityRepository jdkValuesEntityRepository;
+
+    public void setJdkValuesEntityRepository(final JdkValuedEntityRepository jdkValuesEntityRepository) {
+        this.jdkValuesEntityRepository = jdkValuesEntityRepository;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/cb83d4c7/framework/core/tck/tck-fixture/src/main/java/org/apache/isis/tck/fixture/scalars/PrimitiveValuedEntityFixture.java
----------------------------------------------------------------------
diff --git a/framework/core/tck/tck-fixture/src/main/java/org/apache/isis/tck/fixture/scalars/PrimitiveValuedEntityFixture.java b/framework/core/tck/tck-fixture/src/main/java/org/apache/isis/tck/fixture/scalars/PrimitiveValuedEntityFixture.java
new file mode 100644
index 0000000..94b75f3
--- /dev/null
+++ b/framework/core/tck/tck-fixture/src/main/java/org/apache/isis/tck/fixture/scalars/PrimitiveValuedEntityFixture.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.tck.fixture.scalars;
+
+import org.apache.isis.applib.fixtures.AbstractFixture;
+import org.apache.isis.tck.dom.scalars.PrimitiveValuedEntity;
+import org.apache.isis.tck.dom.scalars.PrimitiveValuedEntityRepository;
+
+public class PrimitiveValuedEntityFixture extends AbstractFixture {
+
+    @Override
+    public void install() {
+        createEntity();
+        createEntity();
+        createEntity();
+        createEntity();
+        createEntity();
+    }
+
+    private PrimitiveValuedEntity createEntity() {
+        return primitiveValuesEntityRepository.newEntity();
+    }
+
+    private PrimitiveValuedEntityRepository primitiveValuesEntityRepository;
+
+    public void setPrimitiveValuesEntityRepository(final PrimitiveValuedEntityRepository primitiveValuesEntityRepository) {
+        this.primitiveValuesEntityRepository = primitiveValuesEntityRepository;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/cb83d4c7/framework/core/tck/tck-fixture/src/main/java/org/apache/isis/tck/fixture/scalars/WrapperValuedEntityFixture.java
----------------------------------------------------------------------
diff --git a/framework/core/tck/tck-fixture/src/main/java/org/apache/isis/tck/fixture/scalars/WrapperValuedEntityFixture.java b/framework/core/tck/tck-fixture/src/main/java/org/apache/isis/tck/fixture/scalars/WrapperValuedEntityFixture.java
new file mode 100644
index 0000000..4ca73ba
--- /dev/null
+++ b/framework/core/tck/tck-fixture/src/main/java/org/apache/isis/tck/fixture/scalars/WrapperValuedEntityFixture.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.tck.fixture.scalars;
+
+import org.apache.isis.applib.fixtures.AbstractFixture;
+import org.apache.isis.tck.dom.scalars.WrapperValuedEntity;
+import org.apache.isis.tck.dom.scalars.WrapperValuedEntityRepository;
+
+public class WrapperValuedEntityFixture extends AbstractFixture {
+
+    @Override
+    public void install() {
+        createEntity();
+        createEntity();
+        createEntity();
+        createEntity();
+        createEntity();
+    }
+
+    private WrapperValuedEntity createEntity() {
+        return wrapperValuesEntityRepository.newEntity();
+    }
+
+    private WrapperValuedEntityRepository wrapperValuesEntityRepository;
+
+    public void setPrimitiveValuesEntityRepository(final WrapperValuedEntityRepository wrapperValuesEntityRepository) {
+        this.wrapperValuesEntityRepository = wrapperValuesEntityRepository;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/cb83d4c7/framework/example/archetype/quickstart/pom.xml
----------------------------------------------------------------------
diff --git a/framework/example/archetype/quickstart/pom.xml b/framework/example/archetype/quickstart/pom.xml
new file mode 100644
index 0000000..f34fe43
--- /dev/null
+++ b/framework/example/archetype/quickstart/pom.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.apache.isis</groupId>
+		<artifactId>isis-parent</artifactId>
+		<version>0.3.1-SNAPSHOT</version>
+		<relativePath>../../../isis-parent/pom.xml</relativePath>
+	</parent>
+
+	<artifactId>quickstart-archetype</artifactId>
+	<packaging>maven-archetype</packaging>
+
+	<name>Apache Isis Quickstart Archetype</name>
+
+	<build>
+		<extensions>
+			<extension>
+				<groupId>org.apache.maven.archetype</groupId>
+				<artifactId>archetype-packaging</artifactId>
+				<version>2.1</version>
+			</extension>
+		</extensions>
+
+		<pluginManagement>
+			<plugins>
+				<plugin>
+					<artifactId>maven-archetype-plugin</artifactId>
+					<version>2.1</version>
+				</plugin>
+			</plugins>
+		</pluginManagement>
+	</build>
+
+
+</project>

http://git-wip-us.apache.org/repos/asf/isis/blob/cb83d4c7/framework/example/archetype/quickstart/src/main/appended-resources/supplemental-models.xml
----------------------------------------------------------------------
diff --git a/framework/example/archetype/quickstart/src/main/appended-resources/supplemental-models.xml b/framework/example/archetype/quickstart/src/main/appended-resources/supplemental-models.xml
new file mode 100644
index 0000000..837b4e9
--- /dev/null
+++ b/framework/example/archetype/quickstart/src/main/appended-resources/supplemental-models.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<supplementalDataModels 
+  xmlns="http://maven.apache.org/supplemental-model/1.0.0"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/supplemental-model/1.0.0 
+            http://maven.apache.org/xsd/supplemental-model-1.0.0.xsd">
+
+</supplementalDataModels>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/cb83d4c7/framework/example/archetype/quickstart/src/main/resources/META-INF/maven/archetype-metadata.xml
----------------------------------------------------------------------
diff --git a/framework/example/archetype/quickstart/src/main/resources/META-INF/maven/archetype-metadata.xml b/framework/example/archetype/quickstart/src/main/resources/META-INF/maven/archetype-metadata.xml
new file mode 100644
index 0000000..be2b8a4
--- /dev/null
+++ b/framework/example/archetype/quickstart/src/main/resources/META-INF/maven/archetype-metadata.xml
@@ -0,0 +1,339 @@
+<?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.
+-->
+<archetype-descriptor xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0" name="quickstart" xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <modules>
+    <module id="${rootArtifactId}-dom" dir="dom" name="${rootArtifactId}-dom">
+      <fileSets>
+        <fileSet filtered="true" encoding="UTF-8">
+          <directory>src/main/java</directory>
+          <includes>
+            <include>**/*.java</include>
+          </includes>
+        </fileSet>
+        <fileSet encoding="UTF-8">
+          <directory>src/main/resources</directory>
+          <includes>
+            <include>**/*.png</include>
+            <include>**/*.gif</include>
+          </includes>
+        </fileSet>
+        <fileSet filtered="true" encoding="UTF-8">
+          <directory/>
+          <includes>
+            <include>log4j.properties</include>
+          </includes>
+        </fileSet>
+      </fileSets>
+    </module>
+    <module id="${rootArtifactId}-fixture" dir="fixture" name="${rootArtifactId}-fixture">
+      <fileSets>
+        <fileSet filtered="true" encoding="UTF-8">
+          <directory>src/main/java</directory>
+          <includes>
+            <include>**/*.java</include>
+          </includes>
+        </fileSet>
+      </fileSets>
+    </module>
+    <module id="${rootArtifactId}-objstore-jdo" dir="objstore-jdo" name="${rootArtifactId}-objstore-jdo">
+      <fileSets>
+        <fileSet filtered="true" encoding="UTF-8">
+          <directory>src/main/java</directory>
+          <includes>
+            <include>**/*.java</include>
+          </includes>
+        </fileSet>
+        <fileSet encoding="UTF-8">
+          <directory>lib</directory>
+          <includes>
+            <include>**/*.gitignore</include>
+          </includes>
+        </fileSet>
+      </fileSets>
+    </module>
+    <module id="${rootArtifactId}-viewer-dnd" dir="viewer-dnd" name="${rootArtifactId}-viewer-dnd">
+      <fileSets>
+        <fileSet filtered="true" encoding="UTF-8">
+          <directory>config</directory>
+          <includes>
+            <include>**/*.properties</include>
+          </includes>
+        </fileSet>
+        <fileSet filtered="true" encoding="UTF-8">
+          <directory>ide/eclipse</directory>
+          <includes>
+            <include>**/*.launch</include>
+          </includes>
+        </fileSet>
+      </fileSets>
+    </module>
+    <module id="${rootArtifactId}-viewer-html" dir="viewer-html" name="${rootArtifactId}-viewer-html">
+      <fileSets>
+        <fileSet filtered="true" encoding="UTF-8">
+          <directory>src/main/webapp</directory>
+          <includes>
+            <include>**/*.xml</include>
+            <include>**/*.properties</include>
+          </includes>
+        </fileSet>
+        <fileSet encoding="UTF-8">
+          <directory>src/main/jettyconsole</directory>
+          <includes>
+            <include>**/*.png</include>
+            <include>**/*.pdn</include>
+          </includes>
+        </fileSet>
+        <fileSet encoding="UTF-8">
+          <directory>src/main/webapp</directory>
+          <includes>
+            <include>**/*.passwords</include>
+            <include>**/*.allow</include>
+            <include>**/*.png</include>
+            <include>**/*.css</include>
+          </includes>
+        </fileSet>
+        <fileSet encoding="UTF-8">
+          <directory>src/main/resources</directory>
+          <includes>
+            <include>**/*.png</include>
+          </includes>
+        </fileSet>
+        <fileSet filtered="true" encoding="UTF-8">
+          <directory>hsql-db</directory>
+          <includes>
+            <include>**/*.properties</include>
+          </includes>
+        </fileSet>
+        <fileSet encoding="UTF-8">
+          <directory>lib</directory>
+          <includes>
+            <include>**/*.gitignore</include>
+          </includes>
+        </fileSet>
+        <fileSet filtered="true" encoding="UTF-8">
+          <directory>ide/eclipse</directory>
+          <includes>
+            <include>**/*.launch</include>
+          </includes>
+        </fileSet>
+        <fileSet encoding="UTF-8">
+          <directory>hsql-db</directory>
+          <includes>
+            <include>**/*.lck</include>
+            <include>**/*.script</include>
+            <include>**/*.log</include>
+          </includes>
+        </fileSet>
+      </fileSets>
+    </module>
+    <module id="${rootArtifactId}-viewer-restfulobjects" dir="viewer-restfulobjects" name="${rootArtifactId}-viewer-restfulobjects">
+      <fileSets>
+        <fileSet filtered="true" encoding="UTF-8">
+          <directory>src/main/webapp</directory>
+          <includes>
+            <include>**/*.xml</include>
+            <include>**/*.html</include>
+            <include>**/*.properties</include>
+          </includes>
+        </fileSet>
+        <fileSet encoding="UTF-8">
+          <directory>src/main/jettyconsole</directory>
+          <includes>
+            <include>**/*.png</include>
+            <include>**/*.pdn</include>
+          </includes>
+        </fileSet>
+        <fileSet encoding="UTF-8">
+          <directory>src/main/webapp</directory>
+          <includes>
+            <include>**/*.passwords</include>
+            <include>**/*.allow</include>
+            <include>**/*.png</include>
+            <include>**/*.js</include>
+            <include>**/*.css</include>
+          </includes>
+        </fileSet>
+        <fileSet encoding="UTF-8">
+          <directory>src/main/resources</directory>
+          <includes>
+            <include>**/*.png</include>
+          </includes>
+        </fileSet>
+        <fileSet encoding="UTF-8">
+          <directory>lib</directory>
+          <includes>
+            <include>**/*.gitignore</include>
+          </includes>
+        </fileSet>
+        <fileSet filtered="true" encoding="UTF-8">
+          <directory>ide/eclipse</directory>
+          <includes>
+            <include>**/*.launch</include>
+          </includes>
+        </fileSet>
+      </fileSets>
+    </module>
+    <module id="${rootArtifactId}-viewer-scimpi" dir="viewer-scimpi" name="${rootArtifactId}-viewer-scimpi">
+      <fileSets>
+        <fileSet filtered="true" encoding="UTF-8">
+          <directory>src/main/webapp</directory>
+          <includes>
+            <include>**/*.xml</include>
+            <include>**/*.properties</include>
+          </includes>
+        </fileSet>
+        <fileSet encoding="UTF-8">
+          <directory>src/main/jettyconsole</directory>
+          <includes>
+            <include>**/*.png</include>
+            <include>**/*.pdn</include>
+          </includes>
+        </fileSet>
+        <fileSet encoding="UTF-8">
+          <directory>src/main/webapp</directory>
+          <includes>
+            <include>**/*.passwords</include>
+            <include>**/*.allow</include>
+            <include>**/*.png</include>
+            <include>**/*.shtml</include>
+            <include>**/*.css</include>
+          </includes>
+        </fileSet>
+        <fileSet encoding="UTF-8">
+          <directory>src/main/resources</directory>
+          <includes>
+            <include>**/*.png</include>
+          </includes>
+        </fileSet>
+        <fileSet encoding="UTF-8">
+          <directory>lib</directory>
+          <includes>
+            <include>**/*.gitignore</include>
+          </includes>
+        </fileSet>
+        <fileSet filtered="true" encoding="UTF-8">
+          <directory>ide/eclipse</directory>
+          <includes>
+            <include>**/*.launch</include>
+          </includes>
+        </fileSet>
+      </fileSets>
+    </module>
+    <module id="${rootArtifactId}-viewer-wicket" dir="viewer-wicket" name="${rootArtifactId}-viewer-wicket">
+      <fileSets>
+        <fileSet filtered="true" encoding="UTF-8">
+          <directory>src/main/java</directory>
+          <includes>
+            <include>**/*.java</include>
+          </includes>
+        </fileSet>
+        <fileSet filtered="true" encoding="UTF-8">
+          <directory>src/main/webapp</directory>
+          <includes>
+            <include>**/*.xml</include>
+            <include>**/*.properties</include>
+          </includes>
+        </fileSet>
+        <fileSet filtered="true" encoding="UTF-8">
+          <directory>src/main/resources</directory>
+          <includes>
+            <include>**/*.html</include>
+          </includes>
+        </fileSet>
+        <fileSet encoding="UTF-8">
+          <directory>src/main/jettyconsole</directory>
+          <includes>
+            <include>**/*.png</include>
+            <include>**/*.pdn</include>
+          </includes>
+        </fileSet>
+        <fileSet encoding="UTF-8">
+          <directory>src/main/webapp</directory>
+          <includes>
+            <include>**/*.passwords</include>
+            <include>**/*.allow</include>
+            <include>**/*.png</include>
+            <include>**/*.js</include>
+            <include>**/*.pdn</include>
+            <include>**/*.css</include>
+          </includes>
+        </fileSet>
+        <fileSet encoding="UTF-8">
+          <directory>src/main/resources</directory>
+          <includes>
+            <include>**/*.png</include>
+          </includes>
+        </fileSet>
+        <fileSet encoding="UTF-8">
+          <directory>lib</directory>
+          <includes>
+            <include>**/*.gitignore</include>
+          </includes>
+        </fileSet>
+        <fileSet filtered="true" encoding="UTF-8">
+          <directory>ide/eclipse</directory>
+          <includes>
+            <include>**/*.launch</include>
+          </includes>
+        </fileSet>
+      </fileSets>
+    </module>
+    <module id="${rootArtifactId}-tests-junit" dir="tests-junit" name="${rootArtifactId}-tests-junit">
+      <fileSets>
+        <fileSet filtered="true" encoding="UTF-8">
+          <directory>src/test/java</directory>
+          <includes>
+            <include>**/*.java</include>
+          </includes>
+        </fileSet>
+        <fileSet filtered="true" encoding="UTF-8">
+          <directory/>
+          <includes>
+            <include>isis.properties</include>
+          </includes>
+        </fileSet>
+      </fileSets>
+    </module>
+    <module id="${rootArtifactId}-tests-bdd" dir="tests-bdd" name="${rootArtifactId}-tests-bdd">
+      <fileSets>
+        <fileSet filtered="true" encoding="UTF-8">
+          <directory>src/test/java</directory>
+          <includes>
+            <include>**/*.java</include>
+          </includes>
+        </fileSet>
+        <fileSet filtered="true" encoding="UTF-8">
+          <directory>src/test/resources</directory>
+          <includes>
+            <include>**/*.html</include>
+          </includes>
+        </fileSet>
+        <fileSet encoding="UTF-8">
+          <directory>src/test/resources</directory>
+          <includes>
+            <include>**/*.dtd</include>
+            <include>**/*.ent</include>
+            <include>**/*.css</include>
+          </includes>
+        </fileSet>
+      </fileSets>
+    </module>
+  </modules>
+</archetype-descriptor>

http://git-wip-us.apache.org/repos/asf/isis/blob/cb83d4c7/framework/example/archetype/quickstart/src/main/resources/archetype-resources/dom/log4j.properties
----------------------------------------------------------------------
diff --git a/framework/example/archetype/quickstart/src/main/resources/archetype-resources/dom/log4j.properties b/framework/example/archetype/quickstart/src/main/resources/archetype-resources/dom/log4j.properties
new file mode 100644
index 0000000..43ee48c
--- /dev/null
+++ b/framework/example/archetype/quickstart/src/main/resources/archetype-resources/dom/log4j.properties
@@ -0,0 +1,27 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+${symbol_pound} LOG4J Configuration
+${symbol_pound} ===================
+
+${symbol_pound} Basic logging goes to "datanucleus.log"
+log4j.appender.A1=org.apache.log4j.FileAppender
+log4j.appender.A1.File=datanucleus.log
+log4j.appender.A1.layout=org.apache.log4j.PatternLayout
+log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss,SSS} (%t) %-5p [%c] - %m%n
+${symbol_pound}log4j.appender.A1.Threshold=INFO
+
+${symbol_pound} Categories
+${symbol_pound} Each category can be set to a "level", and to direct to an appender
+
+${symbol_pound} Default to DEBUG level for all DataNucleus categories
+log4j.logger.DataNucleus = DEBUG, A1
+
+log4j.category.com.mchange.v2.c3p0=INFO, A1
+log4j.category.com.mchange.v2.resourcepool=INFO, A1
+log4j.category.org.logicalcobwebs.proxool=INFO,A1
+
+
+${symbol_pound} Hbase libs logging
+log4j.category.org.apache.hadoop=INFO,A1
+log4j.category.org.apache.zookeeper=INFO,A1
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/cb83d4c7/framework/example/archetype/quickstart/src/main/resources/archetype-resources/dom/pom.xml
----------------------------------------------------------------------
diff --git a/framework/example/archetype/quickstart/src/main/resources/archetype-resources/dom/pom.xml b/framework/example/archetype/quickstart/src/main/resources/archetype-resources/dom/pom.xml
new file mode 100644
index 0000000..6fe6115
--- /dev/null
+++ b/framework/example/archetype/quickstart/src/main/resources/archetype-resources/dom/pom.xml
@@ -0,0 +1,156 @@
+<?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>${groupId}</groupId>
+    	<artifactId>${rootArtifactId}</artifactId>
+		<version>${version}</version>
+	</parent>
+
+	<artifactId>${artifactId}</artifactId>
+	<name>Quickstart DOM</name>
+
+	<build>
+		<plugins>
+            <plugin>
+                <groupId>org.datanucleus</groupId>
+                <artifactId>maven-datanucleus-plugin</artifactId>
+                <version>3.1.1</version>
+                <configuration>
+                	<fork>false</fork>
+                    <log4jConfiguration>${basedir}/log4j.properties</log4jConfiguration>
+                    <verbose>true</verbose>
+                    <props>${basedir}/datanucleus.properties</props>
+                </configuration>
+                <executions>
+                    <execution>
+                        <phase>compile</phase>
+                        <goals>
+                            <goal>enhance</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+		</plugins>
+		<pluginManagement>
+			<plugins>
+				<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
+				<plugin>
+					<groupId>org.eclipse.m2e</groupId>
+					<artifactId>lifecycle-mapping</artifactId>
+					<version>1.0.0</version>
+					<configuration>
+						<lifecycleMappingMetadata>
+							<pluginExecutions>
+								<pluginExecution>
+									<pluginExecutionFilter>
+										<groupId>org.datanucleus</groupId>
+										<artifactId>maven-datanucleus-plugin</artifactId>
+										<versionRange>[3.0.2,)</versionRange>
+										<goals>
+											<goal>enhance</goal>
+										</goals>
+									</pluginExecutionFilter>
+									<action>
+										<ignore></ignore>
+									</action>
+								</pluginExecution>
+							</pluginExecutions>
+						</lifecycleMappingMetadata>
+					</configuration>
+				</plugin>
+			</plugins>
+		</pluginManagement>
+	</build>
+
+
+	<dependencyManagement>
+		<dependencies>
+			<!-- for DataNucleus, see below -->
+			<dependency>
+	            <groupId>org.apache.isis.runtimes.dflt.objectstores</groupId>
+				<artifactId>jdo</artifactId>
+				<version>0.3.1-SNAPSHOT</version>
+				<type>pom</type>
+				<scope>import</scope>						
+			</dependency>
+		</dependencies>
+	</dependencyManagement>	
+
+	
+	<dependencies>
+		<dependency>
+			<groupId>org.apache.isis</groupId>
+			<artifactId>applib</artifactId>
+		</dependency>
+
+		<dependency>
+            <groupId>org.apache.isis.runtimes.dflt.objectstores</groupId>
+			<artifactId>jdo-applib</artifactId>
+		</dependency>
+
+		<dependency>
+			<groupId>org.apache.isis.viewer</groupId>
+			<artifactId>wicket-applib</artifactId>
+		</dependency>
+
+
+		<!-- DataNucleus (horrid, but needed to run the enhancer)-->
+        <dependency>
+            <groupId>javax.jdo</groupId>
+            <artifactId>jdo-api</artifactId>
+            <exclusions>
+              <exclusion>
+                <!-- use geronimo-jta_1.1_spec instead -->
+                <groupId>javax.transaction</groupId>
+                <artifactId>jta</artifactId>
+              </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.datanucleus</groupId>
+            <artifactId>datanucleus-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.datanucleus</groupId>
+            <artifactId>datanucleus-enhancer</artifactId>
+            <!-- 
+            <exclusions>
+              <exclusion>
+                <groupId>org.ow2.asm</groupId>
+                <artifactId>asm</artifactId>
+              </exclusion>
+            </exclusions>
+             -->
+        </dependency>
+        <dependency>
+            <groupId>org.datanucleus</groupId>
+            <artifactId>datanucleus-api-jdo</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>org.apache.geronimo.specs</groupId>
+          <artifactId>geronimo-jta_1.1_spec</artifactId>
+        </dependency>
+        
+
+	</dependencies>
+    
+</project>

http://git-wip-us.apache.org/repos/asf/isis/blob/cb83d4c7/framework/example/archetype/quickstart/src/main/resources/archetype-resources/dom/src/main/java/dom/audit/AuditEntry.java
----------------------------------------------------------------------
diff --git a/framework/example/archetype/quickstart/src/main/resources/archetype-resources/dom/src/main/java/dom/audit/AuditEntry.java b/framework/example/archetype/quickstart/src/main/resources/archetype-resources/dom/src/main/java/dom/audit/AuditEntry.java
new file mode 100644
index 0000000..dae5b00
--- /dev/null
+++ b/framework/example/archetype/quickstart/src/main/resources/archetype-resources/dom/src/main/java/dom/audit/AuditEntry.java
@@ -0,0 +1,136 @@
+/*
+ *  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.
+ */
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package dom.audit;
+
+import javax.jdo.annotations.IdGeneratorStrategy;
+import javax.jdo.annotations.IdentityType;
+
+import org.apache.isis.applib.annotation.Hidden;
+import org.apache.isis.applib.annotation.Immutable;
+import org.apache.isis.applib.annotation.MemberOrder;
+import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.applib.annotation.Title;
+import org.apache.isis.applib.bookmarks.Bookmark;
+import org.apache.isis.applib.bookmarks.BookmarkHolder;
+import org.apache.isis.applib.value.DateTime;
+
+@javax.jdo.annotations.PersistenceCapable(identityType=IdentityType.DATASTORE)
+@javax.jdo.annotations.DatastoreIdentity(strategy=IdGeneratorStrategy.UUIDHEX)
+@Immutable
+public class AuditEntry implements BookmarkHolder {
+
+    // {{ TimestampUtc (property)
+    private Long timestampEpoch;
+
+    @Hidden
+    public Long getTimestampEpoch() {
+        return timestampEpoch;
+    }
+
+    public void setTimestampEpoch(final Long timestampEpoch) {
+        this.timestampEpoch = timestampEpoch;
+    }
+    // }}
+    
+    // {{ Timestamp (property)
+    @Title(sequence="1")
+    @MemberOrder(sequence = "1")
+    public DateTime getTimestamp() {
+        return timestampEpoch != null? new DateTime(timestampEpoch): null;
+    }
+
+    // }}
+    
+    // {{ User (property)
+    private String user;
+
+    @MemberOrder(sequence = "2")
+    public String getUser() {
+        return user;
+    }
+
+    public void setUser(final String user) {
+        this.user = user;
+    }
+    // }}
+
+    // {{ ObjectType (property)
+    private String objectType;
+
+    @Title(sequence="3", prepend=":")
+    @MemberOrder(sequence = "3")
+    public String getObjectType() {
+        return objectType;
+    }
+
+    public void setObjectType(final String objectType) {
+        this.objectType = objectType;
+    }
+    // }}
+
+    // {{ Identifier (property)
+    private String identifier;
+
+    @MemberOrder(sequence = "4")
+    public String getIdentifier() {
+        return identifier;
+    }
+
+    public void setIdentifier(final String identifier) {
+        this.identifier = identifier;
+    }
+    // }}
+    
+    // {{ PreValue (property)
+    private String preValue;
+
+    @MemberOrder(sequence = "5")
+    public String getPreValue() {
+        return preValue;
+    }
+
+    public void setPreValue(final String preValue) {
+        this.preValue = preValue;
+    }
+    // }}
+
+    // {{ PostValue (property)
+    private String postValue;
+
+    @MemberOrder(sequence = "6")
+    public String getPostValue() {
+        return postValue;
+    }
+
+    public void setPostValue(final String postValue) {
+        this.postValue = postValue;
+    }
+    // }}
+
+    // {{ bookmark (action)
+    @Override
+    @Programmatic
+    public Bookmark bookmark() {
+        return new Bookmark(getObjectType(), getIdentifier());
+    }
+    // }}
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/cb83d4c7/framework/example/archetype/quickstart/src/main/resources/archetype-resources/dom/src/main/java/dom/audit/AuditServiceDemo.java
----------------------------------------------------------------------
diff --git a/framework/example/archetype/quickstart/src/main/resources/archetype-resources/dom/src/main/java/dom/audit/AuditServiceDemo.java b/framework/example/archetype/quickstart/src/main/resources/archetype-resources/dom/src/main/java/dom/audit/AuditServiceDemo.java
new file mode 100644
index 0000000..e51d517
--- /dev/null
+++ b/framework/example/archetype/quickstart/src/main/resources/archetype-resources/dom/src/main/java/dom/audit/AuditServiceDemo.java
@@ -0,0 +1,48 @@
+/*
+ *  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.
+ */
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package dom.audit;
+
+import java.util.List;
+
+import org.apache.isis.applib.AbstractFactoryAndRepository;
+import org.apache.isis.applib.annotation.Hidden;
+import org.apache.isis.runtimes.dflt.objectstores.jdo.applib.AuditService;
+
+public class AuditServiceDemo extends AbstractFactoryAndRepository  implements AuditService {
+    
+    public List<AuditEntry> list() {
+        return allInstances(AuditEntry.class);
+    }
+    
+    @Hidden
+    public void audit(String user, long currentTimestampEpoch, String objectType, String identifier, String preValue, String postValue) {
+        AuditEntry auditEntry = newTransientInstance(AuditEntry.class);
+        auditEntry.setTimestampEpoch(currentTimestampEpoch);
+        auditEntry.setUser(user);
+        auditEntry.setObjectType(objectType);
+        auditEntry.setIdentifier(identifier);
+        auditEntry.setPreValue(preValue);
+        auditEntry.setPostValue(postValue);
+        persist(auditEntry);
+    }
+
+}