This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch dev/2.0.0/ISIS-1632-meta-annotations
in repository https://gitbox.apache.org/repos/asf/isis.git

commit fe425d86d3b4445c694e1997bac05b3dbdb2da2a
Merge: 1c05c0e acbcc5c
Author: Dan Haywood <d...@haywood-associates.co.uk>
AuthorDate: Sun Nov 12 18:40:14 2017 +0000

    Merge branch 'master' into dev/2.0.0/ISIS-1632-meta-annotations
    
    # Conflicts:
    #   
core/runtime/src/main/java/org/apache/isis/core/runtime/runner/IsisInjectModule.java
    #   
core/runtime/src/main/java/org/apache/isis/core/runtime/services/menubars/bootstrap3/MenuBarsServiceBS3.java
    #   
core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/InvokeKeys.java
    #   
core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
    #   
example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObject.java
    #   
example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
    #   
example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObject.java
    #   
example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjectRepository.java
    #   
example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObjectRepository_Test.java
    #   example/application/simpleapp/pom.xml

 .../asciidoc/applib/layout/component/component.xsd |  59 ++++--
 .../applib/layout/grid/bootstrap3/bootstrap3.xsd   |  19 +-
 .../main/asciidoc/applib/layout/links/links.xsd    |  16 ++
 .../applib/layout/menubars/bootstrap3/menubars.xsd |  50 +++++
 .../guides/cgcom/_cgcom_cutting-a-release.adoc     |   2 +-
 .../main/asciidoc/guides/rgcms/_rgcms_classes.adoc |   1 +
 .../guides/rgcms/_rgcms_classes_layout.adoc        |  53 +++--
 .../guides/rgcms/_rgcms_classes_menubars.adoc      |  90 ++++++++
 .../rgsvc/_rgsvc_presentation-layer-spi.adoc       |   2 +
 ...esentation-layer-spi_MenuBarsLoaderService.adoc |  32 +++
 ...svc_presentation-layer-spi_MenuBarsService.adoc |  30 ++-
 ...blocks_types-of-domain-objects_view-models.adoc |  44 +++-
 .../guides/ugvro/_ugvro_hints-and-tips.adoc        |   2 +
 ...vro_hints-and-tips_view-model-as-parameter.adoc |  70 ++++++
 .../guides/ugvro/_ugvro_layout-resources.adoc      | 235 +++++++++++++++++++++
 .../src/main/asciidoc/guides/ugvro/ugvro.adoc      |   1 +
 .../main/asciidoc/guides/ugvw/_ugvw_layout.adoc    |   6 +-
 .../guides/ugvw/_ugvw_layout_application-menu.adoc | 165 ---------------
 .../guides/ugvw/_ugvw_layout_file-based.adoc       |  62 +++---
 .../guides/ugvw/_ugvw_menubars-layout.adoc         |  39 ++++
 .../_ugvw_menubars-layout_annotation-based.adoc    | 126 +++++++++++
 .../ugvw/_ugvw_menubars-layout_file-based.adoc     | 105 +++++++++
 .../guides/ugvw/images/menubars/010-download.png   | Bin 0 -> 21017 bytes
 .../guides/ugvw/images/menubars/020-download.png   | Bin 0 -> 15727 bytes
 .../src/main/asciidoc/guides/ugvw/ugvw.adoc        |   1 +
 .../articles-and-presentations.adoc                |   3 +-
 .../applib/layout/component/ActionLayoutData.java  |  22 ++
 .../layout/component/CollectionLayoutData.java     |  20 ++
 .../layout/component/DomainObjectLayoutData.java   |  22 ++
 .../layout/component/PropertyLayoutData.java       |  22 ++
 .../ServiceActionLayoutData.java}                  |  64 ++++--
 .../ServiceActionLayoutDataOwner.java}             |  10 +-
 .../applib/layout/{component => grid}/Grid.java    |   7 +-
 .../layout/{component => grid}/GridAbstract.java   |  10 +-
 .../applib/layout/grid/bootstrap3/BS3Grid.java     |   4 +-
 .../org/apache/isis/applib/layout/links/Link.java  |  93 ++++++++
 .../layout/{menus => links}/package-info.java      |   6 +-
 .../Menu.java}                                     |  12 +-
 .../MenuBar.java}                                  |  11 +-
 .../isis/applib/layout/menubars/MenuBars.java      |  36 ++--
 .../applib/layout/menubars/MenuBarsAbstract.java   |  42 ++++
 .../MenuSection.java}                              |  12 +-
 .../Menu.java => menubars/bootstrap3/BS3Menu.java} |  36 +++-
 .../bootstrap3/BS3MenuBar.java}                    |  15 +-
 .../layout/menubars/bootstrap3/BS3MenuBars.java    | 201 ++++++++++++++++++
 .../bootstrap3/BS3MenuSection.java}                |  25 ++-
 .../bootstrap3}/package-info.java                  |   6 +-
 .../apache/isis/applib/layout/menus/MenuBars.java  | 111 ----------
 .../applib/services/grid/GridLoaderService.java    |   2 +-
 .../isis/applib/services/grid/GridService.java     |   4 +-
 .../applib/services/grid/GridSystemService.java    |   4 +-
 .../isis/applib/services/layout/LayoutService.java |   1 -
 .../applib/services/layout/LayoutService2.java}    |  28 +--
 .../applib/services/layout/LayoutServiceMenu.java  |  38 +++-
 .../menu/MenuBarsLoaderService.java}               |  22 +-
 .../isis/applib/services/menu/MenuBarsService.java |  40 +++-
 .../bootstrap3/BS3MenuBars_roundtrip_Test.java}    |  27 +--
 .../core/integtestsupport/IsisSystemForTest.java   |   2 +-
 .../core/commons/authentication/MessageBroker.java |   4 +
 .../metamodel/facets/object/grid/GridFacet.java    |   2 +-
 .../facets/object/grid/GridFacetDefault.java       |   2 +-
 .../services/grid/GridLoaderServiceDefault.java    |   2 +-
 .../services/grid/GridServiceDefault.java          |  37 ++--
 .../services/grid/GridSystemServiceAbstract.java   |   4 +-
 .../grid/bootstrap3/GridSystemServiceBS3.java      |   2 +-
 .../services/layout/LayoutServiceDefault.java      |  21 +-
 .../services/menubars/BS3MenuBarsTest.java         |  60 ++++++
 .../services/menubars/menubars.layout.xml          |  91 ++++++++
 core/pom.xml                                       |   5 +
 .../isis/core/runtime/runner/IsisInjectModule.java |   4 +-
 .../menubars/MenuBarsLoaderServiceDefault.java     |  66 ++++++
 .../bootstrap3/MenuBarsServiceBS3.java}            | 203 +++++++++++++++---
 .../bootstrap3}/ServiceAndAction.java              |   2 +-
 .../system/persistence/PersistenceSession.java     |   5 +-
 .../runtime/system/session/IsisSessionFactory.java |  11 +-
 .../system/session/IsisSessionFactoryBuilder.java  |  21 +-
 .../jmocking/JMockActionsTest_returnArgument.java  |   8 +-
 ...ockery2Test_mockAnnotatedWithNever_sadCase.java |   3 +-
 core/viewer-restfulobjects-applib/pom.xml          |   6 +-
 .../isis/viewer/restfulobjects/applib/Rel.java     |   1 +
 .../restfulobjects/applib/RepresentationType.java  |   8 +-
 .../restfulobjects/applib/RestfulMediaType.java    |   5 +
 .../applib/domainobjects/DomainObjectResource.java |  18 ++
 .../applib/domaintypes/DomainTypeResource.java     |   6 +-
 .../applib/menubars/MenuBarsResource.java          |   5 +-
 .../restfulobjects/applib/Rel_getName_Test.java    |  28 +++
 .../domainobjects/DomainObjectReprRenderer.java    |  16 +-
 .../rendering/domainobjects/InvokeKeys.java        |   4 +
 .../domaintypes/DomainTypeReprRenderer.java        |   7 +-
 .../resources/DomainObjectResourceServerside.java  | 115 ++++++++++
 .../resources/DomainTypeResourceServerside.java    |  14 +-
 .../resources/MenuBarsResourceServerside.java      |  38 +++-
 .../serialization/SerializationStrategy.java       |  82 +++++++
 .../serviceactions/ServiceActionUtil.java          |  23 +-
 .../serviceactions/ServiceActionsPanelFactory.java |   2 +-
 .../serviceactions/TertiaryMenuPanelFactory.java   |   2 +-
 .../CollectionContentsAsAjaxTablePanel.java        |   5 +-
 .../links/EntityLinksSelectorPanelFactory.java     |   2 +-
 .../viewer/wicket/ui/pages/entity/EntityPage.java  |   2 +-
 example/application/helloworld/pom.xml             |   8 -
 .../java/domainapp/application/menubars.layout.xml |  91 ++++++++
 .../java/domainapp/dom/impl/HelloWorldObject.java  |  43 ++--
 .../java/domainapp/dom/impl/HelloWorldObjects.java |  23 +-
 .../src/main/webapp/WEB-INF/logging.properties     |   2 +-
 .../helloworld/src/main/webapp/about/index.html    |   2 +-
 .../dom/impl/HelloWorldObjectTest_delete.java      |   2 +-
 .../dom/impl/HelloWorldObjectTest_updateName.java  |   2 +-
 .../application/manifest/menubars.layout.xml       |  91 ++++++++
 .../modules/simple/dom/impl/SimpleObject.java      |  57 ++---
 .../modules/simple/dom/impl/SimpleObjectMenu.java  |   3 +
 .../simple/dom/impl/SimpleObjectRepository.java    |  20 +-
 .../dom/impl/SimpleObjectRepository_Test.java      |   5 -
 .../src/main/webapp/WEB-INF/logging.properties     |   2 +-
 .../webapp/src/main/webapp/about/index.html        |   2 +-
 114 files changed, 2769 insertions(+), 694 deletions(-)

diff --cc 
adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_layout_file-based.adoc
index fbf9125,36c56cd..4f49ccf
--- 
a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_layout_file-based.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_layout_file-based.adoc
@@@ -20,16 -20,25 +20,17 @@@ It is also possible to download an init
  
  There are some downsides, though:
  
- * file-based layouts are not type: a typo will result in the metadata not 
being picked up for the element.
- They also suffer from syntactic fragility: an invalid XML document will 
result in no metadata for the entire class.
+ * file-based layouts are not typesafe: a typo will result in the metadata not 
being picked up for the element.
  
- * there is no notion of inheritance, so a `.layout.xml` is required for all 
concrete classes and also for any abstract classes (if used as a collection 
type)
+ * they suffer from syntactic fragility: an invalid XML document will result 
in no metadata for the entire class.
+ 
+ * there is no notion of inheritance, so a `.layout.xml` is required for all 
concrete classes and also for any abstract classes (if used as a collection 
type).
  In contrast, the dewey-decimal format `@MemberOrder` annotation allows the 
metadata of the subclass its superclasses to fit together relatively seamlessly.
  
- The `Xxx.layout.xml` file is just the serialized form of a 
xref:../rgcms/rgcms.adoc#_rgcms_classes_layout[`Grid`] layout class defined 
within Apache Isis' applib.  These are JAXB-annotated classes with 
corresponding XSD schemas; the upshot of that
- is that IDEs such as IntelliJ and Eclipse can provide "intellisense", making 
iteasy to author such layout files.
+ The `Xxx.layout.xml` file is just the serialized form of a 
xref:../rgcms/rgcms.adoc#_rgcms_classes_layout[`Grid`] layout class defined 
within Apache Isis' applib.
+ These are JAXB-annotated classes with corresponding XSD schemas; the upshot 
of that is that IDEs such as IntelliJ and Eclipse can provide "intellisense", 
making iteasy to author such layout files.
  
  
 -[NOTE]
 -====
 -It is also possible to describe layouts using a `.layout.json` file.
 -However, `.layout.json` support is deprecated; the ``.layout.xml`` file also 
enables much more sophisticated layouts than those afforded by ``.layout.json``.
 -
 -If you have an application with older `.layout.json` files, then it is 
possible to download initial `.layout.xml` files using the 
xref:../rgsvc/rgsvc.adoc#_rgsvc_metadata-api_LayoutService[`LayoutService`] 
(exposed as an action on the prototyping menu).
 -The `.layout.json` file will be ignored once a `.layout.xml` file is present.
 -====
  
  
  == Grids vs Components
diff --cc 
core/applib/src/main/java/org/apache/isis/applib/layout/component/PropertyLayoutData.java
index ac92c05,76bb144..97925a4
--- 
a/core/applib/src/main/java/org/apache/isis/applib/layout/component/PropertyLayoutData.java
+++ 
b/core/applib/src/main/java/org/apache/isis/applib/layout/component/PropertyLayoutData.java
@@@ -31,9 -31,8 +31,10 @@@ import com.google.common.collect.Lists
  
  import org.apache.isis.applib.annotation.LabelPosition;
  import org.apache.isis.applib.annotation.PromptStyle;
 +import org.apache.isis.applib.annotation.RenderDay;
 +import org.apache.isis.applib.annotation.Repainting;
  import org.apache.isis.applib.annotation.Where;
+ import org.apache.isis.applib.layout.links.Link;
  
  /**
   * Describes the layout of a single property, broadly corresponds to the 
{@link org.apache.isis.applib.annotation.PropertyLayout} annotation.
diff --cc 
core/runtime/src/main/java/org/apache/isis/core/runtime/runner/IsisInjectModule.java
index c07c33e,1d9f3cd..da533b3
--- 
a/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/IsisInjectModule.java
+++ 
b/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/IsisInjectModule.java
@@@ -22,6 -22,6 +22,8 @@@ package org.apache.isis.core.runtime.ru
  import java.util.List;
  import java.util.Map;
  
++import javax.ws.rs.HEAD;
++
  import com.google.inject.AbstractModule;
  import com.google.inject.Provides;
  import com.google.inject.Singleton;
@@@ -118,16 -104,14 +120,16 @@@ public class IsisInjectModule extends A
      @Provides
      @com.google.inject.Inject
      @Singleton
 -    protected IsisSessionFactory provideIsisSessionFactory(final AppManifest 
appManifestIfAny) {
 +    protected IsisSessionFactory provideIsisSessionFactory(
 +                    final AppManifest appManifestIfExplicitlyBound) {
  
 -        final AppManifest appManifest = appManifestIfAny != APP_MANIFEST_NOOP 
? appManifestIfAny : null;
 +        final AppManifest appManifestToUse = 
determineAppManifest(appManifestIfExplicitlyBound);
  
 -        final IsisComponentProviderUsingInstallers componentProvider =
 -                new IsisComponentProviderUsingInstallers(appManifest, 
isisConfiguration);
 +        final IsisComponentProvider componentProvider =
 +                new IsisComponentProviderUsingInstallers(appManifestToUse, 
isisConfiguration);
  
 -        final IsisSessionFactoryBuilder builder = new 
IsisSessionFactoryBuilder(componentProvider, deploymentCategory, 
componentProvider.getAppManifest());
 +        final IsisSessionFactoryBuilder builder =
-                 new IsisSessionFactoryBuilder(componentProvider, 
deploymentCategory);
++                new IsisSessionFactoryBuilder(componentProvider, 
deploymentCategory, componentProvider.getAppManifest());
  
          // as a side-effect, if the metamodel turns out to be invalid, then
          // this will push the MetaModelInvalidException into IsisContext.
diff --cc 
core/runtime/src/main/java/org/apache/isis/core/runtime/services/menubars/bootstrap3/MenuBarsServiceBS3.java
index eae62df,cae713f..8f81a4f
--- 
a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/menubars/bootstrap3/MenuBarsServiceBS3.java
+++ 
b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/menubars/bootstrap3/MenuBarsServiceBS3.java
@@@ -24,8 -25,8 +25,9 @@@ import java.util.Set
  
  import javax.inject.Inject;
  
+ import com.google.common.base.Joiner;
  import com.google.common.base.Predicate;
 +import com.google.common.base.Predicates;
  import com.google.common.base.Strings;
  import com.google.common.collect.FluentIterable;
  import com.google.common.collect.Lists;
@@@ -36,13 -40,18 +41,17 @@@ import org.apache.isis.applib.annotatio
  import org.apache.isis.applib.annotation.DomainServiceLayout;
  import org.apache.isis.applib.annotation.NatureOfService;
  import org.apache.isis.applib.annotation.Programmatic;
- import org.apache.isis.applib.layout.menus.ActionLayoutData;
- import org.apache.isis.applib.layout.menus.Menu;
- import org.apache.isis.applib.layout.menus.MenuBar;
- import org.apache.isis.applib.layout.menus.MenuBars;
- import org.apache.isis.applib.layout.menus.MenuSection;
 -import org.apache.isis.applib.filter.Filters;
+ import org.apache.isis.applib.layout.component.ServiceActionLayoutData;
+ import org.apache.isis.applib.layout.menubars.bootstrap3.BS3Menu;
+ import org.apache.isis.applib.layout.menubars.bootstrap3.BS3MenuBar;
+ import org.apache.isis.applib.layout.menubars.bootstrap3.BS3MenuBars;
+ import org.apache.isis.applib.layout.menubars.bootstrap3.BS3MenuSection;
+ import org.apache.isis.applib.services.jaxb.JaxbService;
+ import org.apache.isis.applib.services.menu.MenuBarsLoaderService;
  import org.apache.isis.applib.services.menu.MenuBarsService;
+ import org.apache.isis.applib.services.message.MessageService;
  import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+ import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProvider;
  import 
org.apache.isis.core.metamodel.facets.actions.notinservicemenu.NotInServiceMenuFacet;
  import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
  import org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet;
diff --cc 
core/unittestsupport/src/test/java/org/apache/isis/core/unittestsupport/jmocking/JMockActionsTest_returnArgument.java
index 5e5fdb4,5e5fdb4..a67fe0f
--- 
a/core/unittestsupport/src/test/java/org/apache/isis/core/unittestsupport/jmocking/JMockActionsTest_returnArgument.java
+++ 
b/core/unittestsupport/src/test/java/org/apache/isis/core/unittestsupport/jmocking/JMockActionsTest_returnArgument.java
@@@ -19,9 -19,9 +19,6 @@@
  
  package org.apache.isis.core.unittestsupport.jmocking;
  
--import static org.hamcrest.Matchers.is;
--import static org.junit.Assert.assertThat;
--
  import org.jmock.Expectations;
  import org.jmock.auto.Mock;
  import org.junit.Rule;
@@@ -29,6 -29,6 +26,9 @@@ import org.junit.Test
  
  import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
  
++import static org.hamcrest.Matchers.is;
++import static org.junit.Assert.assertThat;
++
  public class JMockActionsTest_returnArgument {
  
      @Rule
@@@ -41,7 -41,7 +41,7 @@@
      public void poke() {
          context.checking(new Expectations() {
              {
--                one(collaborator).selectOneOf(with(any(Integer.class)), 
with(any(Integer.class)), with(any(Integer.class)));
++                oneOf(collaborator).selectOneOf(with(any(Integer.class)), 
with(any(Integer.class)), with(any(Integer.class)));
                  will(JMockActions.returnArgument(1)); // ie the 2nd argument, 
which is '20'
              }
          });
diff --cc 
core/unittestsupport/src/test/java/org/apache/isis/core/unittestsupport/jmocking/JUnitRuleMockery2Test_mockAnnotatedWithNever_sadCase.java
index 798ee3f,798ee3f..dc9bd5f
--- 
a/core/unittestsupport/src/test/java/org/apache/isis/core/unittestsupport/jmocking/JUnitRuleMockery2Test_mockAnnotatedWithNever_sadCase.java
+++ 
b/core/unittestsupport/src/test/java/org/apache/isis/core/unittestsupport/jmocking/JUnitRuleMockery2Test_mockAnnotatedWithNever_sadCase.java
@@@ -20,7 -20,7 +20,6 @@@
  package org.apache.isis.core.unittestsupport.jmocking;
  
  import org.jmock.auto.Mock;
--import org.junit.Before;
  import org.junit.Rule;
  import org.junit.Test;
  import org.junit.rules.ExpectedException;
@@@ -53,7 -53,7 +52,7 @@@ public class JUnitRuleMockery2Test_mock
  
      @Test
      public void invocationOnCollaboratorIsIgnored() {
--        exp.handleAssertionErrors().expect(AssertionError.class);
++        exp.expect(AssertionError.class);
          collaborating.collaborateWithCollaborator();
      }
  
diff --cc 
core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/InvokeKeys.java
index 2c0d0a7,b83f3a6..a909c72
--- 
a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/InvokeKeys.java
+++ 
b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/InvokeKeys.java
@@@ -20,16 -20,18 +20,20 @@@ package org.apache.isis.viewer.restfulo
  
  import java.util.EnumMap;
  
 -import org.apache.isis.applib.annotation.ActionSemantics;
++import javax.ws.rs.HEAD;
++
 +import org.apache.isis.applib.annotation.SemanticsOf;
  
  public final class InvokeKeys {
      
 -    private final static EnumMap<ActionSemantics.Of, String> map = new 
EnumMap<ActionSemantics.Of, String>(ActionSemantics.Of.class);
 +    private final static EnumMap<SemanticsOf, String> map = new 
EnumMap<>(SemanticsOf.class);
      static {
 -        map.put(ActionSemantics.Of.SAFE_AND_REQUEST_CACHEABLE, 
"invokeQueryOnly");
 -        map.put(ActionSemantics.Of.SAFE, "invokeQueryOnly");
 -        map.put(ActionSemantics.Of.IDEMPOTENT, "invokeIdempotent");
 -        map.put(ActionSemantics.Of.IDEMPOTENT_ARE_YOU_SURE, 
"invokeIdempotent");
 -        map.put(ActionSemantics.Of.NON_IDEMPOTENT, "invoke");
 -        map.put(ActionSemantics.Of.NON_IDEMPOTENT_ARE_YOU_SURE, "invoke");
 +        map.put(SemanticsOf.SAFE_AND_REQUEST_CACHEABLE, "invokeQueryOnly");
 +        map.put(SemanticsOf.SAFE, "invokeQueryOnly");
 +        map.put(SemanticsOf.IDEMPOTENT, "invokeIdempotent");
++        map.put(SemanticsOf.IDEMPOTENT_ARE_YOU_SURE, "invokeIdempotent");
 +        map.put(SemanticsOf.NON_IDEMPOTENT, "invoke");
++        map.put(SemanticsOf.NON_IDEMPOTENT_ARE_YOU_SURE, "invoke");
      }
      
      private InvokeKeys() {
diff --cc 
core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java
index 5d7afcd,9de98f4..77278a4
--- 
a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java
+++ 
b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java
@@@ -31,8 -32,14 +32,14 @@@ import javax.ws.rs.core.MediaType
  import javax.ws.rs.core.Response;
  
  import org.apache.isis.applib.annotation.Where;
+ import org.apache.isis.applib.layout.component.ActionLayoutData;
+ import org.apache.isis.applib.layout.component.CollectionLayoutData;
+ import org.apache.isis.applib.layout.component.DomainObjectLayoutData;
+ import org.apache.isis.applib.layout.component.PropertyLayoutData;
+ import org.apache.isis.applib.layout.grid.Grid;
+ import org.apache.isis.applib.layout.links.Link;
  import org.apache.isis.applib.services.command.Command;
 -import org.apache.isis.core.commons.url.UrlEncodingUtils;
 +import org.apache.isis.core.commons.url.UrlDecoderUtil;
  import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
  import org.apache.isis.core.metamodel.consent.Consent;
  import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
diff --cc 
core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
index 5188ca6,dc8d842..40ce3cc
--- 
a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
+++ 
b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
@@@ -22,6 -22,6 +22,7 @@@ package org.apache.isis.viewer.wicket.u
  import java.util.List;
  import java.util.Map;
  
++import com.google.common.base.Predicate;
  import com.google.common.collect.Lists;
  import com.google.common.collect.Maps;
  
@@@ -32,9 -32,9 +33,7 @@@ import org.apache.wicket.extensions.mar
  import org.apache.wicket.model.Model;
  
  import org.apache.isis.applib.annotation.Where;
- import com.google.common.base.Predicate;
- 
- import org.apache.isis.applib.layout.component.Grid;
 -import org.apache.isis.applib.filter.Filter;
 -import org.apache.isis.applib.filter.Filters;
+ import org.apache.isis.applib.layout.grid.Grid;
  import org.apache.isis.applib.services.tablecol.TableColumnOrderService;
  import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
  import 
org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
diff --cc example/application/helloworld/pom.xml
index ca4d589,d13f547..50b4625
--- a/example/application/helloworld/pom.xml
+++ b/example/application/helloworld/pom.xml
@@@ -36,10 -36,8 +36,8 @@@
      <packaging>war</packaging>
  
      <properties>
 -        <isis.version>1.16.0-SNAPSHOT</isis.version>
 +        <isis.version>2.0.0-SNAPSHOT</isis.version>
  
-         <lombok.version>1.16.18</lombok.version>
- 
          <compiler-plugin.source>1.8</compiler-plugin.source>
          <compiler-plugin.target>1.8</compiler-plugin.target>
          <compiler-plugin.compilerArgument></compiler-plugin.compilerArgument>
diff --cc 
example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObject.java
index b8bbcfa,672a528..2fe8bb8
--- 
a/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObject.java
+++ 
b/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObject.java
@@@ -21,8 -21,8 +21,10 @@@ package domainapp.dom.impl
  import javax.jdo.annotations.IdGeneratorStrategy;
  import javax.jdo.annotations.IdentityType;
  import javax.jdo.annotations.VersionStrategy;
++import javax.ws.rs.HEAD;
  
+ import com.google.common.collect.ComparisonChain;
 +import com.google.common.collect.Ordering;
  
  import org.apache.isis.applib.annotation.Action;
  import org.apache.isis.applib.annotation.Auditing;
diff --cc 
example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
index 2f4dc51,242cf7e..92bd565
--- 
a/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
+++ 
b/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
@@@ -28,8 -30,7 +30,8 @@@ import org.apache.isis.applib.annotatio
  import org.apache.isis.applib.annotation.ParameterLayout;
  import org.apache.isis.applib.annotation.RestrictTo;
  import org.apache.isis.applib.annotation.SemanticsOf;
- import org.apache.isis.applib.query.QueryDefault;
+ import org.apache.isis.applib.services.jdosupport.IsisJdoSupport;
 +import org.apache.isis.applib.services.registry.ServiceRegistry;
  import org.apache.isis.applib.services.repository.RepositoryService;
  
  @DomainService(
diff --cc 
example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObject.java
index 0e298c0,92f64b1..d0999ba
--- 
a/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObject.java
+++ 
b/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObject.java
@@@ -27,54 -29,45 +29,43 @@@ import org.apache.isis.applib.annotatio
  import org.apache.isis.applib.annotation.DomainObject;
  import org.apache.isis.applib.annotation.DomainObjectLayout;
  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.Publishing;
  import org.apache.isis.applib.annotation.SemanticsOf;
  import org.apache.isis.applib.annotation.Title;
+ import org.apache.isis.applib.services.i18n.TranslatableString;
  import org.apache.isis.applib.services.message.MessageService;
  import org.apache.isis.applib.services.repository.RepositoryService;
  import org.apache.isis.applib.services.title.TitleService;
  
 +import domainapp.modules.simple.dom.types.Name;
- import lombok.RequiredArgsConstructor;
- 
- @javax.jdo.annotations.PersistenceCapable(
-         identityType=IdentityType.DATASTORE,
-         schema = "simple"
- )
- @javax.jdo.annotations.DatastoreIdentity(
-         strategy=javax.jdo.annotations.IdGeneratorStrategy.IDENTITY,
-         column="id")
- @javax.jdo.annotations.Version(
-         strategy= VersionStrategy.DATE_TIME,
-         column="version")
- @javax.jdo.annotations.Queries({
-         @javax.jdo.annotations.Query(
-                 name = "findByName",
-                 value = "SELECT "
-                         + "FROM 
domainapp.modules.simple.dom.impl.SimpleObject "
-                         + "WHERE name.indexOf(:name) >= 0 ")
- })
+ import lombok.AccessLevel;
+ 
+ 
@javax.jdo.annotations.PersistenceCapable(identityType=IdentityType.DATASTORE, 
schema = "simple")
+ 
@javax.jdo.annotations.DatastoreIdentity(strategy=javax.jdo.annotations.IdGeneratorStrategy.IDENTITY,
 column="id")
+ @javax.jdo.annotations.Version(strategy= VersionStrategy.DATE_TIME, 
column="version")
  @javax.jdo.annotations.Unique(name="SimpleObject_name_UNQ", members = 
{"name"})
- @DomainObject() // objectType inferred from @PersistenceCapable#schema
- @DomainObjectLayout() // to trigger UI events
- @RequiredArgsConstructor
+ @DomainObject(auditing = Auditing.ENABLED)
+ @DomainObjectLayout()  // causes UI events to be triggered
+ @lombok.Getter @lombok.Setter
+ @lombok.RequiredArgsConstructor
  public class SimpleObject implements Comparable<SimpleObject> {
  
 -    @javax.jdo.annotations.Column(allowsNull = "false", length = 40)
 -    @lombok.NonNull
 -    @Property() // editing disabled by default, see isis.properties
 +
 +    @javax.jdo.annotations.Column(allowsNull = "false", length = Name.MAX_LEN)
 +    @lombok.Getter @lombok.Setter @lombok.NonNull
      @Title(prepend = "Object: ")
 -    private String name;
 +    @Name private String name;
  
      @javax.jdo.annotations.Column(allowsNull = "true", length = 4000)
 +    @lombok.Getter @lombok.Setter
      @Property(editing = Editing.ENABLED)
      private String notes;
  
  
-     @Action(semantics = SemanticsOf.IDEMPOTENT)
+     @Action(semantics = SemanticsOf.IDEMPOTENT, command = 
CommandReification.ENABLED, publishing = Publishing.ENABLED)
      public SimpleObject updateName(
 -            @Parameter(maxLength = 40)
 -            @ParameterLayout(named = "Name")
 -            final String name) {
 +            @Name final String name) {
          setName(name);
          return this;
      }

-- 
To stop receiving notification emails like this one, please contact
"commits@isis.apache.org" <commits@isis.apache.org>.

Reply via email to