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 2017/02/18 16:10:33 UTC
[10/15] isis git commit: ISIS-1561: recreating simpleapp archetype
ISIS-1561: recreating simpleapp archetype
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/1a43d75d
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/1a43d75d
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/1a43d75d
Branch: refs/heads/master
Commit: 1a43d75d992a5e4dca9647931060b2c753c11319
Parents: e3817a5
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Feb 16 00:18:33 2017 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Feb 16 00:18:33 2017 +0000
----------------------------------------------------------------------
example/archetype/simpleapp/pom.xml | 7 +-
.../META-INF/maven/archetype-metadata.xml | 6 +
.../resources/archetype-resources/README.adoc | 16 +-
...nAppFixtureScriptsSpecificationProvider.java | 4 +-
.../manifest/DomainAppAppManifest.java | 73 +++-
.../DomainAppAppManifestBypassSecurity.java | 10 +-
.../DomainAppAppManifestWithFixtures.java | 23 +-
...ppAppManifestWithFixturesBypassSecurity.java | 10 +-
.../services/dbmanager/HsqlDbManagerMenu.java | 3 +-
.../services/homepage/HomePageService.java | 3 +-
.../services/homepage/HomePageViewModel.java | 8 +-
.../application/manifest/isis.properties | 398 +++++++++++++++++++
.../modules/simple/dom/impl/SimpleObject.java | 9 +-
.../simple/dom/impl/SimpleObjectMenu.java | 2 +-
.../fixture/scenario/CreateSimpleObjects.java | 18 +-
.../fixture/scenario/SimpleObjectData.java | 52 +++
.../SimpleModuleIntegTestAbstract.java | 4 +-
.../tests/SimpleObject_IntegTest.java | 10 +-
.../main/resources/archetype-resources/pom.xml | 16 +-
.../archetype-resources/webapp/pom.xml | 7 +-
.../src/main/webapp/WEB-INF/isis.properties | 266 +------------
.../main/webapp/WEB-INF/persistor.properties | 15 -
.../WEB-INF/persistor_datanucleus.properties | 94 -----
.../projects/basic/archetype.properties | 2 +-
24 files changed, 599 insertions(+), 457 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/1a43d75d/example/archetype/simpleapp/pom.xml
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/pom.xml b/example/archetype/simpleapp/pom.xml
index ba53779..fa30929 100644
--- a/example/archetype/simpleapp/pom.xml
+++ b/example/archetype/simpleapp/pom.xml
@@ -17,7 +17,7 @@
specific language governing permissions and limitations
under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.isis.archetype</groupId>
<artifactId>simpleapp-archetype</artifactId>
@@ -45,12 +45,11 @@
<connection>scm:git:git@github.com:danhaywood/java-mavenmixin-standard.git</connection>
<developerConnection>scm:git:git@github.com:danhaywood/java-mavenmixin-standard.git</developerConnection>
<url>git@github.com:danhaywood/java-mavenmixin-standard.git</url>
- <tag>HEAD</tag>
- </scm>
+ </scm>
<parent>
<groupId>org.apache.isis.core</groupId>
<artifactId>isis</artifactId>
- <version>1.13.2</version>
+ <version>1.14.0</version>
<relativePath>../../../core/pom.xml</relativePath>
</parent>
<properties>
http://git-wip-us.apache.org/repos/asf/isis/blob/1a43d75d/example/archetype/simpleapp/src/main/resources/META-INF/maven/archetype-metadata.xml
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/META-INF/maven/archetype-metadata.xml b/example/archetype/simpleapp/src/main/resources/META-INF/maven/archetype-metadata.xml
index 60a0ce5..5d02ab8 100644
--- a/example/archetype/simpleapp/src/main/resources/META-INF/maven/archetype-metadata.xml
+++ b/example/archetype/simpleapp/src/main/resources/META-INF/maven/archetype-metadata.xml
@@ -118,6 +118,12 @@
</includes>
</fileSet>
<fileSet filtered="true" encoding="UTF-8">
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>**/*.properties</include>
+ </includes>
+ </fileSet>
+ <fileSet filtered="true" encoding="UTF-8">
<directory>src/test/java</directory>
<includes>
<include>**/*.java</include>
http://git-wip-us.apache.org/repos/asf/isis/blob/1a43d75d/example/archetype/simpleapp/src/main/resources/archetype-resources/README.adoc
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/README.adoc b/example/archetype/simpleapp/src/main/resources/archetype-resources/README.adoc
index 0849274..5fb9fc0 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/README.adoc
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/README.adoc
@@ -177,7 +177,7 @@ mvn -DskipTests
+
[source,bash]
----
-mvn -Dskip.danhaywood-mavenmixin-isisvalidate
+mvn -Dskip.mavenmixin-isisvalidate
----
@@ -185,7 +185,7 @@ mvn -Dskip.danhaywood-mavenmixin-isisvalidate
+
[source,bash]
----
-mvn -Dskip.danhaywood-mavenmixin-cucumberreporting
+mvn -Dskip.mavenmixin-cucumberreporting
----
+
[TIP]
@@ -197,7 +197,7 @@ By default, cucumber reports are generated at `target/cucumber-html-reports/over
+
[source,bash]
----
-mvn -Dskip.danhaywood-mavenmixin-isisswagger
+mvn -Dskip.mavenmixin-isisswagger
----
+
[TIP]
@@ -209,7 +209,7 @@ By default, Swagger spec files are generated at `target/generated-resources/isis
+
[source,bash]
----
-mvn package -Dmavenmixin-docker
+mvn install -Dmavenmixin-docker
----
+
This assumes that the `${docker-plugin.imageName}` property has been defined in the `webapp` module.
@@ -217,7 +217,7 @@ Alternatively it can be specified on the command line using a system property, e
+
[source,bash]
----
-mvn package -Dmavenmixin-docker -Ddocker-plugin.imageName=mycompany/myapp
+mvn install -Dmavenmixin-docker -Ddocker-plugin.imageName=mycompany/myapp
----
+
The packaged image can be viewed using `docker images`.
@@ -226,16 +226,18 @@ The packaged image can be viewed using `docker images`.
+
[source,bash]
----
-docker run -d -p 8080:8080 mycompany/myapp
+docker container run -d -p 8080:8080 mycompany/myapp
----
+
+This can then be accessed at link:http://localhost:8080[localhost:8080].
++
See link:https://github.com/danhaywood/java-mavenmixin-docker#how-to-consume[mavenmixin-docker] for further details on how to run docker images.
* To upload the application as a docker image to link:https://hub.docker.com[docker hub] (or some other docker registry): +
+
[source,bash]
----
-mvn deploy -Dmavenmixin-docker
+mvn -pl webapp deploy -Dmavenmixin-docker
----
+
This assumes that the `${docker-plugin.imageName}` property has been defined, _and_ also that docker registry credentials have been specified in `~/.m2/settings.xml`.
http://git-wip-us.apache.org/repos/asf/isis/blob/1a43d75d/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/fixture/DomainAppFixtureScriptsSpecificationProvider.java
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/fixture/DomainAppFixtureScriptsSpecificationProvider.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/fixture/DomainAppFixtureScriptsSpecificationProvider.java
index d257dbc..68db9e9 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/fixture/DomainAppFixtureScriptsSpecificationProvider.java
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/fixture/DomainAppFixtureScriptsSpecificationProvider.java
@@ -32,7 +32,9 @@ import domainapp.application.fixture.scenarios.DomainAppDemo;
/**
* Specifies where to find fixtures, and other settings.
*/
-@DomainService(nature = NatureOfService.DOMAIN)
+@DomainService(
+ nature = NatureOfService.DOMAIN
+)
public class DomainAppFixtureScriptsSpecificationProvider implements FixtureScriptsSpecificationProvider {
@Override
public FixtureScriptsSpecification getSpecification() {
http://git-wip-us.apache.org/repos/asf/isis/blob/1a43d75d/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/DomainAppAppManifest.java
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/DomainAppAppManifest.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/DomainAppAppManifest.java
index c7dd2cc..6070f20 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/DomainAppAppManifest.java
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/DomainAppAppManifest.java
@@ -21,10 +21,16 @@
*/
package domainapp.application.manifest;
+import java.io.IOException;
+import java.io.InputStream;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
+import java.util.Properties;
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
import org.apache.isis.applib.AppManifest;
import org.apache.isis.applib.fixturescripts.FixtureScript;
@@ -38,16 +44,44 @@ import domainapp.modules.simple.dom.SimpleModuleDomSubmodule;
*/
public class DomainAppAppManifest implements AppManifest {
+ private final List<Class<? extends FixtureScript>> fixtureScripts;
+ private final String authMechanism;
+ private final List<Class<?>> additionalModules;
+
+ public DomainAppAppManifest() {
+ this(
+ Collections.<Class<? extends FixtureScript>>emptyList(),
+ null,
+ Collections.<Class<?>>emptyList()
+ );
+ }
+
+ public DomainAppAppManifest(
+ final List<Class<? extends FixtureScript>> fixtureScripts,
+ final String authMechanism,
+ final List<Class<?>> additionalModules) {
+ this.fixtureScripts = elseEmptyIfNull(fixtureScripts);
+ this.authMechanism = authMechanism != null ? authMechanism : "shiro";
+ this.additionalModules = elseEmptyIfNull(additionalModules);
+ }
+
+ private static <T> List<T> elseEmptyIfNull(final List<T> list) {
+ return list == null ? Collections.<T>emptyList() : list;
+ }
+
/**
* Load all services and entities found in (the packages and subpackages within) these modules
*/
@Override
public List<Class<?>> getModules() {
- return Arrays.asList(
+ List<Class<?>> modules = Lists.newArrayList();
+ modules.addAll(Arrays.asList(
SimpleModuleDomSubmodule.class,
DomainAppApplicationModuleFixtureSubmodule.class,
DomainAppApplicationModuleServicesSubmodule.class
- );
+ ));
+ modules.addAll(additionalModules);
+ return modules;
}
/**
@@ -63,7 +97,7 @@ public class DomainAppAppManifest implements AppManifest {
*/
@Override
public String getAuthenticationMechanism() {
- return "shiro";
+ return authMechanism;
}
/**
@@ -71,7 +105,7 @@ public class DomainAppAppManifest implements AppManifest {
*/
@Override
public String getAuthorizationMechanism() {
- return "shiro";
+ return authMechanism;
}
/**
@@ -79,7 +113,7 @@ public class DomainAppAppManifest implements AppManifest {
*/
@Override
public List<Class<? extends FixtureScript>> getFixtures() {
- return Collections.emptyList();
+ return fixtureScripts;
}
/**
@@ -87,7 +121,34 @@ public class DomainAppAppManifest implements AppManifest {
*/
@Override
public Map<String, String> getConfigurationProperties() {
- return null;
+ final Map<String, String> props = Maps.newHashMap();
+
+ loadPropsInto(props, "isis.properties");
+
+ if(!fixtureScripts.isEmpty()) {
+ props.put("isis.persistor.datanucleus.install-fixtures", "true");
+ }
+
+ return props;
+ }
+
+ static void loadPropsInto(final Map<String, String> props, final String propertiesFile) {
+ final Properties properties = new Properties();
+ try {
+ try (final InputStream stream =
+ DomainAppAppManifest.class.getResourceAsStream(propertiesFile)) {
+ properties.load(stream);
+ for (Object key : properties.keySet()) {
+ final Object value = properties.get(key);
+ if(key instanceof String && value instanceof String) {
+ props.put((String)key, (String)value);
+ }
+ }
+ }
+ } catch (IOException e) {
+ throw new RuntimeException(
+ String.format("Failed to load '%s' file ", propertiesFile), e);
+ }
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/1a43d75d/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestBypassSecurity.java
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestBypassSecurity.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestBypassSecurity.java
index 15d5e7a..0c04b98 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestBypassSecurity.java
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestBypassSecurity.java
@@ -26,13 +26,7 @@ package domainapp.application.manifest;
*/
public class DomainAppAppManifestBypassSecurity extends DomainAppAppManifest {
- @Override
- public String getAuthenticationMechanism() {
- return "bypass";
- }
-
- @Override
- public String getAuthorizationMechanism() {
- return "bypass";
+ public DomainAppAppManifestBypassSecurity() {
+ super(null, "bypass", null);
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/1a43d75d/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestWithFixtures.java
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestWithFixtures.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestWithFixtures.java
index 0712ea6..4289d82 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestWithFixtures.java
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestWithFixtures.java
@@ -21,14 +21,9 @@
*/
package domainapp.application.manifest;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-
-import org.apache.isis.applib.fixturescripts.FixtureScript;
import domainapp.modules.simple.fixture.scenario.CreateSimpleObjects;
@@ -37,22 +32,12 @@ import domainapp.modules.simple.fixture.scenario.CreateSimpleObjects;
*/
public class DomainAppAppManifestWithFixtures extends DomainAppAppManifest {
- /**
- * Fixtures to be installed.
- */
- @Override
- public List<Class<? extends FixtureScript>> getFixtures() {
- return Lists.newArrayList(CreateSimpleObjects.class);
+ public DomainAppAppManifestWithFixtures() {
+ this(null);
}
- /**
- * Force fixtures to be loaded.
- */
- @Override
- public Map<String, String> getConfigurationProperties() {
- HashMap<String,String> props = Maps.newHashMap();
- props.put("isis.persistor.datanucleus.install-fixtures","true");
- return props;
+ public DomainAppAppManifestWithFixtures(final String authMechanism) {
+ super((List)Lists.newArrayList(CreateSimpleObjects.class), authMechanism, null);
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/1a43d75d/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestWithFixturesBypassSecurity.java
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestWithFixturesBypassSecurity.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestWithFixturesBypassSecurity.java
index c4a7c98..30805c4 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestWithFixturesBypassSecurity.java
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestWithFixturesBypassSecurity.java
@@ -26,13 +26,7 @@ package domainapp.application.manifest;
*/
public class DomainAppAppManifestWithFixturesBypassSecurity extends DomainAppAppManifestWithFixtures {
- @Override
- public String getAuthenticationMechanism() {
- return "bypass";
- }
-
- @Override
- public String getAuthorizationMechanism() {
- return "bypass";
+ public DomainAppAppManifestWithFixturesBypassSecurity() {
+ super("bypass");
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/1a43d75d/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/services/dbmanager/HsqlDbManagerMenu.java
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/services/dbmanager/HsqlDbManagerMenu.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/services/dbmanager/HsqlDbManagerMenu.java
index 87d6f5e..9187dd9 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/services/dbmanager/HsqlDbManagerMenu.java
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/services/dbmanager/HsqlDbManagerMenu.java
@@ -38,7 +38,8 @@ import org.apache.isis.applib.annotation.RestrictTo;
import org.apache.isis.applib.annotation.SemanticsOf;
@DomainService(
- nature = NatureOfService.VIEW_MENU_ONLY
+ nature = NatureOfService.VIEW_MENU_ONLY,
+ objectType = "prototyping.HsqlDbManagerMenu"
)
@DomainServiceLayout(
named = "Prototyping",
http://git-wip-us.apache.org/repos/asf/isis/blob/1a43d75d/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/services/homepage/HomePageService.java
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/services/homepage/HomePageService.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/services/homepage/HomePageService.java
index 0ada068..07efddb 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/services/homepage/HomePageService.java
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/services/homepage/HomePageService.java
@@ -29,7 +29,8 @@ import org.apache.isis.applib.annotation.SemanticsOf;
import org.apache.isis.applib.services.factory.FactoryService;
@DomainService(
- nature = NatureOfService.VIEW_CONTRIBUTIONS_ONLY // trick to suppress the actions from the top-level menu
+ nature = NatureOfService.DOMAIN, // trick to suppress the actions from the top-level menu
+ objectType = "homepage.HomePageService"
)
public class HomePageService {
http://git-wip-us.apache.org/repos/asf/isis/blob/1a43d75d/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/services/homepage/HomePageViewModel.java
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/services/homepage/HomePageViewModel.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/services/homepage/HomePageViewModel.java
index eac86fe..b9d101a 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/services/homepage/HomePageViewModel.java
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/services/homepage/HomePageViewModel.java
@@ -23,13 +23,17 @@ package domainapp.application.services.homepage;
import java.util.List;
-import org.apache.isis.applib.annotation.ViewModel;
+import org.apache.isis.applib.annotation.DomainObject;
+import org.apache.isis.applib.annotation.Nature;
import org.apache.isis.applib.services.i18n.TranslatableString;
import domainapp.modules.simple.dom.impl.SimpleObject;
import domainapp.modules.simple.dom.impl.SimpleObjectRepository;
-@ViewModel
+@DomainObject(
+ nature = Nature.VIEW_MODEL,
+ objectType = "homepage.HomePageViewModel"
+)
public class HomePageViewModel {
public TranslatableString title() {
http://git-wip-us.apache.org/repos/asf/isis/blob/1a43d75d/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/resources/domainapp/application/manifest/isis.properties
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/resources/domainapp/application/manifest/isis.properties b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/resources/domainapp/application/manifest/isis.properties
new file mode 100644
index 0000000..5967b0d
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/resources/domainapp/application/manifest/isis.properties
@@ -0,0 +1,398 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+${symbol_pound} Licensed to the Apache Software Foundation (ASF) under one
+${symbol_pound} or more contributor license agreements. See the NOTICE file
+${symbol_pound} distributed with this work for additional information
+${symbol_pound} regarding copyright ownership. The ASF licenses this file
+${symbol_pound} to you under the Apache License, Version 2.0 (the
+${symbol_pound} "License"); you may not use this file except in compliance
+${symbol_pound} with the License. You may obtain a copy of the License at
+${symbol_pound}
+${symbol_pound} http://www.apache.org/licenses/LICENSE-2.0
+${symbol_pound}
+${symbol_pound} Unless required by applicable law or agreed to in writing,
+${symbol_pound} software distributed under the License is distributed on an
+${symbol_pound} "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+${symbol_pound} KIND, either express or implied. See the License for the
+${symbol_pound} specific language governing permissions and limitations
+${symbol_pound} under the License.
+
+
+
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
+${symbol_pound}
+${symbol_pound} MetaModel
+${symbol_pound}
+${symbol_pound} The metamodel typically does not require additional configuration, although
+${symbol_pound} the system components (defined above) may refine the metamodel for their needs.
+${symbol_pound}
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
+
+
+${symbol_pound}
+${symbol_pound} Additional programming model facet factories, or remove standard facet factories.
+${symbol_pound} Comma separated list of fully qualified class names.
+${symbol_pound}
+${symbol_pound}isis.reflector.facets.include=
+${symbol_pound}isis.reflector.facets.exclude=
+
+
+${symbol_pound}
+${symbol_pound} Metamodel validation (in addition to that automatically performed by the programming model facet factories)
+${symbol_pound} Default implementation does nothing.
+${symbol_pound}
+${symbol_pound} Use a custom implementation to enforce additional constraints specific to your app/project/company.
+${symbol_pound}
+${symbol_pound}isis.reflector.validator=org.apache.isis.core.metamodel.metamodelvalidator.dflt.MetaModelValidatorDefault
+
+
+
+${symbol_pound}
+${symbol_pound} Whether to allow deprecated annotations/method prefixes (otherwise raise metamodel validation errors).
+${symbol_pound} If not specified, default is to allow.
+${symbol_pound}
+isis.reflector.validator.allowDeprecated=false
+
+
+${symbol_pound}
+${symbol_pound} Whether to validate JDOQL clauses. If not specified, default is to validate.
+${symbol_pound}
+${symbol_pound}isis.reflector.validator.jdoqlFromClause=true
+${symbol_pound}isis.reflector.validator.jdoqlVariablesClause=true
+
+
+${symbol_pound}
+${symbol_pound} Whether to only allow hideXxx() and disableXxx() methods with no params.
+${symbol_pound} If not specified, defaults to false (ie will also search for methods with parameter types matching the action).
+${symbol_pound}
+isis.reflector.validator.noParamsOnly=true
+
+
+${symbol_pound}
+${symbol_pound} Whether to require the object type to be specified explicitly for entities.
+${symbol_pound} If not specified, defaults to false
+${symbol_pound}
+isis.reflector.validator.explicitObjectType=true
+
+
+${symbol_pound}
+${symbol_pound} Whether to ignore or honour (at least some of the) deprecated annotations/method prefixes.
+${symbol_pound} If not specified, default is to honour
+${symbol_pound}
+${symbol_pound}isis.reflector.facets.ignoreDeprecated=false
+
+
+${symbol_pound}
+${symbol_pound} Whether to enforce the rule that domain services can only declare actions, not properties and collections.
+${symbol_pound} If not specified, defaults to false
+${symbol_pound}
+isis.reflector.validator.serviceActionsOnly=true
+
+
+${symbol_pound}
+${symbol_pound} Whether to use only mixins, and no contributed services.
+${symbol_pound} If not specified, defaults to false
+${symbol_pound}
+isis.reflector.validator.mixinsOnly=true
+
+
+${symbol_pound}
+${symbol_pound} Implementation to use for reading dynamic layout.
+${symbol_pound} Default implementation reads Xxx.layout.json files from classpath.
+${symbol_pound}
+${symbol_pound}isis.reflector.layoutMetadataReaders=org.apache.isis.core.metamodel.layoutmetadata.json.LayoutMetadataReaderFromJson
+
+
+${symbol_pound}
+${symbol_pound} patterns for applying CssClassFa facet (font-awesome icons), matching on action names
+${symbol_pound}
+isis.reflector.facet.cssClassFa.patterns=${symbol_escape}
+ new.*:fa-plus,${symbol_escape}
+ add.*:fa-plus-square,${symbol_escape}
+ create.*:fa-plus,${symbol_escape}
+ update.*:fa-edit,${symbol_escape}
+ change.*:fa-edit,${symbol_escape}
+ remove.*:fa-minus-square,${symbol_escape}
+ move.*:fa-exchange,${symbol_escape}
+ first.*:fa-star,${symbol_escape}
+ find.*:fa-search,${symbol_escape}
+ lookup.*:fa-search,${symbol_escape}
+ clear.*:fa-remove,${symbol_escape}
+ previous.*:fa-step-backward,${symbol_escape}
+ next.*:fa-step-forward,${symbol_escape}
+ list.*:fa-list, ${symbol_escape}
+ all.*:fa-list, ${symbol_escape}
+ download.*:fa-download, ${symbol_escape}
+ upload.*:fa-upload, ${symbol_escape}
+ execute.*:fa-bolt, ${symbol_escape}
+ run.*:fa-bolt, ${symbol_escape}
+ calculate.*:fa-calculator, ${symbol_escape}
+ verify.*:fa-check-circle, ${symbol_escape}
+ refresh.*:fa-refresh, ${symbol_escape}
+ install.*:fa-wrench
+
+
+${symbol_pound}
+${symbol_pound} patterns for applying CssClass facet (CSS styles), matching on member names
+${symbol_pound}
+isis.reflector.facet.cssClass.patterns=${symbol_escape}
+ delete.*:btn-danger
+
+
+${symbol_pound}
+${symbol_pound} whether to suppress posting of events if not specified (left as Xxx.Default); defaults to true
+${symbol_pound}
+
+${symbol_pound}isis.reflector.facet.actionAnnotation.domainEvent.postForDefault=false
+${symbol_pound}isis.reflector.facet.collectionAnnotation.domainEvent.postForDefault=false
+${symbol_pound}isis.reflector.facet.propertyAnnotation.domainEvent.postForDefault=false
+
+${symbol_pound}isis.reflector.facet.domainObjectLayoutAnnotation.cssClassUiEvent.postForDefault=false
+${symbol_pound}isis.reflector.facet.domainObjectLayoutAnnotation.iconUiEvent.postForDefault=false
+${symbol_pound}isis.reflector.facet.domainObjectLayoutAnnotation.titleUiEvent.postForDefault=false
+
+isis.reflector.facet.domainObjectAnnotation.createdLifecycleEvent.postForDefault=false
+isis.reflector.facet.domainObjectAnnotation.persistingLifecycleEvent.postForDefault=false
+isis.reflector.facet.domainObjectAnnotation.persistedLifecycleEvent.postForDefault=false
+isis.reflector.facet.domainObjectAnnotation.loadedLifecycleEvent.postForDefault=false
+isis.reflector.facet.domainObjectAnnotation.updatingLifecycleEvent.postForDefault=false
+isis.reflector.facet.domainObjectAnnotation.updatedLifecycleEvent.postForDefault=false
+isis.reflector.facet.domainObjectAnnotation.removingLifecycleEvent.postForDefault=false
+
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
+${symbol_pound}
+${symbol_pound} Domain Service configuration
+${symbol_pound}
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
+
+${symbol_pound}
+${symbol_pound} required by EmailServiceDefault
+${symbol_pound}
+${symbol_pound}isis.service.email.sender.address=some.valid@email.address
+${symbol_pound}isis.service.email.sender.password=the.password.for-isis.service.email.sender.address
+
+
+${symbol_pound}
+${symbol_pound} whether ExceptionRecognizers should also log any recognized exceptions
+${symbol_pound} (default false; enable for diagnostics/debugging)
+${symbol_pound}
+${symbol_pound}isis.services.exceprecog.logRecognizedExceptions=true
+
+
+${symbol_pound}
+${symbol_pound} disable to (automatically registered) ExceptionRecognizerCompositeForJdoObjectStore service
+${symbol_pound} almost all of this service should be registered. Since all exception recognizer implementations
+${symbol_pound} are consulted in the event of an exception, it's not sufficient to override the implementation
+${symbol_pound} (in isis.services); instead this configuration property disables this particular implementation.
+${symbol_pound}
+${symbol_pound}isis.services.ExceptionRecognizerCompositeForJdoObjectStore.disable=true
+
+
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
+${symbol_pound}
+${symbol_pound} Auditing, Commands, Publishing
+${symbol_pound}
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
+
+${symbol_pound}
+${symbol_pound} Whether changes to objects should be audited; if not set, defaults to "none"
+${symbol_pound} - if not set or set to "none", can explicitly enable using @DomainObject(auditing=Auditing.ENABLED)
+${symbol_pound} - if set to "all", can explicitly disable using @Object(auditing=Auditing.DISABLED)
+${symbol_pound}
+${symbol_pound}isis.services.audit.objects=all|none
+
+
+${symbol_pound}
+${symbol_pound} Whether changes to objects should be published; if not set, defaults to "none"
+${symbol_pound} - if not set or set to "none", can explicitly enable using @DomainObject(publishing=Publishing.ENABLED)
+${symbol_pound} - if set to "all", can explicitly disable using @Object(publishing=Publishing.DISABLED)
+${symbol_pound}
+${symbol_pound}isis.services.publish.objects=all|none
+
+
+${symbol_pound}
+${symbol_pound} Whether all (or all non-query only) actions should be reified as commands; if not set, defaults to "none"
+${symbol_pound} - if not set or set to "none", can explicitly enable using @Action(command=CommandReification.ENABLED)
+${symbol_pound} - if set to "all", can explicitly disable using @Action(command=CommandReification.DISABLED)
+${symbol_pound}
+${symbol_pound}isis.services.command.actions=all|none|ignoreSafe
+
+
+${symbol_pound}
+${symbol_pound} Whether all (or all non-query only) action invocations should be published; if not set, defaults to "none"
+${symbol_pound} - if not set or set to "none", can explicitly enable using @Action(publishing=Publishing.ENABLED)
+${symbol_pound} - if set to "all", can explicitly disable using @Action(publishing=Publishing.DISABLED)
+${symbol_pound}
+${symbol_pound}isis.services.publish.actions=all|none|ignoreSafe
+
+
+${symbol_pound}
+${symbol_pound} Whether all property edits sshould be published; if not set, defaults to "none"
+${symbol_pound} - if not set or set to "none", can explicitly enable using @Property(publishing=Publishing.ENABLED)
+${symbol_pound} - if set to "all", can explicitly disable using @Property(publishing=Publishing.DISABLED)
+${symbol_pound}
+${symbol_pound}isis.services.publish.properties=all|none
+
+
+
+${symbol_pound}
+${symbol_pound} Whether the ApplicationFeatureRepository should eagerly initialize itself (increasing start-up times)
+${symbol_pound} or initialize itself lazily. Default is lazy initialization.
+${symbol_pound}
+${symbol_pound}isis.services.applicationFeatures.init=lazy|eager
+
+
+${symbol_pound}
+${symbol_pound} Whether the framework supports inject...() and set...() styles of dependency injection. By default the former
+${symbol_pound} is disabled, the latter is enabled. Disabling these settings can reduce application start-up times.
+${symbol_pound}
+${symbol_pound}isis.services.injector.injectPrefix=false|true
+${symbol_pound}isis.services.injector.setPrefix=false|true
+isis.services.injector.setPrefix=false
+
+
+
+
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
+${symbol_pound}
+${symbol_pound} Policies
+${symbol_pound}
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
+
+${symbol_pound}
+${symbol_pound} Whether editing of object properties is allowed; if not set, defaults to "true"
+${symbol_pound} - if not set or set to "true", can explicitly disable using @DomainObject(editing=Editing.DISABLED)
+${symbol_pound} - if set to "false", can explicitly enable using @DomainObject(editing=Editing.ENABLED)
+${symbol_pound}
+isis.objects.editing=false
+
+
+
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
+${symbol_pound}
+${symbol_pound} i18n
+${symbol_pound}
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
+
+${symbol_pound}
+${symbol_pound} force read translations, even if running in prototype mode
+${symbol_pound}
+${symbol_pound}isis.services.translation.po.mode=read
+
+
+
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
+${symbol_pound}
+${symbol_pound} Viewer defaults
+${symbol_pound}
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
+
+${symbol_pound}
+${symbol_pound} Specify viewer defaults
+${symbol_pound}
+${symbol_pound}isis.viewers.paged.standalone=30
+${symbol_pound}isis.viewers.paged.parented=10
+
+
+${symbol_pound}isis.viewers.propertyLayout.labelPosition=LEFT
+${symbol_pound}isis.viewers.parameterLayout.labelPosition=LEFT
+
+
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
+${symbol_pound}
+${symbol_pound} Value facet defaults
+${symbol_pound}
+${symbol_pound} (see also viewer-specific config files, eg viewer_wicket.properties)
+${symbol_pound}
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
+
+${symbol_pound} as used by @Title of a date
+isis.value.format.date=dd-MM-yyyy
+
+
+
+
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
+${symbol_pound}
+${symbol_pound} Persistor
+${symbol_pound}
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
l_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}
+
+
+
+${symbol_pound} generally speaking this should not be enabled
+isis.persistor.disableConcurrencyChecking=false
+
+
+${symbol_pound}
+${symbol_pound} hook to perform additional initialization when JDO class metadata is loaded
+${symbol_pound} default implementation will attempt to run 'create schema' for the specified schema.
+${symbol_pound}
+${symbol_pound} this implementation is installed by default:
+${symbol_pound}isis.persistor.datanucleus.classMetadataLoadedListener=org.apache.isis.objectstore.jdo.datanucleus.CreateSchemaObjectFromClassMetadata
+
+
+${symbol_pound} whether to persist the event data as a "clob" or as a "zipped" byte[]
+${symbol_pound} default is "zipped"
+${symbol_pound}isis.persistor.datanucleus.PublishingService.serializedForm=zipped
+
+
+
+
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
l_pound}${symbol_pound}${symbol_pound}
+${symbol_pound}
+${symbol_pound} DataNucleus' configuration
+${symbol_pound}
+${symbol_pound} The 'isis.persistor.datanucleus.impl' prefix is stripped off,
+${symbol_pound} remainder is passed through to DataNucleus
+${symbol_pound}
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbo
l_pound}${symbol_pound}${symbol_pound}
+
+isis.persistor.datanucleus.impl.datanucleus.schema.autoCreateAll=true
+isis.persistor.datanucleus.impl.datanucleus.schema.validateTables=true
+isis.persistor.datanucleus.impl.datanucleus.schema.validateConstraints=true
+
+
+${symbol_pound}
+${symbol_pound} Require explicit persistence (since entities are Comparable and using ObjectContracts${symbol_pound}compareTo).
+${symbol_pound} see http://www.datanucleus.org/products/accessplatform_3_0/jdo/transaction_types.html
+${symbol_pound}
+isis.persistor.datanucleus.impl.datanucleus.persistenceByReachabilityAtCommit=false
+
+
+${symbol_pound}
+${symbol_pound} How column names are identified
+${symbol_pound} (http://www.datanucleus.org/products/datanucleus/jdo/orm/datastore_identifiers.html)
+${symbol_pound}
+isis.persistor.datanucleus.impl.datanucleus.identifier.case=MixedCase
+
+${symbol_pound}
+${symbol_pound} L2 cache
+${symbol_pound} off except if explicitly marked as cacheable
+${symbol_pound} http://www.datanucleus.org/products/datanucleus/jdo/cache.html
+${symbol_pound}
+isis.persistor.datanucleus.impl.datanucleus.cache.level2.type=none
+isis.persistor.datanucleus.impl.datanucleus.cache.level2.mode=ENABLE_SELECTIVE
+
+
+
+${symbol_pound}
+${symbol_pound} uncomment to use JNDI rather than direct JDBC
+${symbol_pound}
+${symbol_pound}isis.persistor.datanucleus.impl.datanucleus.ConnectionFactoryName=java:comp/env/jdbc/quickstart
+
+${symbol_pound}
+${symbol_pound} uncomment to use JTA resource
+${symbol_pound}
+${symbol_pound}isis.persistor.datanucleus.impl.datanucleus.ConnectionFactory2Name=java:comp/env/jdbc/quickstart-nontx
+${symbol_pound}isis.persistor.datanucleus.impl.javax.jdo.option.TransactionType=JTA
+
+
+
+${symbol_pound}
+${symbol_pound}
+${symbol_pound} JDBC connection details
+${symbol_pound} ... are in persistor.properties
+${symbol_pound}
+${symbol_pound}
http://git-wip-us.apache.org/repos/asf/isis/blob/1a43d75d/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObject.java
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObject.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObject.java
index 3344a4e..95da22a 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObject.java
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObject.java
@@ -43,8 +43,7 @@ import lombok.Setter;
@javax.jdo.annotations.PersistenceCapable(
identityType=IdentityType.DATASTORE,
- schema = "simple",
- table = "SimpleObject"
+ schema = "simple"
)
@javax.jdo.annotations.DatastoreIdentity(
strategy=javax.jdo.annotations.IdGeneratorStrategy.IDENTITY,
@@ -60,9 +59,7 @@ import lombok.Setter;
+ "WHERE name.indexOf(:name) >= 0 ")
})
@javax.jdo.annotations.Unique(name="SimpleObject_name_UNQ", members = {"name"})
-@DomainObject(
- objectType = "simple.SimpleObject"
-)
+@DomainObject() // objectType inferred from @PersistenceCapable${symbol_pound}schema
public class SimpleObject implements Comparable<SimpleObject> {
public SimpleObject(final String name) {
@@ -70,7 +67,7 @@ public class SimpleObject implements Comparable<SimpleObject> {
}
@javax.jdo.annotations.Column(allowsNull = "false", length = 40)
- @Property(editing = Editing.DISABLED)
+ @Property() // editing disabled by default, see isis.properties
@Getter @Setter
@Title(prepend = "Object: ")
private String name;
http://git-wip-us.apache.org/repos/asf/isis/blob/1a43d75d/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjectMenu.java
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjectMenu.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjectMenu.java
index 07d9399..9114be5 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjectMenu.java
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjectMenu.java
@@ -36,6 +36,7 @@ import org.apache.isis.applib.services.eventbus.ActionDomainEvent;
@DomainService(
nature = NatureOfService.VIEW_MENU_ONLY,
+ objectType = "simple.SimpleObjectMenu",
repositoryFor = SimpleObject.class
)
@DomainServiceLayout(
@@ -44,7 +45,6 @@ import org.apache.isis.applib.services.eventbus.ActionDomainEvent;
)
public class SimpleObjectMenu {
-
@Action(semantics = SemanticsOf.SAFE)
@ActionLayout(bookmarking = BookmarkPolicy.AS_ROOT)
@MemberOrder(sequence = "1")
http://git-wip-us.apache.org/repos/asf/isis/blob/1a43d75d/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/fixture/scenario/CreateSimpleObjects.java
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/fixture/scenario/CreateSimpleObjects.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/fixture/scenario/CreateSimpleObjects.java
index 1211a6d..e6ce665 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/fixture/scenario/CreateSimpleObjects.java
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/fixture/scenario/CreateSimpleObjects.java
@@ -22,8 +22,6 @@
package domainapp.modules.simple.fixture.scenario;
-import java.util.Arrays;
-import java.util.Collections;
import java.util.List;
import javax.annotation.Nullable;
@@ -41,9 +39,6 @@ import lombok.experimental.Accessors;
@Accessors(chain = true)
public class CreateSimpleObjects extends FixtureScript {
- public final List<String> NAMES = Collections.unmodifiableList(Arrays.asList(
- "Foo", "Bar", "Baz", "Frodo", "Froyo", "Fizz", "Bip", "Bop", "Bang", "Boo"));
-
/**
* The number of objects to create, up to 10; optional, defaults to 3.
*/
@@ -52,7 +47,7 @@ public class CreateSimpleObjects extends FixtureScript {
private Integer number;
/**
- * The simpleobjects created by this fixture (output).
+ * The objects created by this fixture (output).
*/
@Getter
private final List<SimpleObject> simpleObjects = Lists.newArrayList();
@@ -60,19 +55,20 @@ public class CreateSimpleObjects extends FixtureScript {
@Override
protected void execute(final ExecutionContext ec) {
+ int max = SimpleObjectData.values().length;
+
// defaults
final int number = defaultParam("number", ec, 3);
// validate
- if(number < 0 || number > NAMES.size()) {
- throw new IllegalArgumentException(String.format("number must be in range [0,%d)", NAMES.size()));
+ if(number < 0 || number > max) {
+ throw new IllegalArgumentException(String.format("number must be in range [0,%d)", max));
}
// execute
for (int i = 0; i < number; i++) {
- final String name = NAMES.get(i);
-
- final SimpleObject simpleObject = wrap(simpleObjectMenu).create(name);
+ final SimpleObjectData data = SimpleObjectData.values()[i];
+ final SimpleObject simpleObject = data.createWith(wrap(simpleObjectMenu));
ec.addResult(this, simpleObject);
simpleObjects.add(simpleObject);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/1a43d75d/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/fixture/scenario/SimpleObjectData.java
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/fixture/scenario/SimpleObjectData.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/fixture/scenario/SimpleObjectData.java
new file mode 100644
index 0000000..9aa8017
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/fixture/scenario/SimpleObjectData.java
@@ -0,0 +1,52 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package domainapp.modules.simple.fixture.scenario;
+
+import domainapp.modules.simple.dom.impl.SimpleObject;
+import domainapp.modules.simple.dom.impl.SimpleObjectMenu;
+import lombok.AllArgsConstructor;
+
+@AllArgsConstructor
+public enum SimpleObjectData {
+
+ FOO("Foo"),
+ BAR("Bar"),
+ BAZ("Baz"),
+ FRODO("Frodo"),
+ FROYO("Froyo"),
+ FIZZ("Fizz"),
+ BIP("Bip"),
+ BOP("Bop"),
+ BANG("Bang"),
+ BOO("Boo");
+
+ private final String name;
+
+ public SimpleObject createWith(final SimpleObjectMenu menu) {
+ return menu.create(name);
+ }
+
+ public SimpleObject findWith(final SimpleObjectMenu menu) {
+ return menu.findByName(name).get(0);
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/1a43d75d/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java
index df6dd09..97ba16e 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java
@@ -56,11 +56,13 @@ public abstract class SimpleModuleIntegTestAbstract extends IntegrationTestAbstr
Util.withJavaxJdoRunInMemoryProperties(map);
Util.withDataNucleusProperties(map);
Util.withIsisIntegTestProperties(map);
+ // same as in isis.properties
+ map.put("isis.objects.editing","false");
return map;
}
@Override public List<Class<?>> getAdditionalServices() {
- return Lists.newArrayList(ModuleFixtureScriptsSpecificationProvider.class);
+ return (List)Lists.newArrayList(ModuleFixtureScriptsSpecificationProvider.class);
}
})
http://git-wip-us.apache.org/repos/asf/isis/blob/1a43d75d/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObject_IntegTest.java
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObject_IntegTest.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObject_IntegTest.java
index 57d4d99..887c5d1 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObject_IntegTest.java
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObject_IntegTest.java
@@ -37,7 +37,9 @@ import org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleu
import org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusVersionTimestamp;
import domainapp.modules.simple.dom.impl.SimpleObject;
+import domainapp.modules.simple.dom.impl.SimpleObjectMenu;
import domainapp.modules.simple.fixture.scenario.CreateSimpleObjects;
+import domainapp.modules.simple.fixture.scenario.SimpleObjectData;
import domainapp.modules.simple.fixture.teardown.SimpleModuleTearDown;
import domainapp.modules.simple.integtests.SimpleModuleIntegTestAbstract;
import static org.assertj.core.api.Assertions.assertThat;
@@ -47,6 +49,8 @@ public class SimpleObject_IntegTest extends SimpleModuleIntegTestAbstract {
@Inject
FixtureScripts fixtureScripts;
@Inject
+ SimpleObjectMenu simpleObjectMenu;
+ @Inject
TransactionService transactionService;
SimpleObject simpleObject;
@@ -59,7 +63,7 @@ public class SimpleObject_IntegTest extends SimpleModuleIntegTestAbstract {
fixtureScripts.runFixtureScript(fs, null);
transactionService.nextTransaction();
- simpleObject = fs.getSimpleObjects().get(0);
+ simpleObject = SimpleObjectData.FOO.findWith(wrap(simpleObjectMenu));
assertThat(simpleObject).isNotNull();
}
@@ -136,7 +140,7 @@ public class SimpleObject_IntegTest extends SimpleModuleIntegTestAbstract {
@Test
public void should_be_populated() throws Exception {
// when
- final Long id = mixin(Persistable_datanucleusIdLong.class, simpleObject).${symbol_dollar}${symbol_dollar}();
+ final Long id = mixin(Persistable_datanucleusIdLong.class, simpleObject).exec();
// then
assertThat(id).isGreaterThanOrEqualTo(0);
@@ -148,7 +152,7 @@ public class SimpleObject_IntegTest extends SimpleModuleIntegTestAbstract {
@Test
public void should_be_populated() throws Exception {
// when
- final Timestamp timestamp = mixin(Persistable_datanucleusVersionTimestamp.class, simpleObject).${symbol_dollar}${symbol_dollar}();
+ final Timestamp timestamp = mixin(Persistable_datanucleusVersionTimestamp.class, simpleObject).exec();
// then
assertThat(timestamp).isNotNull();
}
http://git-wip-us.apache.org/repos/asf/isis/blob/1a43d75d/example/archetype/simpleapp/src/main/resources/archetype-resources/pom.xml
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/pom.xml b/example/archetype/simpleapp/src/main/resources/archetype-resources/pom.xml
index a0c4a22..7271b4b 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/pom.xml
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/pom.xml
@@ -32,12 +32,13 @@
</prerequisites>
<properties>
- <isis.version>1.13.2</isis.version>
+ <isis.version>1.14.0</isis.version>
<lombok.version>1.16.10</lombok.version>
<assertj-core.version>3.6.1</assertj-core.version>
<mavenmixin-cucumberreporting.version>0.0.2</mavenmixin-cucumberreporting.version>
+ <maven-cucumber-reporting.version>3.2.0</maven-cucumber-reporting.version>
<maven-cucumber-reporting.dependency.log4j.version>2.7</maven-cucumber-reporting.dependency.log4j.version>
<mavenmixin-datanucleusenhance.version>0.0.4</mavenmixin-datanucleusenhance.version>
@@ -66,7 +67,7 @@
<maven-jxr-plugin.version>2.4</maven-jxr-plugin.version>
<maven-source-plugin.version>2.2.1</maven-source-plugin.version>
- <mavenmixin-standard.version>0.0.2</mavenmixin-standard.version>
+ <mavenmixin-standard.version>0.0.3</mavenmixin-standard.version>
<maven-clean-plugin.version>2.5</maven-clean-plugin.version>
<maven-project-info-reports-plugin.version>2.9</maven-project-info-reports-plugin.version>
<maven-resources-plugin.version>2.6</maven-resources-plugin.version>
@@ -87,14 +88,18 @@
<jdepend-maven-plugin.version>2.0-beta-2</jdepend-maven-plugin.version>
<findbugs-maven-plugin.version>2.5</findbugs-maven-plugin.version>
- <mavenmixin-docker.version>0.0.2</mavenmixin-docker.version>
+ <mavenmixin-docker.version>0.0.3</mavenmixin-docker.version>
<maven-deploy-plugin.version>2.8.1</maven-deploy-plugin.version>
<docker-maven-plugin.version>0.4.13</docker-maven-plugin.version>
+ <gmavenplus-plugin.version>1.5</gmavenplus-plugin.version>
<mavendeps-isistesting.version>0.0.2</mavendeps-isistesting.version>
<mavendeps-isisintellij.version>0.0.1</mavendeps-isisintellij.version>
<mavendeps-isiswebapp.version>0.0.1</mavendeps-isiswebapp.version>
+ <compiler-plugin.source>1.7</compiler-plugin.source>
+ <compiler-plugin.target>1.7</compiler-plugin.target>
+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
@@ -242,6 +247,11 @@
<artifactId>docker-maven-plugin</artifactId>
<version>${docker-maven-plugin.version}</version>
</plugin>
+ <plugin>
+ <groupId>org.codehaus.gmavenplus</groupId>
+ <artifactId>gmavenplus-plugin</artifactId>
+ <version>${gmavenplus-plugin.version}</version>
+ </plugin>
</plugins>
</pluginManagement>
http://git-wip-us.apache.org/repos/asf/isis/blob/1a43d75d/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/pom.xml
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/pom.xml b/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/pom.xml
index dd9ddaa..db8b341 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/pom.xml
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/pom.xml
@@ -44,8 +44,11 @@
<docker-plugin.imageName>DOCKER_REGISTRY_ACCOUNT/${project.parent.artifactId}</docker-plugin.imageName>
<docker-plugin.resource.include>${maven-war-plugin.warName}.war</docker-plugin.resource.include>
- <docker-plugin.serverId>docker-hub</docker-plugin.serverId>
- <docker-plugin.registryUrl>https://index.docker.io/v1/</docker-plugin.registryUrl>
+
+ <docker-plugin.releaseServerId>docker-hub</docker-plugin.releaseServerId>
+ <docker-plugin.releaseRegistryUrl>https://index.docker.io/v1/</docker-plugin.releaseRegistryUrl>
+ <docker-plugin.snapshotServerId>docker-hub</docker-plugin.snapshotServerId>
+ <docker-plugin.snapshotRegistryUrl>https://index.docker.io/v1/</docker-plugin.snapshotRegistryUrl>
</properties>