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 2015/10/16 01:01:05 UTC

[1/7] isis git commit: ISIS-1211: update docs to describe use of no-arg constructor for domain events.

Repository: isis
Updated Branches:
  refs/heads/master 99c53f934 -> 3a2a54106


ISIS-1211: update docs to describe use of no-arg constructor for domain events.


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

Branch: refs/heads/master
Commit: 7825157d4a0db836f888b104ce4030e4138ff26e
Parents: 99c53f9
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Oct 15 13:18:11 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Oct 15 13:18:38 2015 +0100

----------------------------------------------------------------------
 .../src/main/asciidoc/guides/_cg_asciidoc.adoc  |  1 +
 .../main/asciidoc/guides/_cg_ide-templates.adoc |  5 +-
 .../guides/_rg_annotations_manpage-Action.adoc  | 21 ++----
 ..._annotations_manpage-Action_domainEvent.adoc | 18 ++++-
 .../_rg_annotations_manpage-Collection.adoc     | 27 ++++----
 ...rg_annotations_manpage-CollectionLayout.adoc |  7 ++
 ...otations_manpage-Collection_domainEvent.adoc | 20 ++++++
 .../_rg_annotations_manpage-MemberOrder.adoc    | 10 +++
 .../_rg_annotations_manpage-Property.adoc       |  9 +++
 .../_rg_annotations_manpage-PropertyLayout.adoc |  7 ++
 ...nnotations_manpage-Property_domainEvent.adoc | 14 ++++
 ...rg_services-api_manpage-EventBusService.adoc | 72 +++++++++++---------
 12 files changed, 148 insertions(+), 63 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/7825157d/adocs/documentation/src/main/asciidoc/guides/_cg_asciidoc.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_cg_asciidoc.adoc b/adocs/documentation/src/main/asciidoc/guides/_cg_asciidoc.adoc
index c6a40ab..b464a3a 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_cg_asciidoc.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_cg_asciidoc.adoc
@@ -14,6 +14,7 @@ The website and guides are created by running build tools (documented below) whi
 
 Publishing is performed by copying the generated HTML to a different git repository (link:https://git-wip-us.apache.org/repos/asf?p=isis-site.git[isis-site]).  This is synced by ASF infrastructure over to link:http://isis.apache.org[isis.apache.org].
 
+And to help write the Asciidoc text itself, we provide some xref:cg.adoc#_cg__cg_ide-templates[templates].
 
 
 == Where to find the Docs

http://git-wip-us.apache.org/repos/asf/isis/blob/7825157d/adocs/documentation/src/main/asciidoc/guides/_cg_ide-templates.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_cg_ide-templates.adoc b/adocs/documentation/src/main/asciidoc/guides/_cg_ide-templates.adoc
index 76f34ea..afdf0dd 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_cg_ide-templates.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_cg_ide-templates.adoc
@@ -7,13 +7,14 @@
 
 
 
-We provide IDE templates (for IntelliJ and Eclipse) for writing Apache Isis domain objects, and also for unit tests (JUnit and JMock).
+We provide IDE templates (for IntelliJ and Eclipse) for writing Apache Isis domain objects, and also for unit tests (JUnit and JMock).  We also provide them for IntelliJ for writing Asciidoc documentation (see also the xref:cg.adoc#_cg__cg_asciidoc-templates[appendix]).
+
 
 == Download
 
 The following table lists the templates available to download:
 
-[cols="1a,1a,1a,1a", options="header"]
+[cols="1a,1a,1a,1a,1a", options="header"]
 |===
 
 |Template

http://git-wip-us.apache.org/repos/asf/isis/blob/7825157d/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Action.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Action.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Action.adoc
index 13844d9..1470487 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Action.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Action.adoc
@@ -93,32 +93,25 @@ For example:
 [source,java]
 ----
 public class ToDoItem {
-    public static class CompletedEvent extends ActionDomainEvent<ToDoItem> {
-        private static final long serialVersionUID = 1L;
-        public CompletedEvent(
-                final ToDoItem source,
-                final Identifier identifier,
-                final Object... arguments) {
-            super("completed", source, identifier, arguments);
-        }
-    }
+    public static class CompletedEvent extends ActionDomainEvent<ToDoItem> { } // <1>
     @Action(
         command=CommandReification.ENABLED,
-        commandExecuteIn=CommandExecuteIn.FOREGROUND,          // <1>
-        commandPersistence=CommandPersistence.NOT_PERSISTED,   // <2>
+        commandExecuteIn=CommandExecuteIn.FOREGROUND,          // <2>
+        commandPersistence=CommandPersistence.NOT_PERSISTED,   // <3>
         domainEvent=CompletedEvent.class,
-        hidden = Where.NOWHERE,                                // <3>
-        invokeOn = InvokeOn.OBJECT_ONLY,                       // <4>
+        hidden = Where.NOWHERE,                                // <4>
+        invokeOn = InvokeOn.OBJECT_ONLY,                       // <5>
         publishing = Publishing.ENABLED,
         semantics = SemanticsOf.IDEMPOTENT
     )
     public ToDoItem completed() { ... }
 }
 ----
-<1> default value, so could be omitted
+<1> `1.10.0-SNAPSHOT`, can use no-arg constructor.
 <2> default value, so could be omitted
 <3> default value, so could be omitted
 <4> default value, so could be omitted
+<5> default value, so could be omitted
 
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7825157d/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Action_domainEvent.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Action_domainEvent.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Action_domainEvent.adoc
index b2a679c..6bbf130 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Action_domainEvent.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Action_domainEvent.adoc
@@ -46,16 +46,30 @@ public class ToDoItem {
     public ToDoItem completed() { ... }
 }
 ----
-<1> inherit from `ActionDomainEvent<T>` where `T` is the type of the domain object being interacted with
+<1> inherit from `ActionDomainEvent<T>` where `T` is the type of the domain object being interacted with.
 <2> constructor called reflectively by the framework
 <3> populated with the object being interacted with (the source of the event)
 <4> identifier of the collection
 <5> action argument(s)
 
-
 The benefit is that subscribers can be more targetted as to the events that they subscribe to.
 
 
+As of `1.10.0-SNAPSHOT` this can be simplified to just:
+
+[source,java]
+----
+public class ToDoItem {
+    public static class CompletedEvent extends ActionDomainEvent<ToDoItem> { }
+    @Action(domainEvent=CompletedEvent.class)
+    public ToDoItem completed() { ... }
+}
+----
+
+where the framework will initialize the domain event using setters rather than through the constructor.  This substantially reduces the boilerplate.
+
+
+
 
 
 == Subscribers

http://git-wip-us.apache.org/repos/asf/isis/blob/7825157d/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Collection.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Collection.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Collection.adoc
index 2186eab..f755c00 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Collection.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Collection.adoc
@@ -66,34 +66,33 @@ For example:
 ----
 public class ToDoItem {
     public static class DependenciesChangedEvent
-            extends CollectionDomainEvent<ToDoItem, ToDoItem> {
-        private static final long serialVersionUID = 1L;
-        public DependenciesChangedEvent(
-                ToDoItem source,
-                Identifier identifier,
-                Of of,
-                ToDoItem value) {
-            super(source, identifier, of, value);
-        }
-    }
+            extends CollectionDomainEvent<ToDoItem, ToDoItem> { } // <1>
     @Collection(
         domainEvent=DependenciesChangedEvent.class,
         editing = Editing.ENABLED,
-        hidden = Where.NOWHERE,                       // <1>
-        notPersisted = false,                         // <2>
-        typeOf = ToDoItem.class                       // <3>
+        hidden = Where.NOWHERE,                                   // <2>
+        notPersisted = false,                                     // <3>
+        typeOf = ToDoItem.class                                   // <4>
     )
     public SortedSet<ToDoItem> getDependencies() { ... }
     ...
 }
 ----
-<1> default value, so could be omitted
+<1> `1.10.0-SNAPSHOT`, can use no-arg constructor.
 <2> default value, so could be omitted
 <3> default value, so could be omitted
+<4> default value, so could be omitted
 
 
 
 
+[TIP]
+====
+The annotation is one of a handful (others including xref:rg.adoc#_rg_annotations_manpage-CollectionLayout[`@CollectionLayout`], xref:rg.adoc#_rg_annotations_manpage-Property[`@Property`] and xref:rg.adoc#_rg_annotations_manpage-PropertyLayout[`@PropertyLayout`]) that can also be applied to the field, rather than the getter method.  This is specifically
+so that boilerplate-busting tools such as link:https://projectlombok.org/[Project Lombok] can be used.
+====
+
+
 
 include::_rg_annotations_manpage-Collection_domainEvent.adoc[leveloffset=+1]
 include::_rg_annotations_manpage-Collection_editing.adoc[leveloffset=+1]

http://git-wip-us.apache.org/repos/asf/isis/blob/7825157d/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-CollectionLayout.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-CollectionLayout.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-CollectionLayout.adoc
index e1d0d27..1b46556 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-CollectionLayout.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-CollectionLayout.adoc
@@ -105,6 +105,13 @@ As an alternative to using the `@CollectionLayout` annotation, a dynamic layout
 
 
 
+[TIP]
+====
+The annotation is one of a handful (others including xref:rg.adoc#_rg_annotations_manpage-Collection[`@Collection`], xref:rg.adoc#_rg_annotations_manpage-Property[`@Property`] and xref:rg.adoc#_rg_annotations_manpage-PropertyLayout[`@PropertyLayout`]) that can also be applied to the field, rather than the getter method.  This is specifically
+so that boilerplate-busting tools such as link:https://projectlombok.org/[Project Lombok] can be used.
+====
+
+
 
 include::_rg_annotations_manpage-CollectionLayout_cssClass.adoc[leveloffset=+1]
 include::_rg_annotations_manpage-CollectionLayout_describedAs.adoc[leveloffset=+1]

http://git-wip-us.apache.org/repos/asf/isis/blob/7825157d/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Collection_domainEvent.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Collection_domainEvent.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Collection_domainEvent.adoc
index 76ceafa..96beabb 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Collection_domainEvent.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Collection_domainEvent.adoc
@@ -71,6 +71,26 @@ public class ToDoItem {
 The benefit is that subscribers can be more targetted as to the events that they subscribe to.
 
 
+As of `1.10.0-SNAPSHOT` this can be simplified to just:
+
+[source,java]
+----
+public class ToDoItem {
+    public static class DependenciesChangedEvent
+            extends CollectionDomainEvent<ToDoItem, ToDoItem> { }
+    @Collection(
+        domainEvent=DependenciesChangedEvent.class
+    )
+    public SortedSet<ToDoItem> getDependencies() { ... }
+    ...
+}
+----
+
+where the framework will initialize the domain event using setters rather than through the constructor.  This substantially reduces the boilerplate.
+
+
+
+
 
 == Subscribers
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7825157d/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-MemberOrder.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-MemberOrder.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-MemberOrder.adoc
index 5fe5462..6c1d5c2 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-MemberOrder.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-MemberOrder.adoc
@@ -23,3 +23,13 @@ Collections are always rendered in the "last" column.  This can appear either be
 ====
 As this is an important topic, there is a xref:rg.adoc#_rg_object-layout[separate chapter] that discussed object layout in full.
 ====
+
+
+[TIP]
+====
+The annotation is one of a handful (others including xref:rg.adoc#_rg_annotations_manpage-Collection[`@Collection`], xref:rg.adoc#_rg_annotations_manpage-CollectionLayout[`@CollectionLayout`], xref:rg.adoc#_rg_annotations_manpage-Property[`@Property`])
+ and xref:rg.adoc#_rg_annotations_manpage-PropertyLayout[`@PropertyLayout`] that can also be applied to the field, rather than the getter method.  This is specifically
+so that boilerplate-busting tools such as link:https://projectlombok.org/[Project Lombok] can be used.
+====
+
+

http://git-wip-us.apache.org/repos/asf/isis/blob/7825157d/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Property.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Property.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Property.adoc
index eeb4547..cf898e3 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Property.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Property.adoc
@@ -112,6 +112,15 @@ public class Customer {
 
 
 
+
+
+[TIP]
+====
+The annotation is one of a handful (others including xref:rg.adoc#_rg_annotations_manpage-Collection[`@Collection`], xref:rg.adoc#_rg_annotations_manpage-CollectionLayout[`@CollectionLayout`] and xref:rg.adoc#_rg_annotations_manpage-PropertyLayout[`@PropertyLayout`]) that can also be applied to the field, rather than the getter method.  This is specifically
+so that boilerplate-busting tools such as link:https://projectlombok.org/[Project Lombok] can be used.
+====
+
+
 include::_rg_annotations_manpage-Property_domainEvent.adoc[leveloffset=+1]
 include::_rg_annotations_manpage-Property_editing.adoc[leveloffset=+1]
 include::_rg_annotations_manpage-Property_hidden.adoc[leveloffset=+1]

http://git-wip-us.apache.org/repos/asf/isis/blob/7825157d/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-PropertyLayout.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-PropertyLayout.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-PropertyLayout.adoc
index 0904e6e..b61dd7f 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-PropertyLayout.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-PropertyLayout.adoc
@@ -119,6 +119,13 @@ As an alternative to using the `@PropertyLayout` annotation, a dynamic layout us
 
 
 
+[TIP]
+====
+The annotation is one of a handful (others including xref:rg.adoc#_rg_annotations_manpage-Collection[`@Collection`], xref:rg.adoc#_rg_annotations_manpage-CollectionLayout[`@CollectionLayout`] and xref:rg.adoc#_rg_annotations_manpage-Property[`@Property`]) that can also be applied to the field, rather than the getter method.  This is specifically
+so that boilerplate-busting tools such as link:https://projectlombok.org/[Project Lombok] can be used.
+====
+
+
 
 include::_rg_annotations_manpage-PropertyLayout_cssClass.adoc[leveloffset=+1]
 include::_rg_annotations_manpage-PropertyLayout_describedAs.adoc[leveloffset=+1]

http://git-wip-us.apache.org/repos/asf/isis/blob/7825157d/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Property_domainEvent.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Property_domainEvent.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Property_domainEvent.adoc
index 9e89bf9..b5c1bf7 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Property_domainEvent.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_annotations_manpage-Property_domainEvent.adoc
@@ -59,6 +59,20 @@ public class ToDoItem {
 The benefit is that subscribers can be more targetted as to the events that they subscribe to.
 
 
+As of `1.10.0-SNAPSHOT` this can be simplified to just:
+
+[source,java]
+----
+public class ToDoItem {
+    public static class DueByChangedEvent extends PropertyDomainEvent<ToDoItem, LocalDate> { }
+    @Property(domainEvent=ToDoItem.DueByChangedEvent)
+    public LocalDate getDueBy() { ... }
+    ...
+}
+----
+
+where the framework will initialize the domain event using setters rather than through the constructor.  This substantially reduces the boilerplate.
+
 
 
 == Subscribers

http://git-wip-us.apache.org/repos/asf/isis/blob/7825157d/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-EventBusService.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-EventBusService.adoc b/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-EventBusService.adoc
index bad2527..32fdd96 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-EventBusService.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_rg_services-api_manpage-EventBusService.adoc
@@ -178,63 +178,73 @@ package com.mycompany.modules.libmem;
 public static class LibMemModule {
     private LibMemModule() {}
     public abstract static class ActionDomainEvent<S>
-                extends org.apache.isis.applib.event.ActionDomainEvent<S> {
-        private static final long serialVersionUID = 1L;
-        public ActionDomainEvent(
-            final S source,
-            final Identifier identifier,
-            final Object... arguments) {
-            super(source, identifier, arguments);
-        }
-    }
-    ...         // <1>
+                extends org.apache.isis.applib.event.ActionDomainEvent<S> {} // <1>
+...                                                                          // <2>
 }
 ----
-<1> similar events for properties and collections should also be defined
+<1> as of 1.10.0-SNAPSHOT, can use the no-arg constructor
+<2> similar events for properties and collections should also be defined
 
 For the class-level we can define:
 
 [source,java]
 ----
 public static class LibraryMember {
-    public abstract static class ActionDomainEvent extends LibMemModule.ActionDomainEvent<LibraryMember> {
-        private static final long serialVersionUID = 1L;
-        public ActionDomainEvent(
-            final LibraryMember source,
-            final Identifier identifier,
-            final Object... arguments) {
-            super(source, identifier, arguments);
-        }
-    }
-    ...         // <1>
+    public abstract static class ActionDomainEvent
+            extends LibMemModule.ActionDomainEvent<LibraryMember> { }       // <1>
+    ...                                                                     // <2>
 }
 ----
-<1> similar events for properties and collections should also be defined
+<1> as of 1.10.0-SNAPSHOT, can use the no-arg constructor
+<2> similar events for properties and collections should also be defined
 
 and finally at the action level we can define:
 
 [source,java]
 ----
 public class LibraryMember {
-    ...
-    public static class LeaveEvent extends LibraryMember.ActionDomainEvent {
-        private static final long serialVersionUID = 1L;
-        public PlaceOrderEvent(
-            final Customer source,
-            final Identifier identifier,
-            final Object... arguments) {
-        super(source, identifier, arguments);
-        }
+    public static class LeaveEvent
+            extends LibraryMember.ActionDomainEvent { } // <1>
     }
     @Action(domainEvent=LeaveEvent.class)
     public void leave() { ... }
     ...
 }
 ----
+<1> as of 1.10.0-SNAPSHOT, can use the no-arg constructor
 
 The subscriber can subscribe either to the general superclass (as before), or to any of the classes in the hierarchy.
 
 
+=== Variation (for contributing services)
+
+A slight variation on this is to not fix the generic parameter at the class level, ie:
+
+[source,java]
+----
+public static class LibraryMember {
+    public abstract static class ActionDomainEvent<S>
+            extends LibMemModule.ActionDomainEvent<S> { }
+    ...
+}
+----
+
+and instead parameterize down at the action level:
+
+[source,java]
+----
+public class LibraryMember {
+    public static class LeaveEvent
+            extends LibraryMember.ActionDomainEvent<LibraryMember> { } // <1>
+    }
+    @Action(domainEvent=LeaveEvent.class)
+    public void leave() { ... }
+    ...
+}
+----
+
+This then allows for other classes - in particular domain services contributing members - to also inherit from the class-level domain events.
+
 
 
 


[5/7] isis git commit: ISIS-1194: adding new quote to carousel for website. Also commenting out link to demo app while it is broken"

Posted by da...@apache.org.
ISIS-1194: adding new quote to carousel for website.  Also commenting out link to demo app while it is broken"


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

Branch: refs/heads/master
Commit: 199880c14f8f27a550c4988186cee893c7a7ca37
Parents: acb1fe0
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Oct 15 23:30:27 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Oct 15 23:30:27 2015 +0100

----------------------------------------------------------------------
 adocs/documentation/src/main/asciidoc/documentation.adoc |  3 ++-
 adocs/documentation/src/main/asciidoc/index.html         | 11 +++++++++++
 2 files changed, 13 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/199880c1/adocs/documentation/src/main/asciidoc/documentation.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/documentation.adoc b/adocs/documentation/src/main/asciidoc/documentation.adoc
index 829ed57..c6c093a 100644
--- a/adocs/documentation/src/main/asciidoc/documentation.adoc
+++ b/adocs/documentation/src/main/asciidoc/documentation.adoc
@@ -34,7 +34,8 @@ pass:[<br/>]
 
 |*Learning More*
 
-* link:http://isisdemo.mmyco.co.uk/[Online demo] (todoapp)
+// * link:http://isisdemo.mmyco.co.uk/[Online demo] (todoapp)
+
 * link:./screencasts.html[Screencasts] image:{_imagesdir}tv_show-25.png[width="25px" link="screencasts.html"]
 * link:./guides/tg.html[Tutorials]
 

http://git-wip-us.apache.org/repos/asf/isis/blob/199880c1/adocs/documentation/src/main/asciidoc/index.html
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/index.html b/adocs/documentation/src/main/asciidoc/index.html
index 006a3b3..e462eb9 100644
--- a/adocs/documentation/src/main/asciidoc/index.html
+++ b/adocs/documentation/src/main/asciidoc/index.html
@@ -425,6 +425,17 @@
                                 <blockquote>
                                     <div class="row">
                                         <div class="large-12 medium-12">
+                                            <p>Apache Isis' focus on the business domain improves communication between our end-users, architects and developers.  Having a better application in a fraction of the time and cost is something we highly appreciate.</p>
+                                            <small>Cesar Lugo</small>
+                                        </div>
+                                    </div>
+                                </blockquote>
+                            </div>
+
+                            <div>
+                                <blockquote>
+                                    <div class="row">
+                                        <div class="large-12 medium-12">
                                             <p>I like the guidance Apache Isis gives me for structuring code along the lines of Domain Driven Design. My first web application in plain Java without writing a single line of DDL or HTML/*Script.</p>
                                             <small>Joerg Rade</small>
                                         </div>


[6/7] isis git commit: ISIS-1213: mixin() method for DomainObjectContainer should be @Programmatic.

Posted by da...@apache.org.
ISIS-1213: mixin() method for DomainObjectContainer should be @Programmatic.


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

Branch: refs/heads/master
Commit: f6d3526935e023816a623271015a66b4e90901df
Parents: 199880c
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Oct 15 23:31:09 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Oct 15 23:31:09 2015 +0100

----------------------------------------------------------------------
 .../main/java/org/apache/isis/applib/DomainObjectContainer.java    | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/f6d35269/core/applib/src/main/java/org/apache/isis/applib/DomainObjectContainer.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/DomainObjectContainer.java b/core/applib/src/main/java/org/apache/isis/applib/DomainObjectContainer.java
index a248d29..d26c8b7 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/DomainObjectContainer.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/DomainObjectContainer.java
@@ -211,7 +211,7 @@ public interface DomainObjectContainer {
     @Deprecated
     <T> T newInstance(final Class<T> ofType, final Object object);
 
-
+    @Programmatic
     <T> T mixin( Class<T> mixinClass, Object mixedIn);
 
     //endregion


[3/7] isis git commit: ISIS-1007: should not render "are you sure" for entity action links that take arguments (will render a prompt).

Posted by da...@apache.org.
ISIS-1007: should not render "are you sure" for entity action links that take arguments (will render a prompt).

Also: some minor refactoring to remove duplication.


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

Branch: refs/heads/master
Commit: e74e1372bfd4ce634788be0536f2847f58984600
Parents: 51e7be7
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Oct 15 14:36:20 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Oct 15 14:36:20 2015 +0100

----------------------------------------------------------------------
 .../viewer/wicket/model/links/LinkAndLabel.java | 57 +++++++++++++++++++-
 .../entityactions/AdditionalLinksPanel.java     |  2 +-
 .../collection/bulk/BulkActionsLinkFactory.java | 21 ++------
 .../linkandlabel/ActionLinkFactoryAbstract.java | 18 +------
 4 files changed, 63 insertions(+), 35 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/e74e1372/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
index d961fc2..c728a63 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
@@ -25,8 +25,11 @@ import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
 import org.apache.wicket.markup.html.link.AbstractLink;
 import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.ActionSemantics;
 import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaPosition;
+import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 
 public class LinkAndLabel implements Serializable {
 
@@ -38,6 +41,49 @@ public class LinkAndLabel implements Serializable {
         return Lists.newArrayList(Iterables.filter(entityActionLinks, Predicates.positioned(position)));
     }
 
+    public static LinkAndLabel newLinkAndLabel(
+            final ObjectAdapter objectAdapter,
+            final ObjectAction objectAction,
+            final AbstractLink link,
+            final String disabledReasonIfAny,
+            final boolean blobOrClob) {
+
+        final String name = ObjectAction.Utils.nameFor(objectAction);
+
+        final boolean explorationOrPrototype = ObjectAction.Utils.isExplorationOrPrototype(objectAction);
+        final String actionIdentifier = ObjectAction.Utils.actionIdentifierFor(objectAction);
+        final String description = ObjectAction.Utils.descriptionOf(objectAction);
+        final String cssClass = ObjectAction.Utils.cssClassFor(objectAction, objectAdapter);
+        final String cssClassFa = ObjectAction.Utils.cssClassFaFor(objectAction);
+        final CssClassFaPosition cssClassFaPosition = ObjectAction.Utils.cssClassFaPositionFor(objectAction);
+        final ActionLayout.Position actionLayoutPosition = ObjectAction.Utils.actionLayoutPositionOf(objectAction);
+        final ActionSemantics.Of semantics = objectAction.getSemantics();
+
+        return new LinkAndLabel(
+                link, name,
+                disabledReasonIfAny, description,
+                blobOrClob, explorationOrPrototype,
+                actionIdentifier,
+                cssClass, cssClassFa, cssClassFaPosition, actionLayoutPosition,
+                SemanticsOf.from(semantics),
+                Parameters.fromParameterCount(objectAction.getParameterCount()));
+    }
+
+    public enum Parameters {
+        NO_PARAMETERS,
+        TAKES_PARAMETERS;
+
+        public static Parameters fromParameterCount(final int parameterCount) {
+            return parameterCount > 0? TAKES_PARAMETERS: NO_PARAMETERS;
+        }
+
+        public boolean isNoParameters() {
+            return this == NO_PARAMETERS;
+        }
+        public boolean isTakesParameters() {
+            return this == TAKES_PARAMETERS;
+        }
+    }
 
     private final AbstractLink link;
     private final String label;
@@ -51,8 +97,9 @@ public class LinkAndLabel implements Serializable {
     private final CssClassFaPosition cssClassFaPosition;
     private final ActionLayout.Position position;
     private final SemanticsOf semanticsOf;
+    private Parameters parameters;
 
-    public LinkAndLabel(
+    private LinkAndLabel(
             final AbstractLink link,
             final String label,
             final String disabledReasonIfAny,
@@ -64,7 +111,8 @@ public class LinkAndLabel implements Serializable {
             final String cssClassFa,
             final CssClassFaPosition cssClassFaPosition,
             final ActionLayout.Position position,
-            final SemanticsOf semanticsOf) {
+            final SemanticsOf semanticsOf,
+            final Parameters parameters) {
         this.link = link;
         this.label = label;
         this.disabledReasonIfAny = disabledReasonIfAny;
@@ -77,6 +125,7 @@ public class LinkAndLabel implements Serializable {
         this.cssClassFaPosition = cssClassFaPosition;
         this.position = position;
         this.semanticsOf = semanticsOf;
+        this.parameters = parameters;
     }
 
     public AbstractLink getLink() {
@@ -127,6 +176,10 @@ public class LinkAndLabel implements Serializable {
         return semanticsOf;
     }
 
+    public Parameters getParameters() {
+        return parameters;
+    }
+
     public static class Predicates {
         public static Predicate<LinkAndLabel> positioned(final ActionLayout.Position position) {
             return new Predicate<LinkAndLabel>() {

http://git-wip-us.apache.org/repos/asf/isis/blob/e74e1372/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/AdditionalLinksPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/AdditionalLinksPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/AdditionalLinksPanel.java
index 9eabdf5..7de96a0 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/AdditionalLinksPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/AdditionalLinksPanel.java
@@ -125,7 +125,7 @@ public class AdditionalLinksPanel extends PanelAbstract<ListOfLinksModel> {
                 link.add(new CssClassAppender(linkAndLabel.getActionIdentifier()));
 
                 SemanticsOf semantics = linkAndLabel.getSemantics();
-                if (    semantics.isAreYouSure() ) {
+                if (    semantics.isAreYouSure() && linkAndLabel.getParameters().isNoParameters() ) {
                     ConfirmationConfig confirmationConfig = new ConfirmationConfig();
                     // TODO ISIS-1007 Use i18n for the title and the labels
                     confirmationConfig.withTitle("Are you sure?");

http://git-wip-us.apache.org/repos/asf/isis/blob/e74e1372/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java
index de42f3f..6a113a0 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java
@@ -26,13 +26,9 @@ import org.apache.wicket.Session;
 import org.apache.wicket.markup.html.link.AbstractLink;
 import org.apache.wicket.markup.html.link.Link;
 import org.apache.isis.applib.RecoverableException;
-import org.apache.isis.applib.annotation.ActionSemantics;
-import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.services.actinvoc.ActionInvocationContext;
-import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.Bulk;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaPosition;
 import org.apache.isis.applib.annotation.InvokedOn;
 import org.apache.isis.applib.services.command.Command;
 import org.apache.isis.applib.services.command.Command.Executor;
@@ -212,19 +208,12 @@ public final class BulkActionsLinkFactory implements ActionLinkFactory {
         };
         link.add(new JGrowlBehaviour());
 
-        final boolean explorationOrPrototype = ObjectAction.Utils.isExplorationOrPrototype(objectAction);
-        final String actionIdentifier = ObjectAction.Utils.actionIdentifierFor(objectAction);
-        final String description = ObjectAction.Utils.descriptionOf(objectAction);
-        final String cssClass = ObjectAction.Utils.cssClassFor(objectAction, null);
-        final String cssClassFa = ObjectAction.Utils.cssClassFaFor(objectAction);
-        final CssClassFaPosition cssClassFaPosition = ObjectAction.Utils.cssClassFaPositionFor(objectAction);
-        final ActionLayout.Position position = ObjectAction.Utils.actionLayoutPositionOf(objectAction);
-        final ActionSemantics.Of semantics = objectAction.getSemantics();
-
-        return new LinkAndLabel(link, objectAction.getName(), null, description, false, explorationOrPrototype, actionIdentifier, cssClass, cssClassFa, cssClassFaPosition, position,
-                SemanticsOf.from(semantics));
-    }
+        final String disabledReasonIfAny = null;
+        final boolean blobOrClob = false;
+        final ObjectAdapter objectAdapter = null;
 
+        return LinkAndLabel.newLinkAndLabel(objectAdapter, objectAction, link, disabledReasonIfAny, blobOrClob);
+    }
 
     ///////////////////////////////////////////////////////
     // Dependencies (from context)

http://git-wip-us.apache.org/repos/asf/isis/blob/e74e1372/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
index 0608c7c..e81de3d 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
@@ -25,11 +25,7 @@ import org.apache.wicket.markup.ComponentTag;
 import org.apache.wicket.markup.html.link.AbstractLink;
 import org.apache.wicket.request.IRequestHandler;
 
-import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.ActionSemantics;
-import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaPosition;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
 import org.apache.isis.viewer.wicket.model.models.ActionModel;
@@ -174,19 +170,9 @@ public abstract class ActionLinkFactoryAbstract implements ActionLinkFactory {
             final AbstractLink link,
             final String disabledReasonIfAny) {
 
-        final String label = ObjectAction.Utils.nameFor(objectAction);
         final boolean blobOrClob = ObjectAction.Utils.returnsBlobOrClob(objectAction);
-        final boolean prototype = ObjectAction.Utils.isExplorationOrPrototype(objectAction);
-        final String actionIdentifier = ObjectAction.Utils.actionIdentifierFor(objectAction);
-        final String description = ObjectAction.Utils.descriptionOf(objectAction);
-        final ActionLayout.Position position = ObjectAction.Utils.actionLayoutPositionOf(objectAction);
-        final String cssClass = ObjectAction.Utils.cssClassFor(objectAction, objectAdapter);
-        final String cssClassFa = ObjectAction.Utils.cssClassFaFor(objectAction);
-        final CssClassFaPosition cssClassFaPosition = ObjectAction.Utils.cssClassFaPositionFor(objectAction);
-        final ActionSemantics.Of semantics = objectAction.getSemantics();
-
-        return new LinkAndLabel(link, label, disabledReasonIfAny, description, blobOrClob, prototype, actionIdentifier,
-                cssClass, cssClassFa, cssClassFaPosition, position, SemanticsOf.from(semantics));
+
+        return LinkAndLabel.newLinkAndLabel(objectAdapter, objectAction, link, disabledReasonIfAny, blobOrClob);
     }
 
     // ////////////////////////////////////////////////////////////


[2/7] isis git commit: ISIS-1194: fixing some asciidoc render issues

Posted by da...@apache.org.
ISIS-1194: fixing some asciidoc render issues


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

Branch: refs/heads/master
Commit: 51e7be7a3b543f16bd4e463c8442ae45f30cbcb2
Parents: 7825157
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Oct 15 13:59:55 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Oct 15 13:59:55 2015 +0100

----------------------------------------------------------------------
 adocs/documentation/Gemfile.lock                     |  3 +++
 .../guides/_cg_committers_cutting-a-release.adoc     |  1 -
 .../main/asciidoc/guides/_cg_isis-maven-plugin.adoc  | 15 +++++++--------
 3 files changed, 10 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/51e7be7a/adocs/documentation/Gemfile.lock
----------------------------------------------------------------------
diff --git a/adocs/documentation/Gemfile.lock b/adocs/documentation/Gemfile.lock
index 6a495d9..808cd9a 100644
--- a/adocs/documentation/Gemfile.lock
+++ b/adocs/documentation/Gemfile.lock
@@ -43,3 +43,6 @@ DEPENDENCIES
   tilt
   wdm (>= 0.1.0)
   webrick
+
+BUNDLED WITH
+   1.10.6

http://git-wip-us.apache.org/repos/asf/isis/blob/51e7be7a/adocs/documentation/src/main/asciidoc/guides/_cg_committers_cutting-a-release.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_cg_committers_cutting-a-release.adoc b/adocs/documentation/src/main/asciidoc/guides/_cg_committers_cutting-a-release.adoc
index 52667af..7362814 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_cg_committers_cutting-a-release.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_cg_committers_cutting-a-release.adoc
@@ -133,7 +133,6 @@ export ISISCOR="Y"
 
 env | grep ISIS | sort
 ----
-<1> adjust by platform
 
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/51e7be7a/adocs/documentation/src/main/asciidoc/guides/_cg_isis-maven-plugin.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_cg_isis-maven-plugin.adoc b/adocs/documentation/src/main/asciidoc/guides/_cg_isis-maven-plugin.adoc
index 1da0afd..fa17253 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_cg_isis-maven-plugin.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_cg_isis-maven-plugin.adoc
@@ -66,7 +66,7 @@ Next, update the `pom.xml` (in your project's `dom` module):
     <id>isis-validate</id>
     <activation>
         <property>
-            <name>isis-validate</name>                                                  <!-- 1 -->
+            <name>isis-validate</name>                                                  <!--1-->
         </property>
     </activation>
     <build>
@@ -74,14 +74,14 @@ Next, update the `pom.xml` (in your project's `dom` module):
             <plugin>
                 <groupId>org.apache.isis.tool</groupId>
                 <artifactId>isis-maven-plugin</artifactId>
-                <version>${isis.version}</version>                                      <!-- 2 -->
+                <version>${isis.version}</version>                                      <!--2-->
                 <configuration>
-                    <appManifest>domainapp.dom.DomainAppDomManifest</appManifest>       <!-- 3 -->
+                    <appManifest>domainapp.dom.DomainAppDomManifest</appManifest>       <!--3-->
                 </configuration>
                 <dependencies>
                     <dependency>
                         <groupId>${project.groupId}</groupId>
-                        <artifactId>simpleapp-dom</artifactId>                          <!-- 4 -->
+                        <artifactId>simpleapp-dom</artifactId>                          <!--4-->
                         <version>${project.version}</version>
                     </dependency>
                     <!-- workaround to avoid conflict with plexus-default -->
@@ -95,7 +95,7 @@ Next, update the `pom.xml` (in your project's `dom` module):
                     <execution>
                         <phase>test</phase>
                         <goals>
-                            <goal>validate</goal>                                       <!-- 5 -->
+                            <goal>validate</goal>                                       <!--5-->
                         </goals>
                     </execution>
                 </executions>
@@ -206,7 +206,7 @@ The `1.9.0` version of the plugin requires slightly different configuratoin.  Ra
 <profile>
     <id>isis-validate</id>
     <activation>
-        <activeByDefault>false</activeByDefault>                                        <!-- 1 -->
+        <activeByDefault>false</activeByDefault>                                        <!--1-->
     </activation>
     <build>
         <plugins>
@@ -215,7 +215,7 @@ The `1.9.0` version of the plugin requires slightly different configuratoin.  Ra
                 <artifactId>isis-maven-plugin</artifactId>
                 <version>1.9.0-SNAPSHOT</version>
                 <configuration>
-                    <isisConfigDir>../webapp/src/main/webapp/WEB-INF</isisConfigDir>    <!-- 2 -->
+                    <isisConfigDir>../webapp/src/main/webapp/WEB-INF</isisConfigDir>    <!--2-->
                 </configuration>
                 <dependencies>
                     <dependency>
@@ -258,4 +258,3 @@ mvn -P isis-validate test
 Note that the `isisConfigDir` property was removed in `1.10.0`; only the `AppManifest` approach is supported.
 ====
 
-


[4/7] isis git commit: ISIS-1213: added mixin() convenience method for FixtureScript superclass.

Posted by da...@apache.org.
ISIS-1213: added mixin() convenience method for FixtureScript superclass.


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

Branch: refs/heads/master
Commit: acb1fe0fb456f1f3a2a0aea73f86a649108e9a28
Parents: e74e137
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Oct 15 22:55:34 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Oct 15 22:55:34 2015 +0100

----------------------------------------------------------------------
 .../org/apache/isis/applib/fixturescripts/FixtureScript.java  | 7 +++++++
 1 file changed, 7 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/acb1fe0f/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScript.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScript.java b/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScript.java
index 56f6ed4..eb832f3 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScript.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScript.java
@@ -849,6 +849,13 @@ public abstract class FixtureScript
         return wrapperFactory.unwrap(possibleWrappedDomainObject);
     }
 
+    /**
+     * Convenience method
+     */
+    protected <T> T mixin(final Class<T> mixinClass, final Object mixedIn) {
+        return container.mixin(mixinClass, mixedIn);
+    }
+
     //endregion
 
     //region > helpers (local)


[7/7] isis git commit: ISIS-1007: i18n for "are you sure?"

Posted by da...@apache.org.
ISIS-1007: i18n for "are you sure?"


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

Branch: refs/heads/master
Commit: 3a2a5410675cd3f7a7d9f07bd52374169af667f5
Parents: f6d3526
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Oct 15 23:59:06 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Oct 15 23:59:06 2015 +0100

----------------------------------------------------------------------
 .../isis/core/runtime/system/IsisSystem.java    |  12 ++
 .../entityactions/AdditionalLinksPanel.java     |  24 ++--
 .../ui/components/actions/ActionPanel.java      |   8 +-
 .../actions/ActionParametersFormPanel.java      |  18 ++-
 .../viewer/wicket/ui/panels/PanelAbstract.java  |   5 +
 .../java/domainapp/dom/simple/SimpleObject.java |   5 +-
 .../src/main/webapp/WEB-INF/translations-en.po  | 137 +++++++++++--------
 .../src/main/webapp/WEB-INF/translations-es.po  |  69 +++++++---
 .../src/main/webapp/WEB-INF/translations-nl.po  |  70 +++++++---
 .../src/main/webapp/WEB-INF/translations.po     |  73 +++++++---
 10 files changed, 289 insertions(+), 132 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/3a2a5410/core/runtime/src/main/java/org/apache/isis/core/runtime/system/IsisSystem.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/IsisSystem.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/IsisSystem.java
index bc635b3..0bec918 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/IsisSystem.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/IsisSystem.java
@@ -33,6 +33,7 @@ import org.apache.isis.applib.fixtures.FixtureClock;
 import org.apache.isis.applib.fixtures.LogonFixture;
 import org.apache.isis.applib.fixturescripts.FixtureScripts;
 import org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault;
+import org.apache.isis.applib.services.i18n.TranslationService;
 import org.apache.isis.core.commons.components.ApplicationScopedComponent;
 import org.apache.isis.core.commons.components.Noop;
 import org.apache.isis.core.commons.config.IsisConfiguration;
@@ -66,6 +67,10 @@ public class IsisSystem implements DebugSelection, ApplicationScopedComponent {
 
     public static final Logger LOG = LoggerFactory.getLogger(IsisSystem.class);
 
+    public static final String MSG_ARE_YOU_SURE = "Are you sure?";
+    public static final String MSG_CONFIRM = "Confirm";
+    public static final String MSG_CANCEL = "Cancel";
+
     private final IsisLocaleInitializer localeInitializer;
     private final IsisTimeZoneInitializer timeZoneInitializer;
     private final DeploymentType deploymentType;
@@ -292,6 +297,13 @@ public class IsisSystem implements DebugSelection, ApplicationScopedComponent {
                     }
                 }
             }
+
+            // as used by the Wicket UI
+            final TranslationService translationService = lookupService(TranslationService.class);
+            translationService.translate(IsisSystem.class.getName(), MSG_ARE_YOU_SURE);
+            translationService.translate(IsisSystem.class.getName(), MSG_CONFIRM);
+            translationService.translate(IsisSystem.class.getName(), MSG_CANCEL);
+
         } finally {
             IsisContext.closeSession();
         }

http://git-wip-us.apache.org/repos/asf/isis/blob/3a2a5410/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/AdditionalLinksPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/AdditionalLinksPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/AdditionalLinksPanel.java
index 7de96a0..8268419 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/AdditionalLinksPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/AdditionalLinksPanel.java
@@ -32,8 +32,10 @@ import org.apache.wicket.markup.html.list.ListItem;
 import org.apache.wicket.markup.html.list.ListView;
 
 import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.services.i18n.TranslationService;
 import org.apache.isis.core.commons.lang.StringExtensions;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaPosition;
+import org.apache.isis.core.runtime.system.IsisSystem;
 import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
 import org.apache.isis.viewer.wicket.model.links.ListOfLinksModel;
 import org.apache.isis.viewer.wicket.ui.components.actionmenu.CssClassFaBehavior;
@@ -86,12 +88,10 @@ public class AdditionalLinksPanel extends PanelAbstract<ListOfLinksModel> {
     }
 
 
-    private List<LinkAndLabel> linkAndLabels;
-
     protected AdditionalLinksPanel(final String id, final List<LinkAndLabel> links) {
         super(id, new ListOfLinksModel(links));
 
-        this.linkAndLabels = getModel().getObject();
+        final List<LinkAndLabel> linkAndLabels = getModel().getObject();
 
         final WebMarkupContainer container = new WebMarkupContainer(ID_ADDITIONAL_LINK_LIST);
         addOrReplace(container);
@@ -100,7 +100,7 @@ public class AdditionalLinksPanel extends PanelAbstract<ListOfLinksModel> {
 
         setOutputMarkupId(true);
 
-        final ListView<LinkAndLabel> listView = new ListView<LinkAndLabel>(ID_ADDITIONAL_LINK_ITEM, this.linkAndLabels) {
+        final ListView<LinkAndLabel> listView = new ListView<LinkAndLabel>(ID_ADDITIONAL_LINK_ITEM, linkAndLabels) {
 
             private static final long serialVersionUID = 1L;
 
@@ -127,10 +127,18 @@ public class AdditionalLinksPanel extends PanelAbstract<ListOfLinksModel> {
                 SemanticsOf semantics = linkAndLabel.getSemantics();
                 if (    semantics.isAreYouSure() && linkAndLabel.getParameters().isNoParameters() ) {
                     ConfirmationConfig confirmationConfig = new ConfirmationConfig();
-                    // TODO ISIS-1007 Use i18n for the title and the labels
-                    confirmationConfig.withTitle("Are you sure?");
-                    confirmationConfig.withBtnOkLabel("Confirm");
-                    confirmationConfig.withBtnCancelLabel("Cancel");
+
+                    final TranslationService translationService =
+                            getPersistenceSession().getServicesInjector().lookupService(TranslationService.class);
+
+                    final String areYouSure = translationService.translate(IsisSystem.class.getName(), IsisSystem.MSG_ARE_YOU_SURE);
+                    final String confirm = translationService.translate(IsisSystem.class.getName(), IsisSystem.MSG_CONFIRM);
+                    final String cancel = translationService.translate(IsisSystem.class.getName(), IsisSystem.MSG_CANCEL);
+
+                    confirmationConfig.withTitle(areYouSure);
+                    confirmationConfig.withBtnOkLabel(confirm);
+                    confirmationConfig.withBtnCancelLabel(cancel);
+
                     confirmationConfig.withBtnOkClass("btn btn-danger");
                     confirmationConfig.withBtnCancelClass("btn btn-default");
 

http://git-wip-us.apache.org/repos/asf/isis/blob/3a2a5410/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionPanel.java
index ad157b8..eda9abd 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionPanel.java
@@ -20,12 +20,15 @@
 package org.apache.isis.viewer.wicket.ui.components.actions;
 
 import java.util.List;
+
 import com.google.common.base.Throwables;
+
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.model.Model;
+
 import org.apache.isis.applib.services.command.Command;
 import org.apache.isis.applib.services.command.Command.Executor;
 import org.apache.isis.applib.services.command.CommandContext;
@@ -34,7 +37,6 @@ import org.apache.isis.applib.services.exceprecog.ExceptionRecognizerComposite;
 import org.apache.isis.core.commons.authentication.MessageBroker;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.version.ConcurrencyException;
-import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
 import org.apache.isis.core.runtime.system.context.IsisContext;
 import org.apache.isis.core.runtime.system.transaction.IsisTransactionManager;
 import org.apache.isis.viewer.wicket.model.models.ActionExecutor;
@@ -330,10 +332,6 @@ public class ActionPanel extends PanelAbstract<ActionModel> implements ActionExe
         return IsisContext.getTransactionManager();
     }
 
-    protected ServicesInjector getServicesInjector() {
-        return IsisContext.getPersistenceSession().getServicesInjector();
-    }
-
     protected MessageBroker getMessageBroker() {
         return getAuthenticationSession().getMessageBroker();
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/3a2a5410/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java
index 5366944..9c09f46 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java
@@ -33,10 +33,12 @@ import org.apache.wicket.markup.repeater.RepeatingView;
 import org.apache.wicket.model.ResourceModel;
 
 import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.services.i18n.TranslationService;
 import org.apache.isis.core.commons.ensure.Ensure;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.version.ConcurrencyException;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
+import org.apache.isis.core.runtime.system.IsisSystem;
 import org.apache.isis.core.runtime.system.context.IsisContext;
 import org.apache.isis.viewer.wicket.model.hints.IsisActionCompletedEvent;
 import org.apache.isis.viewer.wicket.model.mementos.ActionParameterMemento;
@@ -225,10 +227,18 @@ public class ActionParametersFormPanel extends PanelAbstract<ActionModel> {
             SemanticsOf semanticsOf = SemanticsOf.from(action.getSemantics());
             if (semanticsOf.isAreYouSure()) {
                 ConfirmationConfig confirmationConfig = new ConfirmationConfig();
-                // TODO ISIS-1007 Use i18n for the title and the labels
-                confirmationConfig.withTitle("Are you sure?");
-                confirmationConfig.withBtnOkLabel("Confirm");
-                confirmationConfig.withBtnCancelLabel("Cancel");
+
+                final TranslationService translationService =
+                        getPersistenceSession().getServicesInjector().lookupService(TranslationService.class);
+
+                final String areYouSure = translationService.translate(IsisSystem.class.getName(), IsisSystem.MSG_ARE_YOU_SURE);
+                final String confirm = translationService.translate(IsisSystem.class.getName(), IsisSystem.MSG_CONFIRM);
+                final String cancel = translationService.translate(IsisSystem.class.getName(), IsisSystem.MSG_CANCEL);
+
+                confirmationConfig.withTitle(areYouSure);
+                confirmationConfig.withBtnOkLabel(confirm);
+                confirmationConfig.withBtnCancelLabel(cancel);
+
                 confirmationConfig.withBtnOkClass("btn btn-danger");
                 confirmationConfig.withBtnCancelClass("btn btn-default");
                 button.add(new ConfirmationBehavior(confirmationConfig));

http://git-wip-us.apache.org/repos/asf/isis/blob/3a2a5410/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelAbstract.java
index 9f968c1..bffaa6b 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelAbstract.java
@@ -31,6 +31,7 @@ import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider
 import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProvider;
 import org.apache.isis.core.metamodel.deployment.DeploymentCategoryAware;
+import org.apache.isis.core.metamodel.services.ServicesInjectorSpi;
 import org.apache.isis.core.runtime.system.context.IsisContext;
 import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
 import org.apache.isis.viewer.wicket.model.hints.UiHintContainer;
@@ -149,6 +150,10 @@ public abstract class PanelAbstract<T extends IModel<?>> extends Panel implement
         return IsisContext.getPersistenceSession();
     }
 
+    protected ServicesInjectorSpi getServicesInjector() {
+        return getPersistenceSession().getServicesInjector();
+    }
+
     // /////////////////////////////////////////////////
     // Dependency Injection
     // /////////////////////////////////////////////////

http://git-wip-us.apache.org/repos/asf/isis/blob/3a2a5410/example/application/simpleapp/dom/src/main/java/domainapp/dom/simple/SimpleObject.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/dom/src/main/java/domainapp/dom/simple/SimpleObject.java b/example/application/simpleapp/dom/src/main/java/domainapp/dom/simple/SimpleObject.java
index b5b8500..6e88b4f 100644
--- a/example/application/simpleapp/dom/src/main/java/domainapp/dom/simple/SimpleObject.java
+++ b/example/application/simpleapp/dom/src/main/java/domainapp/dom/simple/SimpleObject.java
@@ -32,6 +32,7 @@ import org.apache.isis.applib.annotation.Editing;
 import org.apache.isis.applib.annotation.Parameter;
 import org.apache.isis.applib.annotation.ParameterLayout;
 import org.apache.isis.applib.annotation.Property;
+import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.services.eventbus.ActionDomainEvent;
 import org.apache.isis.applib.services.i18n.TranslatableString;
 import org.apache.isis.applib.util.ObjectContracts;
@@ -91,9 +92,11 @@ public class SimpleObject implements Comparable<SimpleObject> {
     }
 
 
+
     public static class UpdateNameDomainEvent extends ActionDomainEvent<SimpleObject> {}
     @Action(
-            domainEvent = UpdateNameDomainEvent.class
+            domainEvent = UpdateNameDomainEvent.class,
+            semantics = SemanticsOf.IDEMPOTENT
     )
     public SimpleObject updateName(
             @Parameter(maxLength = NAME_LENGTH)

http://git-wip-us.apache.org/repos/asf/isis/blob/3a2a5410/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations-en.po
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations-en.po b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations-en.po
index 47b82d1..2667a64 100644
--- a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations-en.po
+++ b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations-en.po
@@ -2,6 +2,9 @@
 #
 # .pot file
 #
+# generated at: 2015-10-15 23:20:47
+# generated by: TranslationServicePo
+#
 # Translate this file to each required language and place in WEB-INF, eg:
 #
 #     /WEB-INF/translations-en_US.po
@@ -19,187 +22,211 @@
 
 #: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#downloadTranslations(java.lang.String)
 msgid ".pot file name"
-msgstr ".pot file name"
+msgstr ""
+
+
+#: org.apache.isis.core.runtime.system.IsisSystem
+msgid "Are you sure?"
+msgstr ""
+
+
+#: org.apache.isis.core.runtime.system.IsisSystem
+msgid "Cancel"
+msgstr ""
 
 
 #: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#resetTranslationCache()
 msgid "Clear translation cache"
-msgstr "Clear translation cache"
+msgstr ""
+
+
+#: org.apache.isis.core.runtime.system.IsisSystem
+msgid "Confirm"
+msgstr ""
 
 
-#: domainapp.dom.modules.simple.SimpleObjects#create()
+#: domainapp.dom.simple.SimpleObjects#create()
 msgid "Create"
-msgstr "Create"
+msgstr ""
 
 
 #: org.apache.isis.applib.fixturescripts.FixtureScript#discoverable
 msgid "Discoverable"
-msgstr "Discoverable"
+msgstr ""
 
 
 #: org.apache.isis.applib.fixtures.FixtureType#DOMAIN_OBJECTS
 msgid "Domain Objects"
-msgstr "Domain Objects"
+msgstr ""
 
 
 #: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#downloadTranslations()
 msgid "Download Translations"
-msgstr "Download Translations"
+msgstr ""
 
 
-#: domainapp.dom.modules.simple.SimpleObject#updateName()
+#: domainapp.dom.simple.SimpleObject#updateName()
 msgid "Exclamation mark is not allowed"
-msgstr "Exclamation mark is not allowed"
+msgstr ""
 
 
-#: domainapp.dom.modules.simple.SimpleObjects#findByName()
+#: domainapp.dom.simple.SimpleObjects#findByName()
 msgid "Find By Name"
-msgstr "Find By Name"
+msgstr ""
 
 
 #: org.apache.isis.applib.fixturescripts.FixtureResult#fixtureScriptClassName
 msgid "Fixture script"
-msgstr "Fixture script"
+msgstr ""
 
 
 #: org.apache.isis.applib.fixturescripts.FixtureScript#friendlyName
 msgid "Friendly Name"
-msgstr "Friendly Name"
+msgstr ""
 
 
-#: domainapp.dom.modules.simple.SimpleObject
+#: domainapp.dom.simple.SimpleObject
 msgid "General"
-msgstr "General"
+msgstr ""
 
 
-#: domainapp.dom.app.homepage.HomePageService#homePage()
+#: domainapp.app.services.homepage.HomePageService#homePage()
 msgid "Home Page"
-msgstr "Home Page"
+msgstr ""
 
 
-#: domainapp.dom.modules.simple.SimpleObjects#listAll()
+#: domainapp.dom.simple.SimpleObjects#listAll()
 msgid "List All"
-msgstr "List All"
+msgstr ""
 
 
 #: org.apache.isis.applib.fixturescripts.FixtureScript#localName
 msgid "Local Name"
-msgstr "Local Name"
+msgstr ""
 
 
 #: org.apache.isis.applib.fixturescripts.FixtureScript#lookup()
 #: org.apache.isis.applib.services.bookmark.BookmarkHolderActionContributions#lookup()
 msgid "Lookup"
-msgstr "Lookup"
+msgstr ""
 
 
-#: domainapp.dom.modules.simple.SimpleObject#name
-#: domainapp.dom.modules.simple.SimpleObjects#create(java.lang.String)
-#: domainapp.dom.modules.simple.SimpleObjects#findByName(java.lang.String)
+
+#: domainapp.dom.simple.SimpleObject#name
+#: domainapp.dom.simple.SimpleObjects#create(java.lang.String)
+#: domainapp.dom.simple.SimpleObjects#findByName(java.lang.String)
 msgid "Name"
-msgstr "Name"
+msgstr ""
 
 
-#: domainapp.dom.modules.simple.SimpleObject#updateName(java.lang.String)
+#: domainapp.dom.simple.SimpleObject#updateName(java.lang.String)
 msgid "New name"
-msgstr "New name"
+msgstr ""
 
 
 #: org.apache.isis.applib.services.bookmark.BookmarkHolderAssociationContributions#object()
 msgid "Object"
-msgstr "Object"
+msgstr ""
 
 
-#: domainapp.dom.modules.simple.SimpleObject#title()
+#: domainapp.dom.simple.SimpleObject#title()
 msgid "Object: {name}"
-msgstr "Object: {name}"
+msgstr ""
 
 
-#: domainapp.dom.app.homepage.HomePageViewModel#objects
+#: domainapp.app.services.homepage.HomePageViewModel#objects
 msgid "Objects"
-msgstr "Objects"
+msgstr ""
 
 
 #: org.apache.isis.applib.fixtures.FixtureType#OTHER
 msgid "Other"
-msgstr "Other"
+msgstr ""
 
 
-#: domainapp.fixture.DomainAppFixturesService#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
 #: org.apache.isis.applib.fixturescripts.FixtureScripts#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
+#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
+#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault#runFixtureScriptWithAutoComplete(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
 msgid "Parameters"
-msgstr "Parameters"
+msgstr ""
 
 
-#: domainapp.fixture.DomainAppFixturesService
+#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault
 #: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu
 msgid "Prototyping"
-msgstr "Prototyping"
+msgstr ""
 
 
-#: domainapp.fixture.DomainAppFixturesService#recreateObjectsAndReturnFirst()
+#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault#recreateObjectsAndReturnFirst()
 msgid "Recreate Objects And Return First"
-msgstr "Recreate Objects And Return First"
+msgstr ""
 
 
 #: org.apache.isis.applib.fixturescripts.FixtureResult#object
 msgid "Result"
-msgstr "Result"
+msgstr ""
 
 
 #: org.apache.isis.applib.fixturescripts.FixtureResult#className
 msgid "Result class"
-msgstr "Result class"
+msgstr ""
 
 
 #: org.apache.isis.applib.fixturescripts.FixtureResult#key
 msgid "Result key"
-msgstr "Result key"
+msgstr ""
 
 
-#: domainapp.fixture.DomainAppFixturesService#runFixtureScript()
 #: org.apache.isis.applib.fixturescripts.FixtureScripts#runFixtureScript()
+#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault#runFixtureScript()
+#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault#runFixtureScriptWithAutoComplete()
 msgid "Run Fixture Script"
-msgstr "Run Fixture Script"
+msgstr ""
 
 
 #: org.apache.isis.applib.fixturescripts.FixtureScript
 msgid "Script"
-msgstr "Script"
+msgstr ""
 
 
-#: domainapp.fixture.DomainAppFixturesService#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
 #: org.apache.isis.applib.fixturescripts.FixtureScripts#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
+#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
+#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault#runFixtureScriptWithAutoComplete(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
 msgid "Script-specific parameters (if any).  The format depends on the script implementation (eg key=value, CSV, JSON, XML etc)"
-msgstr "Script-specific parameters (if any).  The format depends on the script implementation (eg key=value, CSV, JSON, XML etc)"
+msgstr ""
 
 
-#: domainapp.dom.modules.simple.SimpleObjects#title()
+#: domainapp.dom.simple.SimpleObjects#title()
 msgid "Simple Objects"
-msgstr "Simple Objects"
+msgstr ""
 
 
 #: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#switchToReadingTranslations()
 msgid "Switch To Reading Translations"
-msgstr "Switch To Reading Translations"
+msgstr ""
 
 
 #: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#switchToWritingTranslations()
 msgid "Switch To Writing Translations"
-msgstr "Switch To Writing Translations"
+msgstr ""
 
 
 #: org.apache.isis.applib.fixturescripts.FixtureScript#type
 msgid "Type"
-msgstr "Type"
+msgstr ""
 
 
-#: domainapp.dom.modules.simple.SimpleObject#updateName()
+#: domainapp.dom.simple.SimpleObject#updateName()
 msgid "Update Name"
-msgstr "Update Name"
+msgstr ""
+
+
+#: domainapp.dom.simple.SimpleObject#versionSequence
+msgid "Version Sequence"
+msgstr ""
 
 
-#: domainapp.dom.modules.simple.SimpleObject
+#: domainapp.dom.simple.SimpleObject
 msgid "name"
 msgstr ""
 

http://git-wip-us.apache.org/repos/asf/isis/blob/3a2a5410/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations-es.po
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations-es.po b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations-es.po
index 8b4c2d7..589082c 100644
--- a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations-es.po
+++ b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations-es.po
@@ -2,6 +2,9 @@
 #
 # .pot file
 #
+# generated at: 2015-10-15 23:20:47
+# generated by: TranslationServicePo
+#
 # Translate this file to each required language and place in WEB-INF, eg:
 #
 #     /WEB-INF/translations-en_US.po
@@ -22,12 +25,27 @@ msgid ".pot file name"
 msgstr "fichero .pot"
 
 
+#: org.apache.isis.core.runtime.system.IsisSystem
+msgid "Are you sure?"
+msgstr "¿Estas seguro?"
+
+
+#: org.apache.isis.core.runtime.system.IsisSystem
+msgid "Cancel"
+msgstr "Cancelar"
+
+
 #: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#resetTranslationCache()
 msgid "Clear translation cache"
 msgstr "Limpiar la caché de traducciones"
 
 
-#: domainapp.dom.modules.simple.SimpleObjects#create()
+#: org.apache.isis.core.runtime.system.IsisSystem
+msgid "Confirm"
+msgstr "Confirmar"
+
+
+#: domainapp.dom.simple.SimpleObjects#create()
 msgid "Create"
 msgstr "Crear"
 
@@ -47,12 +65,12 @@ msgid "Download Translations"
 msgstr "Descargar traducciones"
 
 
-#: domainapp.dom.modules.simple.SimpleObject#updateName()
+#: domainapp.dom.simple.SimpleObject#updateName()
 msgid "Exclamation mark is not allowed"
 msgstr "No se admite el signo de exclamación"
 
 
-#: domainapp.dom.modules.simple.SimpleObjects#findByName()
+#: domainapp.dom.simple.SimpleObjects#findByName()
 msgid "Find By Name"
 msgstr "Buscar por Nombre"
 
@@ -67,12 +85,17 @@ msgid "Friendly Name"
 msgstr "Nombre común"
 
 
-#: domainapp.dom.app.homepage.HomePageService#homePage()
+#: domainapp.dom.simple.SimpleObject
+msgid "General"
+msgstr ""
+
+
+#: domainapp.app.services.homepage.HomePageService#homePage()
 msgid "Home Page"
 msgstr "Página de Inicio"
 
 
-#: domainapp.dom.modules.simple.SimpleObjects#listAll()
+#: domainapp.dom.simple.SimpleObjects#listAll()
 msgid "List All"
 msgstr "Listar Todos"
 
@@ -88,14 +111,15 @@ msgid "Lookup"
 msgstr "Buscar"
 
 
-#: domainapp.dom.modules.simple.SimpleObject#name
-#: domainapp.dom.modules.simple.SimpleObjects#create(java.lang.String)
-#: domainapp.dom.modules.simple.SimpleObjects#findByName(java.lang.String)
+
+#: domainapp.dom.simple.SimpleObject#name
+#: domainapp.dom.simple.SimpleObjects#create(java.lang.String)
+#: domainapp.dom.simple.SimpleObjects#findByName(java.lang.String)
 msgid "Name"
 msgstr "Nombre"
 
 
-#: domainapp.dom.modules.simple.SimpleObject#updateName(java.lang.String)
+#: domainapp.dom.simple.SimpleObject#updateName(java.lang.String)
 msgid "New name"
 msgstr "Nuevo nombre"
 
@@ -105,12 +129,12 @@ msgid "Object"
 msgstr "Objeto"
 
 
-#: domainapp.dom.modules.simple.SimpleObject#title()
+#: domainapp.dom.simple.SimpleObject#title()
 msgid "Object: {name}"
 msgstr "Objeto: {name}"
 
 
-#: domainapp.dom.app.homepage.HomePageViewModel#objects
+#: domainapp.app.services.homepage.HomePageViewModel#objects
 msgid "Objects"
 msgstr "Objetos"
 
@@ -120,19 +144,20 @@ msgid "Other"
 msgstr "Other"
 
 
-#: domainapp.fixture.DomainAppFixturesService#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
 #: org.apache.isis.applib.fixturescripts.FixtureScripts#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
+#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
+#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault#runFixtureScriptWithAutoComplete(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
 msgid "Parameters"
 msgstr "Parámetros"
 
 
-#: domainapp.fixture.DomainAppFixturesService
+#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault
 #: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu
 msgid "Prototyping"
 msgstr "Prototipo"
 
 
-#: domainapp.fixture.DomainAppFixturesService#recreateObjectsAndReturnFirst()
+#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault#recreateObjectsAndReturnFirst()
 msgid "Recreate Objects And Return First"
 msgstr "Recrear Objetos y Devolver el Primero"
 
@@ -152,8 +177,9 @@ msgid "Result key"
 msgstr "Clave del Resultado"
 
 
-#: domainapp.fixture.DomainAppFixturesService#runFixtureScript()
 #: org.apache.isis.applib.fixturescripts.FixtureScripts#runFixtureScript()
+#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault#runFixtureScript()
+#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault#runFixtureScriptWithAutoComplete()
 msgid "Run Fixture Script"
 msgstr "Ejecutar Script de Instalación"
 
@@ -163,13 +189,14 @@ msgid "Script"
 msgstr "Script"
 
 
-#: domainapp.fixture.DomainAppFixturesService#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
 #: org.apache.isis.applib.fixturescripts.FixtureScripts#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
+#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
+#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault#runFixtureScriptWithAutoComplete(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
 msgid "Script-specific parameters (if any).  The format depends on the script implementation (eg key=value, CSV, JSON, XML etc)"
 msgstr "Parámetros específicos del Script (si hay alguno). El formato depende de la implementación del script (por ejemplo, clave=valor, CSV, JSON, XML, etc.)"
 
 
-#: domainapp.dom.modules.simple.SimpleObjects#title()
+#: domainapp.dom.simple.SimpleObjects#title()
 msgid "Simple Objects"
 msgstr "Objetos básicos"
 
@@ -189,12 +216,16 @@ msgid "Type"
 msgstr "Tipo"
 
 
-#: domainapp.dom.modules.simple.SimpleObject#updateName()
+#: domainapp.dom.simple.SimpleObject#updateName()
 msgid "Update Name"
 msgstr "Nombre de la Actualización"
 
+#: domainapp.dom.simple.SimpleObject#versionSequence
+msgid "Version Sequence"
+msgstr ""
+
 
-#: domainapp.dom.modules.simple.SimpleObject
+#: domainapp.dom.simple.SimpleObject
 msgid "name"
 msgstr ""
 

http://git-wip-us.apache.org/repos/asf/isis/blob/3a2a5410/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations-nl.po
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations-nl.po b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations-nl.po
index 4e35a22..6a7e4e9 100644
--- a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations-nl.po
+++ b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations-nl.po
@@ -2,6 +2,9 @@
 #
 # .pot file
 #
+# generated at: 2015-10-15 23:20:47
+# generated by: TranslationServicePo
+#
 # Translate this file to each required language and place in WEB-INF, eg:
 #
 #     /WEB-INF/translations-en_US.po
@@ -22,12 +25,27 @@ msgid ".pot file name"
 msgstr ""
 
 
+#: org.apache.isis.core.runtime.system.IsisSystem
+msgid "Are you sure?"
+msgstr "Weet je het zeker?"
+
+
+#: org.apache.isis.core.runtime.system.IsisSystem
+msgid "Cancel"
+msgstr "Annuleer"
+
+
 #: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#resetTranslationCache()
 msgid "Clear translation cache"
 msgstr ""
 
 
-#: domainapp.dom.modules.simple.SimpleObjects#create()
+#: org.apache.isis.core.runtime.system.IsisSystem
+msgid "Confirm"
+msgstr "Bevestigen"
+
+
+#: domainapp.dom.simple.SimpleObjects#create()
 msgid "Create"
 msgstr "Creëren"
 
@@ -47,12 +65,12 @@ msgid "Download Translations"
 msgstr ""
 
 
-#: domainapp.dom.modules.simple.SimpleObject#updateName()
+#: domainapp.dom.simple.SimpleObject#updateName()
 msgid "Exclamation mark is not allowed"
 msgstr ""
 
 
-#: domainapp.dom.modules.simple.SimpleObjects#findByName()
+#: domainapp.dom.simple.SimpleObjects#findByName()
 msgid "Find By Name"
 msgstr "Zoek op Naam"
 
@@ -67,12 +85,17 @@ msgid "Friendly Name"
 msgstr ""
 
 
-#: domainapp.dom.app.homepage.HomePageService#homePage()
+#: domainapp.dom.simple.SimpleObject
+msgid "General"
+msgstr ""
+
+
+#: domainapp.app.services.homepage.HomePageService#homePage()
 msgid "Home Page"
 msgstr ""
 
 
-#: domainapp.dom.modules.simple.SimpleObjects#listAll()
+#: domainapp.dom.simple.SimpleObjects#listAll()
 msgid "List All"
 msgstr "Lijst Alle"
 
@@ -88,14 +111,15 @@ msgid "Lookup"
 msgstr ""
 
 
-#: domainapp.dom.modules.simple.SimpleObject#name
-#: domainapp.dom.modules.simple.SimpleObjects#create(java.lang.String)
-#: domainapp.dom.modules.simple.SimpleObjects#findByName(java.lang.String)
+
+#: domainapp.dom.simple.SimpleObject#name
+#: domainapp.dom.simple.SimpleObjects#create(java.lang.String)
+#: domainapp.dom.simple.SimpleObjects#findByName(java.lang.String)
 msgid "Name"
 msgstr "Naam"
 
 
-#: domainapp.dom.modules.simple.SimpleObject#updateName(java.lang.String)
+#: domainapp.dom.simple.SimpleObject#updateName(java.lang.String)
 msgid "New name"
 msgstr "Nieuwe naam"
 
@@ -105,12 +129,12 @@ msgid "Object"
 msgstr ""
 
 
-#: domainapp.dom.modules.simple.SimpleObject#title()
+#: domainapp.dom.simple.SimpleObject#title()
 msgid "Object: {name}"
 msgstr ""
 
 
-#: domainapp.dom.app.homepage.HomePageViewModel#objects
+#: domainapp.app.services.homepage.HomePageViewModel#objects
 msgid "Objects"
 msgstr "Objects"
 
@@ -120,19 +144,20 @@ msgid "Other"
 msgstr "Other"
 
 
-#: domainapp.fixture.DomainAppFixturesService#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
 #: org.apache.isis.applib.fixturescripts.FixtureScripts#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
+#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
+#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault#runFixtureScriptWithAutoComplete(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
 msgid "Parameters"
 msgstr ""
 
 
-#: domainapp.fixture.DomainAppFixturesService
+#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault
 #: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu
 msgid "Prototyping"
 msgstr ""
 
 
-#: domainapp.fixture.DomainAppFixturesService#recreateObjectsAndReturnFirst()
+#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault#recreateObjectsAndReturnFirst()
 msgid "Recreate Objects And Return First"
 msgstr ""
 
@@ -152,8 +177,9 @@ msgid "Result key"
 msgstr ""
 
 
-#: domainapp.fixture.DomainAppFixturesService#runFixtureScript()
 #: org.apache.isis.applib.fixturescripts.FixtureScripts#runFixtureScript()
+#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault#runFixtureScript()
+#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault#runFixtureScriptWithAutoComplete()
 msgid "Run Fixture Script"
 msgstr ""
 
@@ -163,13 +189,14 @@ msgid "Script"
 msgstr ""
 
 
-#: domainapp.fixture.DomainAppFixturesService#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
 #: org.apache.isis.applib.fixturescripts.FixtureScripts#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
+#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
+#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault#runFixtureScriptWithAutoComplete(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
 msgid "Script-specific parameters (if any).  The format depends on the script implementation (eg key=value, CSV, JSON, XML etc)"
 msgstr ""
 
 
-#: domainapp.dom.modules.simple.SimpleObjects#title()
+#: domainapp.dom.simple.SimpleObjects#title()
 msgid "Simple Objects"
 msgstr "Eenvoudige Objecten"
 
@@ -189,12 +216,17 @@ msgid "Type"
 msgstr ""
 
 
-#: domainapp.dom.modules.simple.SimpleObject#updateName()
+#: domainapp.dom.simple.SimpleObject#updateName()
 msgid "Update Name"
 msgstr "Updaten Naam"
 
 
-#: domainapp.dom.modules.simple.SimpleObject
+#: domainapp.dom.simple.SimpleObject#versionSequence
+msgid "Version Sequence"
+msgstr ""
+
+
+#: domainapp.dom.simple.SimpleObject
 msgid "name"
 msgstr ""
 

http://git-wip-us.apache.org/repos/asf/isis/blob/3a2a5410/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations.po
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations.po b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations.po
index 3644a28..e050de7 100644
--- a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations.po
+++ b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations.po
@@ -2,6 +2,9 @@
 #
 # .pot file
 #
+# generated at: 2015-10-15 23:20:47
+# generated by: TranslationServicePo
+#
 # Translate this file to each required language and place in WEB-INF, eg:
 #
 #     /WEB-INF/translations-en_US.po
@@ -22,12 +25,27 @@ msgid ".pot file name"
 msgstr ""
 
 
+#: org.apache.isis.core.runtime.system.IsisSystem
+msgid "Are you sure?"
+msgstr ""
+
+
+#: org.apache.isis.core.runtime.system.IsisSystem
+msgid "Cancel"
+msgstr ""
+
+
 #: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#resetTranslationCache()
 msgid "Clear translation cache"
 msgstr ""
 
 
-#: domainapp.dom.modules.simple.SimpleObjects#create()
+#: org.apache.isis.core.runtime.system.IsisSystem
+msgid "Confirm"
+msgstr ""
+
+
+#: domainapp.dom.simple.SimpleObjects#create()
 msgid "Create"
 msgstr ""
 
@@ -47,12 +65,12 @@ msgid "Download Translations"
 msgstr ""
 
 
-#: domainapp.dom.modules.simple.SimpleObject#updateName()
+#: domainapp.dom.simple.SimpleObject#updateName()
 msgid "Exclamation mark is not allowed"
 msgstr ""
 
 
-#: domainapp.dom.modules.simple.SimpleObjects#findByName()
+#: domainapp.dom.simple.SimpleObjects#findByName()
 msgid "Find By Name"
 msgstr ""
 
@@ -67,17 +85,17 @@ msgid "Friendly Name"
 msgstr ""
 
 
-#: domainapp.dom.modules.simple.SimpleObject
+#: domainapp.dom.simple.SimpleObject
 msgid "General"
-msgstr "Common"
+msgstr ""
 
 
-#: domainapp.dom.app.homepage.HomePageService#homePage()
+#: domainapp.app.services.homepage.HomePageService#homePage()
 msgid "Home Page"
 msgstr ""
 
 
-#: domainapp.dom.modules.simple.SimpleObjects#listAll()
+#: domainapp.dom.simple.SimpleObjects#listAll()
 msgid "List All"
 msgstr ""
 
@@ -93,14 +111,19 @@ msgid "Lookup"
 msgstr ""
 
 
-#: domainapp.dom.modules.simple.SimpleObject#name
-#: domainapp.dom.modules.simple.SimpleObjects#create(java.lang.String)
-#: domainapp.dom.modules.simple.SimpleObjects#findByName(java.lang.String)
+#: org.apache.isis.core.metamodel.services.container.DomainObjectContainerDefault#mixin()
+msgid "Mixin"
+msgstr ""
+
+
+#: domainapp.dom.simple.SimpleObject#name
+#: domainapp.dom.simple.SimpleObjects#create(java.lang.String)
+#: domainapp.dom.simple.SimpleObjects#findByName(java.lang.String)
 msgid "Name"
 msgstr ""
 
 
-#: domainapp.dom.modules.simple.SimpleObject#updateName(java.lang.String)
+#: domainapp.dom.simple.SimpleObject#updateName(java.lang.String)
 msgid "New name"
 msgstr ""
 
@@ -110,12 +133,12 @@ msgid "Object"
 msgstr ""
 
 
-#: domainapp.dom.modules.simple.SimpleObject#title()
+#: domainapp.dom.simple.SimpleObject#title()
 msgid "Object: {name}"
 msgstr ""
 
 
-#: domainapp.dom.app.homepage.HomePageViewModel#objects
+#: domainapp.app.services.homepage.HomePageViewModel#objects
 msgid "Objects"
 msgstr ""
 
@@ -125,19 +148,20 @@ msgid "Other"
 msgstr ""
 
 
-#: domainapp.fixture.DomainAppFixturesService#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
 #: org.apache.isis.applib.fixturescripts.FixtureScripts#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
+#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
+#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault#runFixtureScriptWithAutoComplete(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
 msgid "Parameters"
 msgstr ""
 
 
-#: domainapp.fixture.DomainAppFixturesService
+#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault
 #: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu
 msgid "Prototyping"
 msgstr ""
 
 
-#: domainapp.fixture.DomainAppFixturesService#recreateObjectsAndReturnFirst()
+#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault#recreateObjectsAndReturnFirst()
 msgid "Recreate Objects And Return First"
 msgstr ""
 
@@ -157,8 +181,9 @@ msgid "Result key"
 msgstr ""
 
 
-#: domainapp.fixture.DomainAppFixturesService#runFixtureScript()
 #: org.apache.isis.applib.fixturescripts.FixtureScripts#runFixtureScript()
+#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault#runFixtureScript()
+#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault#runFixtureScriptWithAutoComplete()
 msgid "Run Fixture Script"
 msgstr ""
 
@@ -168,13 +193,14 @@ msgid "Script"
 msgstr ""
 
 
-#: domainapp.fixture.DomainAppFixturesService#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
 #: org.apache.isis.applib.fixturescripts.FixtureScripts#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
+#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
+#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault#runFixtureScriptWithAutoComplete(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
 msgid "Script-specific parameters (if any).  The format depends on the script implementation (eg key=value, CSV, JSON, XML etc)"
 msgstr ""
 
 
-#: domainapp.dom.modules.simple.SimpleObjects#title()
+#: domainapp.dom.simple.SimpleObjects#title()
 msgid "Simple Objects"
 msgstr ""
 
@@ -194,12 +220,17 @@ msgid "Type"
 msgstr ""
 
 
-#: domainapp.dom.modules.simple.SimpleObject#updateName()
+#: domainapp.dom.simple.SimpleObject#updateName()
 msgid "Update Name"
 msgstr ""
 
 
-#: domainapp.dom.modules.simple.SimpleObject
+#: domainapp.dom.simple.SimpleObject#versionSequence
+msgid "Version Sequence"
+msgstr ""
+
+
+#: domainapp.dom.simple.SimpleObject
 msgid "name"
 msgstr ""