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 2019/01/12 14:26:04 UTC
[isis] 02/04: ISIS-1811: recreating simpleapp archetype
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch release-2.0.0-M2-RC1
in repository https://gitbox.apache.org/repos/asf/isis.git
commit f28a48572614cfb2f273eb3bb59dcb79f5cc12dd
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sat Jan 12 14:04:44 2019 +0000
ISIS-1811: recreating simpleapp archetype
---
example/archetype/simpleapp/pom.xml | 78 +
.../appended-resources/supplemental-models.xml | 26 +
.../META-INF/maven/archetype-metadata.xml | 181 ++
.../resources/archetype-resources/.gitlab-ci.yml | 51 +
.../resources/archetype-resources/.m2/settings.xml | 23 +
.../main/resources/archetype-resources/README.adoc | 244 ++
.../archetype-resources/_checks/checkstyle.xml | 290 +++
.../resources/archetype-resources/_checks/pmd.xml | 49 +
.../application/logging-integtest.properties | 124 +
.../archetype-resources/application/pom.xml | 131 +
.../application/DomainAppApplicationModule.java | 43 +
...mainAppFixtureScriptsSpecificationProvider.java | 48 +
.../fixture/scenarios/DomainAppDemo.java | 48 +
.../application/manifest/DomainAppAppManifest.java | 43 +
.../DomainAppAppManifestBypassSecurity.java | 32 +
.../manifest/DomainAppAppManifestWithFixtures.java | 40 +
...inAppAppManifestWithFixturesBypassSecurity.java | 33 +
.../manifest/isis-non-changing.properties | 741 ++++++
.../application/manifest/menubars.layout.xml | 118 +
.../services/health/HealthCheckServiceImpl.java | 32 +
.../services/homepage/HomePageService.java | 46 +
.../services/homepage/HomePageViewModel.java | 49 +
.../services/homepage/HomePageViewModel.layout.xml | 53 +
.../services/homepage/HomePageViewModel.png | Bin 0 -> 456 bytes
.../bdd/specglue/BootstrappingGlue.java | 42 +
.../bdd/specglue/BootstrappingGlueAbstract.java | 40 +
.../bdd/specglue/CatalogOfFixturesGlue.java | 32 +
.../application/bdd/specs/RunIntegBddSpecs.java | 46 +
.../SimpleObjectSpec_listAllAndCreate.feature | 25 +
.../integtests/DomainAppIntegTestAbstract.java | 34 +
.../integtests/mml/MetaModelService_IntegTest.java | 150 ++
...omainAppFixtureScriptsSpecificationProvider.xml | 48 +
...application.fixture.scenarios.DomainAppDemo.xml | 270 ++
...tion.services.health.HealthCheckServiceImpl.xml | 48 +
...plication.services.homepage.HomePageService.xml | 47 +
...ication.services.homepage.HomePageViewModel.xml | 352 +++
...ainapp.modules.simple.dom.impl.SimpleObject.xml | 878 +++++++
...inapp.modules.simple.dom.impl.SimpleObjects.xml | 270 ++
....apache.isis.applib.value.LocalResourcePath.xml | 5 +
.../integtests/smoke/Smoke_IntegTest.java | 100 +
...MetaModelService_IntegTest.exports.approved.xml | 2746 ++++++++++++++++++++
.../src/test/resources/cucumber.properties | 4 +
.../application/translations.pot | 0
.../resources/archetype-resources/enhance-all.sh | 2 +
.../archetype-resources/module-simple/build.gradle | 72 +
.../archetype-resources/module-simple/gradlew | 164 ++
.../archetype-resources/module-simple/gradlew.bat | 90 +
.../module-simple/layouts.gradle | 49 +
.../module-simple/liveReload.gradle | 56 +
.../module-simple/logging-dn-enhance.properties | 44 +
.../module-simple/logging-integtest.properties | 123 +
.../archetype-resources/module-simple/pom.xml | 202 ++
.../src/main/java/META-INF/persistence.xml | 29 +
.../domainapp/modules/simple/SimpleModule.java | 51 +
.../modules/simple/SimpleModuleManifest.java | 41 +
.../modules/simple/dom/impl/SimpleObject.java | 111 +
.../simple/dom/impl/SimpleObject.layout.xml | 71 +
.../modules/simple/dom/impl/SimpleObject.png | Bin 0 -> 653 bytes
.../modules/simple/dom/impl/SimpleObjects.java | 100 +
.../domainapp/modules/simple/dom/types/Name.java | 39 +
.../domainapp/modules/simple/dom/types/Notes.java | 28 +
.../simple/fixture/SimpleObjectBuilder.java | 53 +
.../simple/fixture/SimpleObject_persona.java | 66 +
.../modules/simple/dom/impl/SimpleObject_Test.java | 53 +
.../simple/dom/impl/SimpleObjects_Test.java | 119 +
.../integtests/SimpleModuleIntegTestAbstract.java | 35 +
.../integtests/tests/SimpleObject_IntegTest.java | 153 ++
.../integtests/tests/SimpleObjects_IntegTest.java | 133 +
.../modules/simple/specglue/SimpleObjectsGlue.java | 52 +
.../module-simple/translations.pot | 0
.../src/main/resources/archetype-resources/pom.xml | 199 ++
.../resources/archetype-resources/webapp/pom.xml | 285 ++
.../webapp/src/main/jettyconsole/isis-banner.pdn | Bin 0 -> 64162 bytes
.../webapp/src/main/jettyconsole/isis-banner.png | Bin 0 -> 27310 bytes
.../webapp/src/main/webapp/WEB-INF/isis.properties | 136 +
.../src/main/webapp/WEB-INF/logging.properties | 249 ++
.../webapp/src/main/webapp/WEB-INF/shiro.ini | 93 +
.../src/main/webapp/WEB-INF/translations-en.po | 674 +++++
.../src/main/webapp/WEB-INF/translations-es.po | 673 +++++
.../src/main/webapp/WEB-INF/translations-nl.po | 674 +++++
.../webapp/src/main/webapp/WEB-INF/translations.po | 673 +++++
.../webapp/src/main/webapp/WEB-INF/web.xml | 52 +
.../src/main/webapp/about/images/isis-logo.png | Bin 0 -> 14160 bytes
.../webapp/src/main/webapp/about/index.html | 120 +
.../webapp/src/main/webapp/css/application.css | 19 +
.../main/webapp/images/apache-isis/logo-48x48.png | Bin 0 -> 2622 bytes
.../webapp/src/main/webapp/scripts/application.js | 3 +
.../resources/projects/basic/archetype.properties | 5 +
.../src/test/resources/projects/basic/goal.txt | 0
89 files changed, 13451 insertions(+)
diff --git a/example/archetype/simpleapp/pom.xml b/example/archetype/simpleapp/pom.xml
new file mode 100644
index 0000000..ddf0097
--- /dev/null
+++ b/example/archetype/simpleapp/pom.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.isis.archetype</groupId>
+ <artifactId>simpleapp-archetype</artifactId>
+ <version>2.0.0-M2</version>
+ <packaging>maven-archetype</packaging>
+ <name>simpleapp-archetype</name>
+ <build>
+ <extensions>
+ <extension>
+ <groupId>org.apache.maven.archetype</groupId>
+ <artifactId>archetype-packaging</artifactId>
+ <version>3.0.1</version>
+ </extension>
+ </extensions>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <artifactId>maven-archetype-plugin</artifactId>
+ <version>3.0.1</version>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+ <description>This module defines a standard parent POM to use for various Incode applications and modules.
+ Its primary purpose is to make it easy to use a set up maven mixins (https://github.com/odavid/maven-plugins)
+ within child POMs. Specifically this means locking down the versions of plugins using pluginManagement.
+
+ It does NOT define any mixins for Apache Isis.</description>
+ <url>https://github.com/incodehq/incode-build/simpleapp</url>
+ <developers>
+ <developer>
+ <id>danhaywood</id>
+ <name>Dan Haywood</name>
+ <email>dan@haywood-associates.co.uk</email>
+ </developer>
+ </developers>
+ <licenses>
+ <license>
+ <name>The Apache Software License, Version 2.0</name>
+ <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+ <distribution>repo</distribution>
+ </license>
+ </licenses>
+ <scm>
+ <connection>scm:git:git@github.com:incodehq/incode-build.git/simpleapp</connection>
+ <developerConnection>scm:git:git@github.com:incodehq/incode-build.git/simpleapp</developerConnection>
+ <url>git@github.com:incodehq/incode-build.git/simpleapp</url>
+ </scm>
+ <parent>
+ <groupId>org.apache.isis.core</groupId>
+ <artifactId>isis</artifactId>
+ <version>2.0.0-M2</version>
+ <relativePath>../../../core/pom.xml</relativePath>
+ </parent>
+ <properties>
+ <archetype.test.skip>true</archetype.test.skip>
+ </properties>
+</project>
diff --git a/example/archetype/simpleapp/src/main/appended-resources/supplemental-models.xml b/example/archetype/simpleapp/src/main/appended-resources/supplemental-models.xml
new file mode 100644
index 0000000..01c58d8
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/appended-resources/supplemental-models.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<supplementalDataModels
+ xmlns="http://maven.apache.org/supplemental-model/1.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/supplemental-model/1.0.0
+ http://maven.apache.org/xsd/supplemental-model-1.0.0.xsd">
+
+</supplementalDataModels>
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
new file mode 100644
index 0000000..4b8fa27
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/META-INF/maven/archetype-metadata.xml
@@ -0,0 +1,181 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<archetype-descriptor xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="simpleapp" xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd">
+ <fileSets>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory>_checks</directory>
+ <includes>
+ <include>**/*.xml</include>
+ </includes>
+ </fileSet>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory>.m2</directory>
+ <includes>
+ <include>**/*.xml</include>
+ </includes>
+ </fileSet>
+ <fileSet encoding="UTF-8">
+ <directory/>
+ <includes>
+ <include>.gitattributes</include>
+ <include>.gitignore</include>
+ <include>.gitlab-ci.yml</include>
+ <include>enhance-all.sh</include>
+ <include>README.adoc</include>
+ </includes>
+ </fileSet>
+ </fileSets>
+ <modules>
+ <module name="${rootArtifactId}-module-simple" id="${rootArtifactId}-module-simple" dir="module-simple">
+ <fileSets>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory>src/main/java</directory>
+ <includes>
+ <include>**/*.java</include>
+ <include>**/*.xml</include>
+ </includes>
+ </fileSet>
+ <fileSet encoding="UTF-8">
+ <directory>src/main/java</directory>
+ <includes>
+ <include>**/*.png</include>
+ </includes>
+ </fileSet>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory>src/test/java</directory>
+ <includes>
+ <include>**/*.java</include>
+ </includes>
+ </fileSet>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory/>
+ <includes>
+ <include>logging-dn-enhance.properties</include>
+ <include>logging-integtest.properties</include>
+ </includes>
+ </fileSet>
+ <fileSet encoding="UTF-8">
+ <directory/>
+ <includes>
+ <include>.gitignore</include>
+ <include>build.gradle</include>
+ <include>gradlew</include>
+ <include>gradlew.bat</include>
+ <include>layouts.gradle</include>
+ <include>liveReload.gradle</include>
+ <include>translations.pot</include>
+ </includes>
+ </fileSet>
+ </fileSets>
+ </module>
+ <module name="${rootArtifactId}-application" id="${rootArtifactId}-application" dir="application">
+ <fileSets>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory>src/main/java</directory>
+ <includes>
+ <include>**/*.java</include>
+ <include>**/*.xml</include>
+ <include>**/*.properties</include>
+ </includes>
+ </fileSet>
+ <fileSet encoding="UTF-8">
+ <directory>src/main/java</directory>
+ <includes>
+ <include>**/*.png</include>
+ </includes>
+ </fileSet>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory>src/test/java</directory>
+ <includes>
+ <include>**/*.java</include>
+ <include>**/*.xml</include>
+ </includes>
+ </fileSet>
+ <fileSet encoding="UTF-8">
+ <directory>src/test/java</directory>
+ <includes>
+ <include>**/*.feature</include>
+ <include>**/*.gitignore</include>
+ </includes>
+ </fileSet>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory>src/test/resources</directory>
+ <includes>
+ <include>**/*.properties</include>
+ </includes>
+ </fileSet>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory/>
+ <includes>
+ <include>logging-integtest.properties</include>
+ </includes>
+ </fileSet>
+ <fileSet encoding="UTF-8">
+ <directory/>
+ <includes>
+ <include>.gitignore</include>
+ <include>translations.pot</include>
+ </includes>
+ </fileSet>
+ </fileSets>
+ </module>
+ <module name="${rootArtifactId}-webapp" id="${rootArtifactId}-webapp" dir="webapp">
+ <fileSets>
+ <fileSet filtered="true" encoding="UTF-8">
+ <directory>src/main/webapp</directory>
+ <includes>
+ <include>**/*.xml</include>
+ <include>**/*.html</include>
+ <include>**/*.properties</include>
+ </includes>
+ </fileSet>
+ <fileSet encoding="UTF-8">
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>**/*</include>
+ </includes>
+ </fileSet>
+ <fileSet encoding="UTF-8">
+ <directory>src/main/jettyconsole</directory>
+ <includes>
+ <include>**/*.png</include>
+ <include>**/*.pdn</include>
+ </includes>
+ </fileSet>
+ <fileSet encoding="UTF-8">
+ <directory>src/main/webapp</directory>
+ <includes>
+ <include>**/*.css</include>
+ <include>**/*.ini</include>
+ <include>**/*.png</include>
+ <include>**/*.js</include>
+ <include>**/*.po</include>
+ </includes>
+ </fileSet>
+ <fileSet encoding="UTF-8">
+ <directory>lib</directory>
+ <includes>
+ <include>**/*.gitignore</include>
+ </includes>
+ </fileSet>
+ </fileSets>
+ </module>
+ </modules>
+</archetype-descriptor>
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/.gitlab-ci.yml b/example/archetype/simpleapp/src/main/resources/archetype-resources/.gitlab-ci.yml
new file mode 100644
index 0000000..7d4a33b
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/.gitlab-ci.yml
@@ -0,0 +1,51 @@
+#
+# requires the following gitlab secret variables
+# - DOCKER_REGISTRY_USERNAME
+# - DOCKER_REGISTRY_PASSWORD
+# - DOCKER_REGISTRY_EMAIL
+# - DOCKER_REGISTRY_NAME # eg "registry-1.docker.io" (for docker hub)
+ # or "docker-dev.incode.cloud" (eg a cloud-based nexus)
+# - DOCKER_REGISTRY_URL # eg "https://index.docker.io/v1/" (for docker hub)
+ # or "https://repo.incode.cloud/repository/docker-dev/" (eg a cloud-based nexus)
+#
+
+image: maven:3.5.3-jdk-8
+
+before_script:
+ - export REVISION=$(date +%Y%m%d.%H%M).$CI_COMMIT_REF_SLUG.$(echo $CI_COMMIT_SHA | cut -c1-8)
+
+services:
+ - docker:dind
+
+variables:
+ DOCKER_HOST: tcp://docker:2375
+ DOCKER_DRIVER: overlay2
+ MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository -Dskip.cloudbees-estatio-repositories -Dskip.sonatype-snapshots -Dskip.apache-snapshots"
+ APP_NAME: "simpleapp"
+
+stages:
+ - build-package-push
+
+build-package-push:
+ stage: build-package-push
+ script:
+ - echo "REVISION=$REVISION"
+ - >
+ mvn --batch-mode \
+ install \
+ -Drevision=$REVISION \
+ -Dmavenmixin-docker \
+ -Ddocker-plugin.imageName=$DOCKER_REGISTRY_NAME/$DOCKER_REGISTRY_USERNAME/$APP_NAME
+ - >
+ mvn -s .m2/settings.xml \
+ --batch-mode \
+ docker:push@push-image-tagged \
+ -pl webapp \
+ -Drevision=$REVISION \
+ -DskipTests \
+ -Dskip.isis-swagger \
+ -Dmavenmixin-docker \
+ -Ddocker-plugin.imageName=$DOCKER_REGISTRY_USERNAME/$DOCKER_REGISTRY_REPOSITORY \
+ -Ddocker-plugin.serverId=docker-registry \
+ -Ddocker.registryUrl=$DOCKER_REGISTRY_URL
+
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/.m2/settings.xml b/example/archetype/simpleapp/src/main/resources/archetype-resources/.m2/settings.xml
new file mode 100644
index 0000000..a189f31
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/.m2/settings.xml
@@ -0,0 +1,23 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+<?xml version="1.0" encoding="UTF-8"?>
+<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
+ <servers>
+ <server>
+ <id>docker-registry</id>
+ <username>${symbol_dollar}{env.DOCKER_REGISTRY_USERNAME}</username>
+ <password>${symbol_dollar}{env.DOCKER_REGISTRY_PASSWORD}</password>
+ <configuration>
+ <email>${symbol_dollar}{env.DOCKER_REGISTRY_EMAIL}</email>
+ </configuration>
+ </server>
+ <server>
+ <id>tomcat-server</id>
+ <username>admin</username>
+ <password>password</password>
+ </server>
+ </servers>
+</settings>
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/README.adoc b/example/archetype/simpleapp/src/main/resources/archetype-resources/README.adoc
new file mode 100644
index 0000000..6b62aab
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/README.adoc
@@ -0,0 +1,244 @@
+= SimpleApp
+
+This application was generated by the link:http://isis.apache.org[Apache Isis] link:http://isis.apache.org/guides/ugfun.html#_ugfun_getting-started_simpleapp-archetype[simpleapp archetype].
+It is intended as a starting point for developing your own applications.
+
+== Quick start
+
+Build using:
+
+[source,bash]
+----
+mvn clean install
+----
+
+Run using:
+
+[source,bash]
+----
+mvn -pl webapp jetty:run
+----
+
+Login using:
+
+* username: `sven`
+* password: `pass`
+
+The app runs with HSQLDB running in-memory, with sample data set up using link:https://isis.apache.org/guides/ugtst.html#_ugtst_fixture-scripts[fixture scripts].
+
+
+
+== Application Structure
+
+The following table explains the contents of each of the directories:
+
+[width="100%",options="header,footer", cols="2a,4a"]
+|====================
+|Directory
+|Description
+
+|`application`
+|Defines application-level classes such as menus and the ``AppManifest`` (which defines the modules that make up the application).
+It also holds application-wide integration tests/BDD specs.
+
+|`module-simple`
+|Holds the "simple" module, consisting of the `SimpleObject` entity and supporting repository, along with module-specific unit- and integration tests.
+Also runs `isis:validate` goal for the domain objects within the module. +
+
+[TIP]
+====
+Larger applications should consist of multiple modules; each such module can be copied from this starter module.
+====
+
+|`webapp`
+|Assembles the application into a webapp (comprising both the Wicket viewer and Restful Objects viewer) and also as a docker image, and runs the `isis:swagger` goal.
+
+|`_checks`
+|Checkstyle and PMD rule sets for static analysis.
+
+[TIP]
+====
+Extend/adapt these according to your own standards.
+====
+
+
+|====================
+
+== More advanced use cases
+
+* To enhance all JDO entities prior to running: +
++
+[source,bash]
+----
+mvn -pl module-simple datanucleus:enhance -o
+----
+
+* To also generate the link:https://github.com/eirbjo/jetty-console[Jetty console], allowing the application to run as a standalone JAR: +
++
+[source,bash]
+----
+mvn install -Dmavenmixin-jettyconsole
+----
++
+This can then be run using: +
++
+[source,bash]
+----
+cd webapp/target && java -jar simpleapp-webapp-xxx-jetty-console.war
+----
++
+Add additional arguments ``--headless`` or ``--port 9999``, if required.
++
+It can also be run using: +
++
+[source,bash]
+----
+mvn -pl webapp && mvn antrun:run -Dmavenmixin-jettyconsole
+----
++
+or to specify arguments:
++
+[source,bash]
+----
+mvn -pl webapp && mvn antrun:run -Dmavenmixin-jettyconsole \
+ -Dmaven-antrun-plugin.jettyconsole.args="--headless --port 9090"
+----
+
+
+* To also generate source and javadoc JARs:
++
+[source,bash]
+----
+mvn clean package -Dmavenmixin-sourceandjavadoc
+----
++
+[NOTE]
+====
+This is configured only for the `module-simple` module.
+====
+
+* To create the website (for the `module-simple` module) with source/javadoc and static analysis:
++
+[source,bash]
+----
+mvn -pl module-simple site -Dmavenmixin-sourceandjavadoc -Dmavenmixin-staticanalysis
+----
++
+[NOTE]
+====
+This is intended to run only for the `module-simple` module, and will generate a website under`target/site/index.html`.
+====
+
+
+* To disable the running of unit tests: +
++
+[source,bash]
+----
+mvn -DskipUTs
+----
++
+[TIP]
+====
+By default, output of unit tests are in `target/surefire-unittest-reports` (in the ``module-simple`` modules).
+====
+
+* To disable the running of integration tests: +
++
+[source,bash]
+----
+mvn -DskipITs
+----
++
+[TIP]
+====
+By default, output of integration tests are in `target/surefire-integtest-reports` (in the ``application`` and ``module-simple`` modules).
+====
+
+* To disable the running of BDD specs: +
++
+[source,bash]
+----
+mvn -DskipBSs
+----
++
+[TIP]
+====
+By default, output of integration tests are in `target/surefire-integbddspecs-reports` (in the ``application`` module).
+====
+
+* To disable the running of all tests and BDD specs: +
++
+[source,bash]
+----
+mvn -DskipTests
+----
+
+* To disable the running of the `isis:validate` goal: +
++
+[source,bash]
+----
+mvn -Dskip.mavenmixin-isisvalidate
+----
+
+
+* To disable the generation of cucumber reports: +
++
+[source,bash]
+----
+mvn -Dskip.mavenmixin-cucumberreporting
+----
++
+[TIP]
+====
+By default, cucumber reports are generated at `target/cucumber-html-reports/overview-features.html` (in the ``application`` module).
+====
+
+* To disable the running of the `isis:swagger` goal:
++
+[source,bash]
+----
+mvn -Dskip.mavenmixin-isisswagger
+----
++
+[TIP]
+====
+By default, Swagger schema definition files are generated at `target/generated-resources/isis-swagger` (in the ``webapp`` module).
+====
+
+* To package up the application as a docker image (specifying the docker image name as a system property): +
++
+[source,bash]
+----
+mvn install -Dmavenmixin-docker -Ddocker-plugin.imageName=mycompany/myapp
+----
++
+Alternatively, define the `${docker-plugin.imageName}` in the `webapp` module and use simply: +
++
+[source,bash]
+----
+mvn install -Dmavenmixin-docker
+----
++
+The packaged image can be viewed using `docker images`.
+
+* To run a docker image previously packaged: +
++
+[source,bash]
+----
+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 -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`.
+Once more, see link:https://github.com/danhaywood/java-mavenmixin-docker#how-to-configure[mavenmixin-docker] for further details.
+
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/_checks/checkstyle.xml b/example/archetype/simpleapp/src/main/resources/archetype-resources/_checks/checkstyle.xml
new file mode 100644
index 0000000..1d57a99
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/_checks/checkstyle.xml
@@ -0,0 +1,290 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+<?xml version="1.0"?>
+<!--
+ 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.
+-->
+<!DOCTYPE module PUBLIC
+ "-//Puppy Crawl//DTD Check Configuration 1.1//EN"
+ "http://www.puppycrawl.com/dtds/configuration_1_1.dtd">
+
+<!--
+
+ Checkstyle configuration that checks the sun coding conventions from:
+
+ - the Java Language Specification at
+ http://java.sun.com/docs/books/jls/second_edition/html/index.html
+
+ - the Sun Code Conventions at http://java.sun.com/docs/codeconv/
+
+ - the Javadoc guidelines at
+ http://java.sun.com/j2se/javadoc/writingdoccomments/index.html
+
+ - the JDK Api documentation http://java.sun.com/j2se/docs/api/index.html
+
+ - some best practices
+
+ Checkstyle is very configurable. Be sure to read the documentation at
+ http://checkstyle.sf.net (or in your downloaded distribution).
+
+ Most Checks are configurable, be sure to consult the documentation.
+
+ To completely disable a check, just comment it out or delete it from the file.
+
+ Finally, it is worth reading the documentation.
+
+-->
+
+<module name="Checker">
+
+ <!-- Checks that a package.html file exists for each package. -->
+ <!-- See http://checkstyle.sf.net/config_javadoc.html${symbol_pound}PackageHtml -->
+ <module name="JavadocPackage"/>
+ <!--
+ -->
+
+ <!-- Checks whether files end with a new line. -->
+ <!-- See http://checkstyle.sf.net/config_misc.html${symbol_pound}NewlineAtEndOfFile -->
+ <!--
+ <module name="NewlineAtEndOfFile"/>
+ -->
+
+ <!-- Checks that property files contain the same keys. -->
+ <!-- See http://checkstyle.sf.net/config_misc.html${symbol_pound}Translation -->
+ <module name="Translation"/>
+
+ <!--
+ eg:
+ //CHECKSTYLE.OFF: IllegalCatch - Much more readable than catching 7 exceptions
+ catch (Exception e)
+ //CHECKSTYLE.ON: IllegalCatch
+ -->
+ <module name="SuppressionCommentFilter">
+ <property name="offCommentFormat" value="CHECKSTYLE.OFF${symbol_escape}: ([${symbol_escape}w${symbol_escape}|]+)"/>
+ <property name="onCommentFormat" value="CHECKSTYLE.ON${symbol_escape}: ([${symbol_escape}w${symbol_escape}|]+)"/>
+ <property name="checkFormat" value="${symbol_dollar}1"/>
+ </module>
+
+ <!--
+ eg:
+ // CHECKSTYLE IGNORE check FOR NEXT 1 LINES
+ public void onClick(View view) { ... } -->
+ <module name="SuppressWithNearbyCommentFilter">
+ <property name="commentFormat" value="CHECKSTYLE.IGNORE (${symbol_escape}w+) FOR NEXT (${symbol_escape}d+) LINES"/>
+ <property name="checkFormat" value="${symbol_dollar}1"/>
+ <property name="influenceFormat" value="${symbol_dollar}2"/>
+ </module>
+
+ <module name="TreeWalker">
+
+ <property name="cacheFile" value="${symbol_dollar}{checkstyle.cache.file}"/>
+
+ <!-- not available in eclipse-cs
+ <module name="JavadocDeprecated"/>
+ -->
+ <module name="MissingOverride"/>
+
+ <!-- ************************************************************** -->
+ <!-- Checks that are different from the sun coding conventions ones -->
+ <!-- ************************************************************** -->
+ <property name="tabWidth" value="4"/>
+ <module name="LeftCurly">
+ <property name="option" value="eol"/>
+ </module>
+ <module name="RightCurly">
+ <property name="option" value="same"/>
+ </module>
+ <module name="MemberName">
+ <property name="format" value="^[a-z]([a-zA-Z0-9])*${symbol_dollar}"/>
+ </module>
+ <module name="StaticVariableName">
+ <property name="format" value="^[A-Z](_?[A-Z0-9])*${symbol_dollar}"/>
+ </module>
+ <module name="MethodName">
+ <property name="format" value="[a-z](_?[a-zA-Z0-9]+)*${symbol_dollar}"/>
+ </module>
+ <module name="ParameterName">
+ <property name="format" value="[a-z]([a-zA-Z0-9]+)*${symbol_dollar}"/>
+ </module>
+ <module name="LocalVariableName">
+ <property name="format" value="[a-z]([a-zA-Z0-9]+)*${symbol_dollar}"/>
+ </module>
+
+ <!-- ************************************************************** -->
+ <!-- Default Sun coding conventions checks -->
+ <!-- ************************************************************** -->
+
+ <!-- Checks for Javadoc comments. -->
+ <!-- See http://checkstyle.sf.net/config_javadoc.html -->
+
+ <!-- TODO: instate at some point (though only for public methods
+ <module name="JavadocType"/>
+ -->
+ <!--
+ <module name="JavadocMethod"/>
+ <module name="JavadocVariable"/>
+ -->
+
+
+ <!-- Checks for Naming Conventions. -->
+ <!-- See http://checkstyle.sf.net/config_naming.html -->
+ <module name="ConstantName"/>
+ <module name="PackageName"/>
+ <module name="TypeName"/>
+ <module name="LocalFinalVariableName"/>
+
+
+ <!-- Checks for Headers -->
+ <!-- See http://checkstyle.sf.net/config_header.html -->
+ <!--
+ <module name="Header">
+ -->
+ <!-- The follow property value demonstrates the ability -->
+ <!-- to have access to ANT properties. In this case it uses -->
+ <!-- the ${symbol_dollar}{basedir} property to allow Checkstyle to be run -->
+ <!-- from any directory within a project. -->
+ <!--
+ <property name="headerFile" value="${symbol_dollar}{checkstyle.header.file}"/>
+ </module>
+ -->
+
+ <!-- Following interprets the header file as regular expressions. -->
+ <!-- <module name="RegexpHeader"/> -->
+
+
+ <!-- Checks for imports -->
+ <!-- See http://checkstyle.sf.net/config_import.html -->
+ <module name="AvoidStarImport"/>
+ <module name="IllegalImport"/>
+ <module name="RedundantImport"/>
+ <module name="UnusedImports"/>
+
+
+ <!-- Checks for blocks. You know, those {}'s -->
+ <!-- See http://checkstyle.sf.net/config_blocks.html -->
+ <module name="EmptyBlock"/>
+ <module name="NeedBraces"/>
+ <!--
+ <module name="AvoidNestedBlocks"/>
+ -->
+
+
+ <!-- Checks for common coding problems -->
+ <!-- See http://checkstyle.sf.net/config_coding.html -->
+ <module name="EmptyStatement"/>
+ <module name="MagicNumber"/>
+ <module name="MissingSwitchDefault"/>
+ <module name="RedundantThrows"/>
+ <module name="SimplifyBooleanExpression"/>
+ <module name="SimplifyBooleanReturn"/>
+
+ <!-- not supported in maven
+ <module name="DoubleCheckedLocking"/>
+ -->
+ <!--
+ <module name="AvoidInlineConditionals"/>
+ <module name="EqualsHashCode"/>
+ <module name="HiddenField"/>
+ <module name="IllegalInstantiation"/>
+ <module name="InnerAssignment"/>
+ -->
+
+ <!-- Checks for class design -->
+ <!-- See http://checkstyle.sf.net/config_design.html -->
+ <!--
+
+ <module name="VisibilityModifier"/>
+ -->
+ <!-- too many violations...
+ <module name="DesignForExtension"/>
+ -->
+ <module name="FinalClass"/>
+ <module name="HideUtilityClassConstructor"/>
+ <module name="InterfaceIsType"/>
+
+
+ <module name="CyclomaticComplexity">
+ <property name="max" value="12"/>
+ </module>
+ <module name="NPathComplexity">
+ <property name="max" value="160"/>
+ </module>
+
+ <!-- Miscellaneous other checks. -->
+ <!-- See http://checkstyle.sf.net/config_misc.html -->
+ <!--
+ <module name="ArrayTypeStyle"/>
+ <module name="GenericIllegalRegexp">
+ <property name="format" value="${symbol_escape}s+${symbol_dollar}"/>
+ <property name="message" value="Line has trailing spaces."/>
+ </module>
+ -->
+ <!-- removed; we detect these in other ways.
+ <module name="TodoComment"/>
+ -->
+ <module name="UpperEll"/>
+ <module name="FinalParameters"/>
+
+ <!-- Checks for whitespace -->
+ <!-- See http://checkstyle.sf.net/config_whitespace.html -->
+ <!--
+ <module name="NoWhitespaceAfter"/>
+ <module name="NoWhitespaceBefore"/>
+ <module name="OperatorWrap"/>
+ <module name="ParenPad"/>
+ <module name="WhitespaceAfter"/>
+ <module name="WhitespaceAround"/>
+ <module name="TabCharacter"/>
+ -->
+ <module name="EmptyForIteratorPad"/>
+
+
+ <!-- Modifier Checks -->
+ <!-- See http://checkstyle.sf.net/config_modifiers.html -->
+ <!--
+ <module name="ModifierOrder"/>
+ <module name="RedundantModifier"/>
+ -->
+
+ <!-- Checks for Size Violations. -->
+ <!-- See http://checkstyle.sf.net/config_sizes.html -->
+ <module name="LineLength">
+ <property name="max" value="120"/>
+ </module>
+ <module name="MethodLength">
+ <property name="max" value="30"/>
+ </module>
+ <module name="ParameterNumber">
+ <property name="max" value="6"/>
+ </module>
+
+ </module>
+
+
+
+ <module name="FileLength">
+ <property name="max" value="1500"/>
+ </module>
+
+ <module name="FileTabCharacter">
+ <property name="eachLine" value="true"/>
+ <property name="fileExtensions" value="java,xml"/>
+ </module>
+
+</module>
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/_checks/pmd.xml b/example/archetype/simpleapp/src/main/resources/archetype-resources/_checks/pmd.xml
new file mode 100644
index 0000000..7f2e381
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/_checks/pmd.xml
@@ -0,0 +1,49 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<ruleset name="Maven Ruleset"
+ xmlns="http://pmd.sf.net/ruleset/1.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
+ xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
+
+ <!--
+ Customized PMD ruleset for Maven, see [0] for more information
+ [0] http://pmd.sourceforge.net/howtomakearuleset.html
+ -->
+
+ <description>
+ This ruleset checks the code for discouraged programming constructs.
+ </description>
+
+ <rule ref="rulesets/java/basic.xml">
+ <exclude name="EmptyCatchBlock"/>
+ </rule>
+ <rule ref="rulesets/java/basic.xml/EmptyCatchBlock">
+ <properties>
+ <property name="allowCommentedBlocks" value="true"/>
+ </properties>
+ </rule>
+
+ <rule ref="rulesets/java/unusedcode.xml"/>
+ <rule ref="rulesets/java/imports.xml"/>
+</ruleset>
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/logging-integtest.properties b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/logging-integtest.properties
new file mode 100644
index 0000000..2e956b5
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/logging-integtest.properties
@@ -0,0 +1,124 @@
+#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} Isis uses log4j is used to provide system logging
+${symbol_pound}
+log4j.rootCategory=INFO, Console
+
+${symbol_pound} The console appender
+log4j.appender.Console=org.apache.log4j.ConsoleAppender
+log4j.appender.Console.target=System.out
+log4j.appender.Console.layout=org.apache.log4j.PatternLayout
+log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} [%-20c{1} %-10t %-5p] %m%n
+
+log4j.appender.File=org.apache.log4j.RollingFileAppender
+log4j.appender.File.file=isis.log
+log4j.appender.File.append=false
+log4j.appender.File.layout=org.apache.log4j.PatternLayout
+log4j.appender.File.layout.ConversionPattern=%d [%-20c{1} %-10t %-5p] %m%n
+
+log4j.appender.translations-po=org.apache.log4j.FileAppender
+log4j.appender.translations-po.File=./translations.pot
+log4j.appender.translations-po.Append=false
+log4j.appender.translations-po.layout=org.apache.log4j.PatternLayout
+log4j.appender.translations-po.layout.ConversionPattern=%m%n
+
+! turn on the internal log4j debugging flag so we can see what it is doing
+${symbol_pound}log4j.debug=true
+
+
+${symbol_pound} DataNucleus
+${symbol_pound} the first two log the DML and DDL (if set to DEBUG)
+log4j.logger.DataNucleus.Datastore.Native=WARN, Console
+log4j.logger.DataNucleus.Datastore.Schema=DEBUG, Console
+${symbol_pound} the remainder can probably be left to WARN
+log4j.logger.DataNucleus.Persistence=WARN, Console
+log4j.logger.DataNucleus.Transaction=WARN, Console
+log4j.logger.DataNucleus.Connection=WARN, Console
+log4j.logger.DataNucleus.Query=WARN, Console
+log4j.logger.DataNucleus.Cache=WARN, Console
+log4j.logger.DataNucleus.MetaData=WARN, Console
+log4j.logger.DataNucleus.Datastore=WARN, Console
+log4j.logger.DataNucleus.Datastore.Persist=WARN, Console
+log4j.logger.DataNucleus.Datastore.Retrieve=WARN, Console
+log4j.logger.DataNucleus.General=WARN, Console
+log4j.logger.DataNucleus.Lifecycle=WARN, Console
+log4j.logger.DataNucleus.ValueGeneration=WARN, Console
+log4j.logger.DataNucleus.Enhancer=WARN, Console
+log4j.logger.DataNucleus.SchemaTool=ERROR, Console
+log4j.logger.DataNucleus.JDO=WARN, Console
+log4j.logger.DataNucleus.JPA=ERROR, Console
+log4j.logger.DataNucleus.JCA=WARN, Console
+log4j.logger.DataNucleus.IDE=ERROR, Console
+
+log4j.additivity.DataNucleus.Datastore.Native=false
+log4j.additivity.DataNucleus.Datastore.Schema=false
+log4j.additivity.DataNucleus.Datastore.Persistence=false
+log4j.additivity.DataNucleus.Datastore.Transaction=false
+log4j.additivity.DataNucleus.Datastore.Connection=false
+log4j.additivity.DataNucleus.Datastore.Query=false
+log4j.additivity.DataNucleus.Datastore.Cache=false
+log4j.additivity.DataNucleus.Datastore.MetaData=false
+log4j.additivity.DataNucleus.Datastore.Datastore=false
+log4j.additivity.DataNucleus.Datastore.Datastore.Persist=false
+log4j.additivity.DataNucleus.Datastore.Datastore.Retrieve=false
+log4j.additivity.DataNucleus.Datastore.General=false
+log4j.additivity.DataNucleus.Datastore.Lifecycle=false
+log4j.additivity.DataNucleus.Datastore.ValueGeneration=false
+log4j.additivity.DataNucleus.Datastore.Enhancer=false
+log4j.additivity.DataNucleus.Datastore.SchemaTool=false
+log4j.additivity.DataNucleus.Datastore.JDO=false
+log4j.additivity.DataNucleus.Datastore.JPA=false
+log4j.additivity.DataNucleus.Datastore.JCA=false
+log4j.additivity.DataNucleus.Datastore.IDE=false
+
+
+
+
+${symbol_pound} if using log4jdbc-remix as JDBC driver
+${symbol_pound}log4j.logger.jdbc.sqlonly=DEBUG, sql, Console
+${symbol_pound}log4j.additivity.jdbc.sqlonly=false
+${symbol_pound}log4j.logger.jdbc.resultsettable=DEBUG, jdbc, Console
+${symbol_pound}log4j.additivity.jdbc.resultsettable=false
+
+${symbol_pound}log4j.logger.jdbc.audit=WARN,jdbc, Console
+${symbol_pound}log4j.additivity.jdbc.audit=false
+${symbol_pound}log4j.logger.jdbc.resultset=WARN,jdbc
+${symbol_pound}log4j.additivity.jdbc.resultset=false
+${symbol_pound}log4j.logger.jdbc.sqltiming=WARN,sqltiming
+${symbol_pound}log4j.additivity.jdbc.sqltiming=false
+${symbol_pound}log4j.logger.jdbc.connection=FATAL,connection
+${symbol_pound}log4j.additivity.jdbc.connection=false
+
+
+log4j.logger.org.apache.isis.core.runtime.services.i18n.po.PoWriter=INFO,translations-po
+log4j.additivity.org.apache.isis.core.runtime.services.i18n.po.PoWriter=false
+
+
+log4j.logger.org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsBuilder=WARN,Console
+log4j.additivity.org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsBuilder=false
+
+log4j.logger.org.apache.isis.core.integtestsupport.IntegrationBootstrapAbstract=DEBUG,Console
+log4j.additivity.org.apache.isis.core.integtestsupport.IntegrationBootstrapAbstract=false
+
+log4j.logger.com.mchange.v2.c3p0.SQLWarnings=WARN,Console
+log4j.additivity.com.mchange.v2.c3p0.SQLWarnings=false
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/pom.xml b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/pom.xml
new file mode 100644
index 0000000..87bb886
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/pom.xml
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+--><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>${groupId}</groupId>
+ <artifactId>${rootArtifactId}</artifactId>
+ <version>${version}</version>
+ </parent>
+
+ <artifactId>${artifactId}</artifactId>
+ <name>Apache Isis App - SimpleApp Application</name>
+
+ <description>This defines the application (manifest) and runs application-level fixtures and integration (smoke) tests</description>
+
+ <packaging>jar</packaging>
+
+ <build>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ </resource>
+ <resource>
+ <directory>src/main/java</directory>
+ <includes>
+ <include>**</include>
+ </includes>
+ <excludes>
+ <exclude>**/*.java</exclude>
+ </excludes>
+ </resource>
+ </resources>
+ <testResources>
+ <testResource>
+ <directory>src/test/resources</directory>
+ </testResource>
+ <testResource>
+ <directory>src/test/java</directory>
+ <includes>
+ <include>**</include>
+ </includes>
+ <excludes>
+ <exclude>**/*.java</exclude>
+ </excludes>
+ </testResource>
+ </testResources>
+ <plugins>
+ <plugin>
+ <groupId>com.github.odavid.maven.plugins</groupId>
+ <artifactId>mixin-maven-plugin</artifactId>
+ <version>0.1-alpha-39</version>
+ <extensions>true</extensions>
+ <configuration>
+ <mixins>
+ <mixin>
+ <groupId>com.danhaywood.mavenmixin</groupId>
+ <artifactId>standard</artifactId>
+ </mixin>
+ <mixin>
+ <groupId>com.danhaywood.mavenmixin</groupId>
+ <artifactId>enforcerrelaxed</artifactId>
+ </mixin>
+ <mixin>
+ <groupId>com.danhaywood.mavenmixin</groupId>
+ <artifactId>surefire</artifactId>
+ </mixin>
+ <mixin>
+ <groupId>com.danhaywood.mavenmixin</groupId>
+ <artifactId>cucumberreporting</artifactId>
+ </mixin>
+ </mixins>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>${rootArtifactId}-module-simple</artifactId>
+ </dependency>
+
+ <!-- TESTS -->
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>${rootArtifactId}-module-simple</artifactId>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.isis.mavendeps</groupId>
+ <artifactId>isis-mavendeps-testing</artifactId>
+ <type>pom</type>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>com.approvaltests</groupId>
+ <artifactId>approvaltests</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.hsqldb</groupId>
+ <artifactId>hsqldb</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+
+ </dependencies>
+
+</project>
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/DomainAppApplicationModule.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/DomainAppApplicationModule.java
new file mode 100644
index 0000000..342d795
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/DomainAppApplicationModule.java
@@ -0,0 +1,43 @@
+#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.application;
+
+import java.util.Set;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+import com.google.common.collect.Sets;
+
+import org.apache.isis.applib.Module;
+import org.apache.isis.applib.ModuleAbstract;
+
+import domainapp.modules.simple.SimpleModule;
+
+@XmlRootElement(name = "module")
+public class DomainAppApplicationModule extends ModuleAbstract {
+
+ @Override
+ public Set<Module> getDependencies() {
+ return Sets.<Module>newHashSet(new SimpleModule());
+ }
+
+}
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
new file mode 100644
index 0000000..82d1751
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/fixture/DomainAppFixtureScriptsSpecificationProvider.java
@@ -0,0 +1,48 @@
+#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.application.fixture;
+
+import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.annotation.NatureOfService;
+import org.apache.isis.applib.fixturescripts.FixtureScripts;
+import org.apache.isis.applib.services.fixturespec.FixtureScriptsSpecification;
+import org.apache.isis.applib.services.fixturespec.FixtureScriptsSpecificationProvider;
+
+import domainapp.application.fixture.scenarios.DomainAppDemo;
+
+/**
+ * Specifies where to find fixtures, and other settings.
+ */
+@DomainService(
+ nature = NatureOfService.DOMAIN
+)
+public class DomainAppFixtureScriptsSpecificationProvider implements FixtureScriptsSpecificationProvider {
+ public FixtureScriptsSpecification getSpecification() {
+ return FixtureScriptsSpecification
+ .builder(DomainAppFixtureScriptsSpecificationProvider.class)
+ .with(FixtureScripts.MultipleExecutionStrategy.EXECUTE)
+ .withRunScriptDefault(DomainAppDemo.class)
+ .withRunScriptDropDown(FixtureScriptsSpecification.DropDownPolicy.CHOICES)
+ .withRecreate(DomainAppDemo.class)
+ .build();
+ }
+}
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/fixture/scenarios/DomainAppDemo.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/fixture/scenarios/DomainAppDemo.java
new file mode 100644
index 0000000..ca584a1
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/fixture/scenarios/DomainAppDemo.java
@@ -0,0 +1,48 @@
+#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.application.fixture.scenarios;
+
+import javax.inject.Inject;
+
+import org.apache.isis.applib.AppManifest2;
+import org.apache.isis.applib.fixturescripts.FixtureScript;
+import org.apache.isis.applib.services.metamodel.MetaModelService;
+
+import domainapp.modules.simple.fixture.SimpleObject_persona;
+
+public class DomainAppDemo extends FixtureScript {
+
+ public DomainAppDemo() {
+ withDiscoverability(Discoverability.DISCOVERABLE);
+ }
+
+ @Override
+ protected void execute(final ExecutionContext ec) {
+ AppManifest2 appManifest2 = metaModelService.getAppManifest2();
+ ec.executeChild(this, appManifest2.getTeardownFixture());
+ ec.executeChild(this, appManifest2.getRefDataSetupFixture());
+ ec.executeChild(this, new SimpleObject_persona.PersistAll());
+ }
+
+ @Inject
+ MetaModelService metaModelService;
+}
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
new file mode 100644
index 0000000..ea244e4
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/DomainAppAppManifest.java
@@ -0,0 +1,43 @@
+#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.application.manifest;
+
+import org.apache.isis.applib.AppManifestAbstract2;
+
+import domainapp.application.DomainAppApplicationModule;
+
+/**
+ * Bootstrap the application.
+ */
+public class DomainAppAppManifest extends AppManifestAbstract2 {
+
+ public static final Builder BUILDER = Builder
+ .forModule(new DomainAppApplicationModule())
+ .withConfigurationPropertiesFile(
+ DomainAppAppManifest.class, "isis-non-changing.properties")
+ .withAuthMechanism("shiro");
+
+ public DomainAppAppManifest() {
+ super(BUILDER);
+ }
+
+}
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
new file mode 100644
index 0000000..c9cbdc8
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestBypassSecurity.java
@@ -0,0 +1,32 @@
+#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.application.manifest;
+
+/**
+ * Bypasses security, meaning any user/password combination can be used to login.
+ */
+public class DomainAppAppManifestBypassSecurity extends DomainAppAppManifest {
+
+ @Override protected String overrideAuthMechanism() {
+ return "bypass";
+ }
+}
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
new file mode 100644
index 0000000..1dc6853
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestWithFixtures.java
@@ -0,0 +1,40 @@
+#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.application.manifest;
+
+import java.util.List;
+
+import org.apache.isis.applib.fixturescripts.FixtureScript;
+
+import domainapp.modules.simple.fixture.SimpleObject_persona;
+
+/**
+ * Run the app but setting up any fixtures.
+ */
+public class DomainAppAppManifestWithFixtures extends DomainAppAppManifest {
+
+ @Override
+ protected void overrideFixtures(final List<Class<? extends FixtureScript>> fixtureScripts) {
+ fixtureScripts.add(SimpleObject_persona.PersistAll.class);
+ }
+
+}
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
new file mode 100644
index 0000000..48fdc02
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/DomainAppAppManifestWithFixturesBypassSecurity.java
@@ -0,0 +1,33 @@
+#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.application.manifest;
+
+/**
+ * Bypasses security, meaning any user/password combination can be used to login.
+ */
+public class DomainAppAppManifestWithFixturesBypassSecurity extends DomainAppAppManifestWithFixtures {
+
+ @Override protected String overrideAuthMechanism() {
+ return "bypass";
+ }
+
+}
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/isis-non-changing.properties b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/isis-non-changing.properties
new file mode 100644
index 0000000..421517a
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/isis-non-changing.properties
@@ -0,0 +1,741 @@
+#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_pou [...]
+${symbol_pound}
+${symbol_pound} core
+${symbol_pound}
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pou [...]
+
+
+${symbol_pound} -- auto wired by plugins --
+${symbol_pound}isis.services.eventbus.implementation=guava
+${symbol_pound}isis.services.eventbus.implementation=axon
+
+
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pou [...]
+${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_pou [...]
+
+
+${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 check that JAXB view models are not abstract. If not specified, default is to validate.
+${symbol_pound}
+${symbol_pound}isis.reflector.validator.jaxbViewModelNotAbstract=true
+
+${symbol_pound}
+${symbol_pound} Whether to check that JAXB view models are not inner classes. If not specified, default is to validate.
+${symbol_pound}
+${symbol_pound}isis.reflector.validator.jaxbViewModelNotInnerClass=true
+
+${symbol_pound}
+${symbol_pound} Whether to check that JAXB view models have no-arg constructors. If not specified, default is NOT to validate.
+${symbol_pound}
+${symbol_pound}isis.reflector.validator.jaxbViewModelNoArgConstructor=false
+
+${symbol_pound}
+${symbol_pound} Whether to check that, for JAXB view model with properties referencing persistent entities, that those entities
+${symbol_pound} are annotated with @XmlJavaTypeAdapter. If not specified, default is to validate.
+${symbol_pound}
+${symbol_pound}isis.reflector.validator.jaxbViewModelReferenceTypeAdapter=true
+
+${symbol_pound}
+${symbol_pound} Whether to check that, for JAXB view model with date/time properties, that those properties are annotated with
+${symbol_pound} @XmlJavaTypeAdapter. If not specified, default is to validate.
+${symbol_pound}
+${symbol_pound}isis.reflector.validator.jaxbViewModelDateTimeTypeAdapter=true
+
+
+${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} 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}
+ delete.*:fa-trash,${symbol_escape}
+ save.*:fa-floppy-o,${symbol_escape}
+ change.*:fa-edit,${symbol_escape}
+ edit.*:fa-pencil-square-o,${symbol_escape}
+ maintain.*:fa-edit,${symbol_escape}
+ remove.*:fa-minus-square,${symbol_escape}
+ copy.*:fa-copy,${symbol_escape}
+ move.*:fa-exchange,${symbol_escape}
+ first.*:fa-star,${symbol_escape}
+ find.*:fa-search,${symbol_escape}
+ lookup.*:fa-search,${symbol_escape}
+ search.*:fa-search,${symbol_escape}
+ view.*: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}
+ export.*:fa-download,${symbol_escape}
+ switch.*:fa-exchange,${symbol_escape}
+ import.*: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_escape}
+ stop.*:fa-stop,${symbol_escape}
+ terminate.*:fa-stop,${symbol_escape}
+ cancel.*:fa-stop,${symbol_escape}
+ discard.*:fa-trash-o,${symbol_escape}
+ pause.*:fa-pause,${symbol_escape}
+ suspend.*:fa-pause,${symbol_escape}
+ resume.*:fa-play,${symbol_escape}
+ renew.*:fa-repeat,${symbol_escape}
+ reset.*:fa-repeat,${symbol_escape}
+ categorise.*:fa-folder-open-o,${symbol_escape}
+ assign.*:fa-hand-o-right,${symbol_escape}
+ approve.*:fa-thumbs-o-up,${symbol_escape}
+ decline.*:fa-thumbs-o-down
+
+
+${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_escape}
+ discard.*:btn-warning,${symbol_escape}
+ remove.*:btn-warning
+
+
+${symbol_pound}
+${symbol_pound} Whether actions require @Action annotation to be recognised
+${symbol_pound}
+isis.reflector.explicitAnnotations.action=true
+
+${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
+
+${symbol_pound}isis.reflector.facet.domainObjectAnnotation.createdLifecycleEvent.postForDefault=false
+${symbol_pound}isis.reflector.facet.domainObjectAnnotation.persistingLifecycleEvent.postForDefault=false
+${symbol_pound}isis.reflector.facet.domainObjectAnnotation.persistedLifecycleEvent.postForDefault=false
+${symbol_pound}isis.reflector.facet.domainObjectAnnotation.loadedLifecycleEvent.postForDefault=false
+${symbol_pound}isis.reflector.facet.domainObjectAnnotation.updatingLifecycleEvent.postForDefault=false
+${symbol_pound}isis.reflector.facet.domainObjectAnnotation.updatedLifecycleEvent.postForDefault=false
+${symbol_pound}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_pou [...]
+${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_pou [...]
+
+${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_pou [...]
+${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_pou [...]
+
+${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 @DomainObject(auditing=Auditing.DISABLED)
+${symbol_pound}
+${symbol_pound}isis.services.audit.objects=all|none
+isis.services.audit.objects=all
+
+
+${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
+isis.services.command.actions=ignoreSafe
+
+
+${symbol_pound}
+${symbol_pound} Whether property edits should be reified into commands; if not set, defaults to "none"
+${symbol_pound} - if not set or set to "none", can explicitly enable using @Property(command=CommandReification.ENABLED)
+${symbol_pound} - if set to "all", can explicitly disable using @Property(command=CommandReification.DISABLED)
+${symbol_pound}
+${symbol_pound}isis.services.command.properties=all|none
+isis.services.command.properties=all
+
+
+
+${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
+isis.services.publish.objects=all
+
+
+${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
+isis.services.publish.actions=all
+
+
+${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
+isis.services.publish.properties=all
+
+
+
+${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_pou [...]
+${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_pou [...]
+
+${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}
+${symbol_pound}isis.objects.editing=true|false
+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_pou [...]
+${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_pou [...]
+
+${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_pou [...]
+${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_pou [...]
+
+${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_pou [...]
+${symbol_pound}
+${symbol_pound} authentication_shiro
+${symbol_pound}
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pou [...]
+
+${symbol_pound}
+${symbol_pound} if the shiro Subject is still authenticated, then just reuse.
+${symbol_pound} Prior to 1.13.0, we forced an auto-logout, so set to 'true' to reinstate this behaviour.
+${symbol_pound} See this thread for further info: http://markmail.org/message/hsjljwgkhhrzxbrm
+${symbol_pound}
+${symbol_pound}isis.authentication.shiro.autoLogoutIfAlreadyAuthenticated=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_pou [...]
+${symbol_pound}
+${symbol_pound} persistor_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_pou [...]
+
+
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pou [...]
+${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_pou [...]
+
+
+
+${symbol_pound} generally speaking this should not be enabled
+isis.persistor.disableConcurrencyChecking=false
+
+
+
+${symbol_pound}
+${symbol_pound} If enabled, uses a more efficient implementation to render standalone collections.
+${symbol_pound} default is 'false' (disabled)
+${symbol_pound}
+isis.persistor.datanucleus.standaloneCollection.bulkLoad=true
+
+
+${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_pou [...]
+${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_pou [...]
+
+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 WEB-INF/isis.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_pou [...]
+${symbol_pound}
+${symbol_pound} viewer_restfulobjects.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_pou [...]
+
+
+
+${symbol_pound} renders param details in the (incorrect) form that they were for GSOC2013 viewers
+${symbol_pound} isis.viewer.restfulobjects.gsoc2013.legacyParamDetails=true
+
+${symbol_pound} whether to honor UI hints, in particular Render(EAGERLY). Defaults to false.
+${symbol_pound}isis.viewer.restfulobjects.honorUiHints=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_pou [...]
+${symbol_pound} Non-standard configuration settings.
+${symbol_pound}
+${symbol_pound} If enabled of the following are enabled then the viewer is deviating from the
+${symbol_pound} RO spec standard; compatibility may be compromised with RO clients.
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pou [...]
+
+${symbol_pound} whether to show only object properties for object members
+${symbol_pound} (on the object representation only)
+${symbol_pound} Takes precedence over the other 'suppress' below.
+${symbol_pound}isis.viewer.restfulobjects.objectPropertyValuesOnly=true
+
+${symbol_pound} whether to suppress "describedby" links. Defaults to false.
+${symbol_pound}isis.viewer.restfulobjects.suppressDescribedByLinks=true
+
+${symbol_pound} whether to suppress "update" links. Defaults to false.
+${symbol_pound}isis.viewer.restfulobjects.suppressUpdateLink=true
+
+${symbol_pound} whether to suppress "id" json-prop for object members. Defaults to false.
+${symbol_pound}isis.viewer.restfulobjects.suppressMemberId=true
+
+${symbol_pound} whether to suppress "links" json-prop for object members
+${symbol_pound} (on the object representation only). Defaults to false.
+${symbol_pound}isis.viewer.restfulobjects.suppressMemberLinks=true
+
+${symbol_pound} whether to suppress "extensions" json-prop for object members
+${symbol_pound} (on the object representation only). Defaults to false.
+${symbol_pound}isis.viewer.restfulobjects.suppressMemberExtensions=true
+
+${symbol_pound} whether to suppress "disabledReason" json-prop for object members
+${symbol_pound} (on the object representation only). Defaults to false.
+${symbol_pound}isis.viewer.restfulobjects.suppressMemberDisabledReason=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_pou [...]
+${symbol_pound}
+${symbol_pound} viewer_wicket
+${symbol_pound}
+${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pound}${symbol_pou [...]
+
+
+isis.viewer.wicket.application.name=Simple App
+isis.viewer.wicket.application.css=css/application.css
+isis.viewer.wicket.application.js=scripts/application.js
+isis.viewer.wicket.application.about=Simple App
+
+isis.viewer.wicket.credit.1.image=/images/apache-isis/logo-48x48.png
+isis.viewer.wicket.credit.1.name=Apache Isis
+isis.viewer.wicket.credit.1.url=http://isis.apache.org
+
+${symbol_pound}
+${symbol_pound} The maximum length of titles to display in standalone or parented tables.
+${symbol_pound} Titles longer than this length will be truncated with trailing ellipses (...)
+${symbol_pound}
+${symbol_pound} For example, if set to 12, the title
+${symbol_pound} "Buy milk on 15-Feb-13" will be truncated to "Buy milk ..."
+${symbol_pound}
+${symbol_pound} If set to 0, then only the icon will be shown.
+${symbol_pound}
+isis.viewer.wicket.maxTitleLengthInStandaloneTables=0
+isis.viewer.wicket.maxTitleLengthInParentedTables=0
+
+
+${symbol_pound}
+${symbol_pound} in Firefox and more recent versions of Chrome 54+, cannot copy out of disabled fields; instead we use the
+${symbol_pound} readonly attribute (https://www.w3.org/TR/2014/REC-html5-20141028/forms.html${symbol_pound}the-readonly-attribute)
+${symbol_pound} This behaviour is enabled by default but can be disabled using this flag
+${symbol_pound}
+${symbol_pound}isis.viewer.wicket.replaceDisabledTagWithReadonlyTag=true
+
+
+${symbol_pound}
+${symbol_pound} Whether to disable buttons after it has been clicked (for both form submit and no-arg actions), to prevent users
+${symbol_pound} causing an error if they do a double click.
+${symbol_pound} Also, whether to show an indicator alongside the button.
+${symbol_pound}
+${symbol_pound} This behaviour is enabled by default, but can be disabled using this flag.
+${symbol_pound}
+${symbol_pound}isis.viewer.wicket.preventDoubleClickForFormSubmit=true
+${symbol_pound}isis.viewer.wicket.preventDoubleClickForNoArgAction=true
+${symbol_pound}isis.viewer.wicket.useIndicatorForFormSubmit=true
+${symbol_pound}isis.viewer.wicket.useIndicatorForNoArgAction=true
+
+
+${symbol_pound}isis.viewer.wicket.datePicker.minDate=1900-01-01T00:00:00.000Z
+${symbol_pound}isis.viewer.wicket.datePicker.maxDate=2100-01-01T00:00:00.000Z
+
+${symbol_pound}isis.viewer.wicket.datePattern=dd-MM-yyyy
+${symbol_pound}isis.viewer.wicket.dateTimePattern=dd-MM-yyyy HH:mm
+
+${symbol_pound}isis.viewer.wicket.datePattern=dd/MM/yy
+${symbol_pound}isis.viewer.wicket.dateTimePattern=dd/MM/yy HH:mm
+
+
+${symbol_pound}
+${symbol_pound} whether to strip wicket tags from markup (default is true, as they may break some CSS rules)
+${symbol_pound}
+${symbol_pound}isis.viewer.wicket.stripWicketTags=false
+
+
+${symbol_pound}
+${symbol_pound} action prompt='dialog' style for objects ('sidebar' or 'modal', default is 'sidebar')
+${symbol_pound}
+${symbol_pound}isis.viewer.wicket.dialogMode=modal
+
+${symbol_pound}
+${symbol_pound} action prompt='dialog' style for services ('sidebar' or 'modal', default is 'modal')
+${symbol_pound}
+${symbol_pound}isis.viewer.wicket.dialogModeForMenu=sidebar
+
+
+${symbol_pound}
+${symbol_pound} whether to suppress the 'rememberMe' checkbox on the login page (default is false)
+${symbol_pound}
+${symbol_pound}isis.viewer.wicket.rememberMe.suppress=false
+
+
+${symbol_pound}
+${symbol_pound} Encryption key is used to encrypt the rememberMe user/password. It should be set to a unique and private value.
+${symbol_pound} If a hard-coded and publicly known value is used, then it would be possible for rememberMe user/password to be
+${symbol_pound} intercepted and decrypted, compromising access.
+${symbol_pound}
+${symbol_pound} If no value is set then (for safety) a random UUID will be used as the encryption key. The net effect of this
+${symbol_pound} default is that 'rememberMe' will work, but only until the webapp is restarted (after which the end-user will
+${symbol_pound} have to log in again).
+${symbol_pound}
+${symbol_pound}isis.viewer.wicket.rememberMe.encryptionKey=myEncryptionKey
+
+
+${symbol_pound}
+${symbol_pound} if user attempts to access a protected URL before signing in, then as a convenience the viewer will continue
+${symbol_pound} through to that destination after successful login. If you consider this to be a security risk then this flag
+${symbol_pound} disables that behaviour (default is false).
+${symbol_pound}
+${symbol_pound}isis.viewer.wicket.clearOriginalDestination=true
+
+
+${symbol_pound}
+${symbol_pound} whether to show the Wicket debug bar and any other development utilities
+${symbol_pound} (default depends on whether running in prototype mode or not; this property overrides that)
+${symbol_pound}
+${symbol_pound}isis.viewer.wicket.developmentUtilities.enable=true
+isis.viewer.wicket.developmentUtilities.enable=true
+
+
+
+${symbol_pound}
+${symbol_pound} whether to show bookmarks (defaults to true)
+${symbol_pound}
+${symbol_pound}isis.viewer.wicket.bookmarkedPages.showChooser=true
+
+
+${symbol_pound}
+${symbol_pound} the maximum number of pages to list in bookmark (default is 15)
+${symbol_pound}
+${symbol_pound}isis.viewer.wicket.bookmarkedPages.maxSize=15
+
+
+${symbol_pound}
+${symbol_pound} whether to show breadcrumbs (defaults to true)
+${symbol_pound}
+${symbol_pound}isis.viewer.wicket.breadcrumbs.showChooser=true
+
+
+
+
+
+${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} whether to show the bootstrap theme chooser (defaults false)
+${symbol_pound}
+${symbol_pound}isis.viewer.wicket.themes.showChooser=false
+isis.viewer.wicket.themes.showChooser=true
+
+
+${symbol_pound}
+${symbol_pound} comma-separated list of themes to choose from (default is to show all themes from bootswatch.com, excluding Amelia which is broken).
+${symbol_pound}
+isis.viewer.wicket.themes.enabled=bootstrap-theme, Cerulean, Cosmo, Cyborg, Darkly, Flatly, Journal, Lumen, Paper, Readable, Sandstone, Simplex, Slate, Spacelab, Superhero, United, Yeti
+
+
+isis.viewer.wicket.themes.initial=Flatly
+
+
+${symbol_pound}
+${symbol_pound} whether to automatically select dependent choice when the choice it depends upon changes.
+${symbol_pound}
+${symbol_pound}isis.viewer.wicket.disableDependentChoiceAutoSelection=false
+
+
+${symbol_pound}
+${symbol_pound} enable liveReload. For example, use with gradle -t -b liveReload.gradle --offline &
+${symbol_pound}
+${symbol_pound}isis.viewer.wicket.liveReloadUrl=http://localhost:35729/livereload.js?snipver=1
+
+
+
+${symbol_pound}
+${symbol_pound} cookie key holding the (encrypted) 'rememberMe' user/password.
+${symbol_pound} If not specified then the cookie key 'isisWicketRememberMe' will be used; there is generally no need to change this.
+${symbol_pound}
+${symbol_pound}isis.viewer.wicket.rememberMe.cookieKey=isisWicketRememberMe
+
+
+${symbol_pound}
+${symbol_pound} specifies whether an INLINE or DIALOG prompt should be used for property edits and for action invocations (of actions
+${symbol_pound} associated with a property). This is a fallback where not specified on a case-by-case using @PropertyLayout or
+${symbol_pound} @ActionLayout (or equivalents in the Xxx.layout.xml file).
+${symbol_pound}
+${symbol_pound} If not specified then the default is an inline prompt.
+${symbol_pound}
+${symbol_pound}isis.viewer.wicket.promptStyle=INLINE
+
+
+${symbol_pound}
+${symbol_pound} If set then reverts to pre-1.15.0 behaviour of redirecting to a new page on any action invocation or property edit.
+${symbol_pound} If left to its default then the page will be updated if the same object is rendered, making for a smoother user
+${symbol_pound} experience.
+${symbol_pound}
+${symbol_pound}isis.viewer.wicket.redirectEvenIfSameObject=false
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/menubars.layout.xml b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/menubars.layout.xml
new file mode 100644
index 0000000..133634f
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/menubars.layout.xml
@@ -0,0 +1,118 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+ 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.
+-->
+<mb3:menuBars xsi:schemaLocation="http://isis.apache.org/applib/layout/menubars/bootstrap3 http://isis.apache.org/applib/layout/menubars/bootstrap3/menubars.xsd http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd http://isis.apache.org/applib/layout/links http://isis.apache.org/applib/layout/links/links.xsd" xmlns:cpt="http://isis.apache.org/applib/layout/component" xmlns:lnk="http://isis.apache.org/applib/layout/links" xmlns:mb3="h [...]
+ <mb3:primary>
+ <mb3:menu>
+ <mb3:named>Simple Objects</mb3:named>
+ <mb3:section>
+ <mb3:serviceAction objectType="simple.SimpleObjects" id="create">
+ <cpt:named>Create</cpt:named>
+ </mb3:serviceAction>
+ <mb3:serviceAction objectType="simple.SimpleObjects" id="findByName">
+ <cpt:named>Find By Name</cpt:named>
+ </mb3:serviceAction>
+ <mb3:serviceAction objectType="simple.SimpleObjects" id="listAll">
+ <cpt:named>List All</cpt:named>
+ </mb3:serviceAction>
+ </mb3:section>
+ </mb3:menu>
+ <mb3:menu unreferencedActions="true">
+ <mb3:named>Other</mb3:named>
+ </mb3:menu>
+ </mb3:primary>
+ <mb3:secondary>
+ <mb3:menu>
+ <mb3:named>Prototyping</mb3:named>
+ <mb3:section>
+ <mb3:serviceAction objectType="isisApplib.FixtureScriptsDefault" id="runFixtureScript">
+ <cpt:named>Run Fixture Script</cpt:named>
+ </mb3:serviceAction>
+ <mb3:serviceAction objectType="isisApplib.FixtureScriptsDefault" id="runFixtureScriptWithAutoComplete">
+ <cpt:named>Run Fixture Script</cpt:named>
+ </mb3:serviceAction>
+ <mb3:serviceAction objectType="isisApplib.FixtureScriptsDefault" id="recreateObjectsAndReturnFirst">
+ <cpt:named>Recreate Objects And Return First</cpt:named>
+ </mb3:serviceAction>
+ </mb3:section>
+ <mb3:section>
+ <mb3:serviceAction objectType="isisApplib.LayoutServiceMenu" id="downloadLayouts">
+ <cpt:named>Download Object Layouts (ZIP)</cpt:named>
+ </mb3:serviceAction>
+ <mb3:serviceAction objectType="isisApplib.LayoutServiceMenu" id="downloadMenuBarsLayout">
+ <cpt:named>Download Menu Bars Layout (XML)</cpt:named>
+ </mb3:serviceAction>
+ </mb3:section>
+ <mb3:section>
+ <mb3:serviceAction objectType="isisApplib.MetaModelServicesMenu" id="downloadMetaModelXml">
+ <cpt:named>Download Meta Model (XML)</cpt:named>
+ </mb3:serviceAction>
+ <mb3:serviceAction objectType="isisApplib.MetaModelServicesMenu" id="downloadMetaModelCsv">
+ <cpt:named>Download Meta Model (CSV)</cpt:named>
+ </mb3:serviceAction>
+ </mb3:section>
+ <mb3:section>
+ <mb3:serviceAction objectType="isisApplib.SwaggerServiceMenu" id="openSwaggerUi">
+ <cpt:named>Open Swagger Ui</cpt:named>
+ </mb3:serviceAction>
+ <mb3:serviceAction objectType="isisApplib.SwaggerServiceMenu" id="openRestApi">
+ <cpt:named>Open Rest Api</cpt:named>
+ </mb3:serviceAction>
+ <mb3:serviceAction objectType="isisApplib.SwaggerServiceMenu" id="downloadSwaggerSchemaDefinition">
+ <cpt:named>Download Swagger Schema Definition</cpt:named>
+ </mb3:serviceAction>
+ </mb3:section>
+ <mb3:section>
+ <mb3:serviceAction objectType="isisApplib.TranslationServicePoMenu" id="downloadTranslations">
+ <cpt:named>Download Translations</cpt:named>
+ </mb3:serviceAction>
+ <mb3:serviceAction objectType="isisApplib.TranslationServicePoMenu" id="resetTranslationCache">
+ <cpt:named>Clear translation cache</cpt:named>
+ </mb3:serviceAction>
+ <mb3:serviceAction objectType="isisApplib.TranslationServicePoMenu" id="switchToReadingTranslations">
+ <cpt:named>Switch To Reading Translations</cpt:named>
+ </mb3:serviceAction>
+ <mb3:serviceAction objectType="isisApplib.TranslationServicePoMenu" id="switchToWritingTranslations">
+ <cpt:named>Switch To Writing Translations</cpt:named>
+ </mb3:serviceAction>
+ </mb3:section>
+ <mb3:section>
+ <mb3:serviceAction objectType="isisApplib.HsqlDbManagerMenu" id="hsqlDbManager">
+ <cpt:named>HSQL DB Manager</cpt:named>
+ </mb3:serviceAction>
+ <mb3:serviceAction objectType="isisApplib.H2ManagerMenu" id="openH2Console">
+ <cpt:named>H2 Console</cpt:named>
+ </mb3:serviceAction>
+ </mb3:section>
+ </mb3:menu>
+ </mb3:secondary>
+ <mb3:tertiary>
+ <mb3:menu>
+ <mb3:named>Configuration Service Menu</mb3:named>
+ <mb3:section>
+ <mb3:serviceAction objectType="isisApplib.ConfigurationMenu" id="configuration">
+ <cpt:named>Configuration</cpt:named>
+ </mb3:serviceAction>
+ </mb3:section>
+ </mb3:menu>
+ </mb3:tertiary>
+</mb3:menuBars>
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/services/health/HealthCheckServiceImpl.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/services/health/HealthCheckServiceImpl.java
new file mode 100644
index 0000000..4c29a55
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/services/health/HealthCheckServiceImpl.java
@@ -0,0 +1,32 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package domainapp.application.services.health;
+
+import javax.inject.Inject;
+
+import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.annotation.NatureOfService;
+import org.apache.isis.applib.services.health.Health;
+import org.apache.isis.applib.services.health.HealthCheckService;
+
+import domainapp.modules.simple.dom.impl.SimpleObjects;
+
+@DomainService(nature = NatureOfService.DOMAIN)
+public class HealthCheckServiceImpl implements HealthCheckService {
+
+ @Override
+ public Health check() {
+
+ try {
+ simpleObjects.ping();
+ return Health.ok();
+ } catch (Exception ex) {
+ return Health.error(ex.getMessage());
+ }
+
+ }
+
+ @Inject
+ SimpleObjects simpleObjects;
+}
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
new file mode 100644
index 0000000..07efddb
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/services/homepage/HomePageService.java
@@ -0,0 +1,46 @@
+#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.application.services.homepage;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.annotation.HomePage;
+import org.apache.isis.applib.annotation.NatureOfService;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.services.factory.FactoryService;
+
+@DomainService(
+ nature = NatureOfService.DOMAIN, // trick to suppress the actions from the top-level menu
+ objectType = "homepage.HomePageService"
+)
+public class HomePageService {
+
+ @Action(semantics = SemanticsOf.SAFE)
+ @HomePage
+ public HomePageViewModel homePage() {
+ return factoryService.instantiate(HomePageViewModel.class);
+ }
+
+
+ @javax.inject.Inject
+ FactoryService factoryService;
+}
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
new file mode 100644
index 0000000..def1650
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/services/homepage/HomePageViewModel.java
@@ -0,0 +1,49 @@
+#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.application.services.homepage;
+
+import java.util.List;
+
+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.SimpleObjects;
+
+@DomainObject(
+ nature = Nature.VIEW_MODEL,
+ objectType = "domainapp.application.services.homepage.HomePageViewModel"
+)
+public class HomePageViewModel {
+
+ public TranslatableString title() {
+ return TranslatableString.tr("{num} objects", "num", getObjects().size());
+ }
+
+ public List<SimpleObject> getObjects() {
+ return simpleObjects.listAll();
+ }
+
+ @javax.inject.Inject
+ SimpleObjects simpleObjects;
+}
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/services/homepage/HomePageViewModel.layout.xml b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/services/homepage/HomePageViewModel.layout.xml
new file mode 100644
index 0000000..a345814
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/services/homepage/HomePageViewModel.layout.xml
@@ -0,0 +1,53 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+ 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.
+-->
+<bs3:grid xsi:schemaLocation="http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd http://isis.apache.org/applib/layout/grid/bootstrap3 http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd" xmlns="http://isis.apache.org/applib/layout/component" xmlns:bs3="http://isis.apache.org/applib/layout/grid/bootstrap3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <bs3:row>
+ <bs3:col span="2">
+ <bs3:sizeSpan size="LG" span="2" offset="true"/>
+ <bs3:row>
+ <bs3:col span="12" unreferencedActions="true">
+ <domainObject/>
+ <action id="clearHints"/>
+ <action id="downloadLayoutXml" hidden="EVERYWHERE"/>
+ <action id="rebuildMetamodel" hidden="EVERYWHERE"/>
+ <action id="openRestApi" hidden="EVERYWHERE"/>
+ </bs3:col>
+ </bs3:row>
+ </bs3:col>
+ <bs3:col span="4" unreferencedCollections="true">
+ <bs3:row>
+ <bs3:col span="12">
+ <collection id="objects" defaultView="table"/>
+ </bs3:col>
+ </bs3:row>
+ </bs3:col>
+ </bs3:row>
+ <bs3:row>
+
+ </bs3:row>
+ <bs3:row>
+ <bs3:col span="0">
+ <fieldSet name="General" id="general" unreferencedProperties="true"/>
+ </bs3:col>
+ </bs3:row>
+</bs3:grid>
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/services/homepage/HomePageViewModel.png b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/services/homepage/HomePageViewModel.png
new file mode 100644
index 0000000..cb03785
Binary files /dev/null and b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/services/homepage/HomePageViewModel.png differ
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/bdd/specglue/BootstrappingGlue.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/bdd/specglue/BootstrappingGlue.java
new file mode 100644
index 0000000..b6b046e
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/bdd/specglue/BootstrappingGlue.java
@@ -0,0 +1,42 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/**
+O * 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.application.bdd.specglue;
+
+import cucumber.api.java.After;
+import cucumber.api.java.Before;
+import domainapp.application.DomainAppApplicationModule;
+
+public class BootstrappingGlue extends BootstrappingGlueAbstract {
+
+ @Before(order=100)
+ public void beforeScenario() {
+ super.bootstrapAndSetupIfRequired();
+ }
+
+ @After
+ public void afterScenario(cucumber.api.Scenario sc) {
+ super.tearDownAllModules();
+ }
+
+ public BootstrappingGlue() {
+ super(new DomainAppApplicationModule());
+ }
+
+}
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/bdd/specglue/BootstrappingGlueAbstract.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/bdd/specglue/BootstrappingGlueAbstract.java
new file mode 100644
index 0000000..bb1c6df
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/bdd/specglue/BootstrappingGlueAbstract.java
@@ -0,0 +1,40 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/**
+O * 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.application.bdd.specglue;
+
+import org.apache.isis.applib.AppManifest;
+import org.apache.isis.applib.Module;
+import org.apache.isis.core.integtestsupport.ModuleBuilder;
+import org.apache.isis.core.runtime.headless.HeadlessWithBootstrappingAbstract;
+
+public class BootstrappingGlueAbstract extends HeadlessWithBootstrappingAbstract {
+
+ public BootstrappingGlueAbstract(final Module module) {
+ this(module, AppManifest.Util.MemDb.HSQLDB);
+ }
+
+ public BootstrappingGlueAbstract(final Module module, final AppManifest.Util.MemDb memDb) {
+ super(ModuleBuilder.create(module)
+ .withHeadlessTransactionSupport()
+ .withIntegrationTestConfigFallback(memDb)
+ .build());
+ }
+
+}
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/bdd/specglue/CatalogOfFixturesGlue.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/bdd/specglue/CatalogOfFixturesGlue.java
new file mode 100644
index 0000000..4ce0fcc
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/bdd/specglue/CatalogOfFixturesGlue.java
@@ -0,0 +1,32 @@
+#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.application.bdd.specglue;
+
+import org.apache.isis.core.specsupport.specs.CukeGlueAbstract2;
+
+import cucumber.api.java.Before;
+import domainapp.application.fixture.scenarios.DomainAppDemo;
+
+public class CatalogOfFixturesGlue extends CukeGlueAbstract2 {
+ @Before(value={"@DomainAppDemo"}, order=20000)
+ public void runDomainAppDemo() {
+ fixtureScripts.runFixtureScript(new DomainAppDemo(), null);
+ }
+}
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/bdd/specs/RunIntegBddSpecs.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/bdd/specs/RunIntegBddSpecs.java
new file mode 100644
index 0000000..2ede811
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/bdd/specs/RunIntegBddSpecs.java
@@ -0,0 +1,46 @@
+#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.application.bdd.specs;
+
+import org.junit.runner.RunWith;
+
+import cucumber.api.CucumberOptions;
+import cucumber.api.junit.Cucumber;
+
+
+/**
+ * Runs scenarios in all <tt>.feature</tt> files (this package and any subpackages).
+ */
+@RunWith(Cucumber.class)
+@CucumberOptions(
+ format = {
+ "html:target/cucumber-html-report"
+ ,"json:target/cucumber.json"
+ },
+ glue={
+ "classpath:domainapp.application.bdd.specglue",
+ "classpath:domainapp.modules.simple.specglue"
+ },
+ strict = true,
+ tags = { "~@backlog", "~@ignore" }
+)
+public class RunIntegBddSpecs {
+ // intentionally empty
+}
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/bdd/specs/SimpleObjectSpec_listAllAndCreate.feature b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/bdd/specs/SimpleObjectSpec_listAllAndCreate.feature
new file mode 100644
index 0000000..f164d92
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/bdd/specs/SimpleObjectSpec_listAllAndCreate.feature
@@ -0,0 +1,25 @@
+#
+# 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.
+#
+@DomainAppDemo
+Feature: List and Create New Simple Objects
+
+ Scenario: Existing simple objects can be listed and new ones created
+ Given there are initially 10 simple objects
+ When I create a new simple object
+ Then there are 11 simple objects
+
+
\ No newline at end of file
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/DomainAppIntegTestAbstract.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/DomainAppIntegTestAbstract.java
new file mode 100644
index 0000000..01506f1
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/DomainAppIntegTestAbstract.java
@@ -0,0 +1,34 @@
+#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.application.integtests;
+
+import org.apache.isis.core.integtestsupport.IntegrationTestAbstract3;
+
+import domainapp.application.DomainAppApplicationModule;
+
+public abstract class DomainAppIntegTestAbstract extends IntegrationTestAbstract3 {
+
+ public DomainAppIntegTestAbstract() {
+ super(new DomainAppApplicationModule());
+ }
+
+}
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/mml/MetaModelService_IntegTest.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/mml/MetaModelService_IntegTest.java
new file mode 100644
index 0000000..9f92431
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/mml/MetaModelService_IntegTest.java
@@ -0,0 +1,150 @@
+#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.application.integtests.mml;
+
+import java.io.File;
+import java.util.List;
+
+import javax.inject.Inject;
+
+import org.approvaltests.namer.StackTraceNamer;
+import org.approvaltests.reporters.DiffReporter;
+import org.approvaltests.reporters.QuietReporter;
+import org.approvaltests.reporters.UseReporter;
+import org.approvaltests.writers.ApprovalTextWriter;
+import org.junit.Test;
+
+import org.apache.isis.applib.services.jaxb.JaxbService;
+import org.apache.isis.applib.services.metamodel.MetaModelService;
+import org.apache.isis.schema.metamodel.v1.DomainClassDto;
+import org.apache.isis.schema.metamodel.v1.MetamodelDto;
+
+import domainapp.application.integtests.DomainAppIntegTestAbstract;
+import static org.approvaltests.Approvals.getReporter;
+import static org.approvaltests.Approvals.verify;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.junit.Assume.assumeThat;
+
+public class MetaModelService_IntegTest extends DomainAppIntegTestAbstract {
+
+ @Inject
+ MetaModelService metaModelService;
+ @Inject
+ JaxbService jaxbService;
+
+
+ //
+ // learn...
+ //
+ // ... move the resultant files in "received" directory over to "approved".
+ //
+ @UseReporter(QuietReporter.class)
+ @Test
+ public void _1_learn() throws Exception {
+
+ assumeThat(System.getProperty("lockdown.learn"), is(notNullValue()));
+
+ // when
+ MetamodelDto metamodelDto =
+ metaModelService.exportMetaModel(
+ new MetaModelService.Config()
+ .withIgnoreNoop()
+ .withIgnoreAbstractClasses()
+ .withIgnoreBuiltInValueTypes()
+ .withIgnoreInterfaces()
+ .withPackagePrefix("domainapp")
+ );
+
+ // then
+ final List<DomainClassDto> domainClassDto = metamodelDto.getDomainClassDto();
+ for (final DomainClassDto domainClass : domainClassDto) {
+ try {
+ verifyClass(domainClass);
+ } catch (Error e) {
+ //ignore ... learning.
+ }
+ }
+ }
+
+
+ //
+ // verify ...
+ //
+ // ... ie compare the current metamodel to that previously captured.
+ //
+ @UseReporter(DiffReporter.class)
+ @Test
+ public void _2_verify() throws Exception {
+
+ assumeThat(System.getProperty("lockdown.verify"), is(notNullValue()));
+
+ // when
+ MetamodelDto metamodelDto =
+ metaModelService.exportMetaModel(
+ new MetaModelService.Config()
+ .withIgnoreNoop()
+ .withIgnoreAbstractClasses()
+ .withIgnoreBuiltInValueTypes()
+ .withIgnoreInterfaces()
+ .withPackagePrefix("domainapp")
+ );
+
+ // then
+ final List<DomainClassDto> domainClassDto = metamodelDto.getDomainClassDto();
+ for (final DomainClassDto domainClass : domainClassDto) {
+ verifyClass(domainClass);
+ }
+ }
+
+ private void verifyClass(final DomainClassDto domainClass) {
+ String asXml = jaxbService.toXml(domainClass);
+ verify(new ApprovalTextWriter(asXml, "xml"){
+ @Override public String writeReceivedFile(final String received) throws Exception {
+ return super.writeReceivedFile(received);
+ }
+
+ @Override public String getReceivedFilename(final String base) {
+ return toFilename("received", base);
+ }
+
+ @Override public String getApprovalFilename(final String base) {
+ return toFilename("approved", base);
+ }
+
+ private String toFilename(final String prefix, final String base) {
+ final File file = new File(base);
+ final File parentFile = file.getParentFile();
+ final String localName = file.getName();
+ final File newDir = new File(parentFile, prefix);
+ final File newFile = new File(newDir, localName + ".xml");
+ return newFile.toString();
+ }
+
+ }, new StackTraceNamer() {
+ @Override public String getApprovalName() {
+ return domainClass.getId();
+ }
+ }, getReporter());
+ }
+
+}
\ No newline at end of file
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/mml/approved/domainapp.application.fixture.DomainAppFixtureScriptsSpecificationProvider.xml b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/mml/approved/domainapp.application.fixture.DomainAppFixtureScriptsSpecificationProvider.xml
new file mode 100644
index 0000000..563092d
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/mml/approved/domainapp.application.fixture.DomainAppFixtureScriptsSpecificationProvider.xml
@@ -0,0 +1,48 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<mml:domainClassDto id="domainapp.application.fixture.DomainAppFixtureScriptsSpecificationProvider" service="true" xmlns:mml="http://isis.apache.org/schema/metamodel">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred">
+ <mml:attr name="escaped">true</mml:attr>
+ <mml:attr name="value">Domain App Fixture Scripts Specification Provider</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.audit.AuditableFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainobject.auditing.AuditableFacetFromConfiguration">
+ <mml:attr name="enablement">ENABLED</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.domainservice.DomainServiceFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainservice.annotation.DomainServiceFacetAnnotation">
+ <mml:attr name="natureOfService">DOMAIN</mml:attr>
+ <mml:attr name="repositoryFor">java.lang.Object</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.domainservicelayout.DomainServiceLayoutFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainservicelayout.annotation.DomainServiceLayoutFacetAnnotation">
+ <mml:attr name="menuBar">PRIMARY</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.grid.GridFacet" fqcn="org.apache.isis.core.metamodel.facets.object.grid.GridFacetDefault"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.icon.IconFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainservice.annotation.IconFacetDerivedFromDomainServiceAnnotation">
+ <mml:attr name="repositoryFor">java.lang.Object</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectspecid.classname.ObjectSpecIdFacetDerivedFromClassName">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">domainapp.application.fixture.DomainAppFixtureScriptsSpecificationProvider</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectvalidprops.ObjectValidPropertiesFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectvalidprops.impl.ObjectValidPropertiesFacetImpl">
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.paged.PagedFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.PagedFacetFromConfiguration">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">25</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.plural.PluralFacet" fqcn="org.apache.isis.core.metamodel.facets.object.plural.inferred.PluralFacetInferred">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">Domain App Fixture Scripts Specification Providers</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+</mml:domainClassDto>
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/mml/approved/domainapp.application.fixture.scenarios.DomainAppDemo.xml b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/mml/approved/domainapp.application.fixture.scenarios.DomainAppDemo.xml
new file mode 100644
index 0000000..793a584
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/mml/approved/domainapp.application.fixture.scenarios.DomainAppDemo.xml
@@ -0,0 +1,270 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<mml:domainClassDto id="domainapp.application.fixture.scenarios.DomainAppDemo" xmlns:mml="http://isis.apache.org/schema/metamodel">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.application.fixture.scenarios.DomainAppDemo</mml:attr>
+ <mml:attr name="originalText">Script</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.object.domainobjectlayout.NamedFacetForViewModelLayoutAnnotation</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.audit.AuditableFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainobject.auditing.AuditableFacetFromConfiguration">
+ <mml:attr name="enablement">ENABLED</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainobjectlayout.BookmarkPolicyFacetForViewModelLayoutAnnotation">
+ <mml:attr name="bookmarkPolicy">NOT_SPECIFIED</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.grid.GridFacet" fqcn="org.apache.isis.core.metamodel.facets.object.grid.GridFacetDefault"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectspecid.classname.ObjectSpecIdFacetDerivedFromClassName">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">domainapp.application.fixture.scenarios.DomainAppDemo</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectvalidprops.ObjectValidPropertiesFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectvalidprops.impl.ObjectValidPropertiesFacetImpl">
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.paged.PagedFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.PagedFacetFromConfiguration">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">25</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.plural.PluralFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.PluralFacetTranslated">
+ <mml:attr name="context">domainapp.application.fixture.scenarios.DomainAppDemo</mml:attr>
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="originalText">Script</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.title.TitleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.title.annotation.TitleFacetViaTitleAnnotation">
+ <mml:attr name="components"></mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet" fqcn="org.apache.isis.core.metamodel.facets.object.recreatable.RecreatableObjectFacetForRecreatableObjectInterface">
+ <mml:attr name="recreationMechanism">INITIALIZES</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:properties/>
+ <mml:collections/>
+ <mml:actions>
+ <mml:act id="downloadLayoutXml">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.mixins.layout.Object_downloadLayoutXml.ActionDomainEvent</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">org.apache.isis.applib.mixins.layout.Object_downloadLayoutXml.ActionDomainEvent</mml:attr>
+ <mml:attr name="intent.act">EXECUTE</mml:attr>
+ <mml:attr name="methods">public java.lang.Object org.apache.isis.applib.mixins.layout.Object_downloadLayoutXml.act(java.lang.String,org.apache.isis.applib.services.layout.LayoutService${symbol_dollar}Style)</mml:attr>
+ <mml:attr name="onType">org.apache.isis.applib.mixins.layout.Object_downloadLayoutXml</mml:attr>
+ <mml:attr name="returnType">java.lang.Object</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.NotContributedFacetForActionLayoutAnnotation">
+ <mml:attr name="contributed">AS_ACTION</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromMixinFacet</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.ActionPositionFacetForActionLayoutAnnotation">
+ <mml:attr name="position">PANEL_DROPDOWN</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.prototype.PrototypeFacetForActionAnnotation">
+ <mml:attr name="deploymentType">PRODUCTION</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">SAFE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.application.fixture.scenarios.DomainAppDemo${symbol_pound}downloadLayoutXml()</mml:attr>
+ <mml:attr name="originalText">Download Layout Xml</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.CssClassFaFacetForActionLayoutAnnotation">
+ <mml:attr name="position">LEFT</mml:attr>
+ <mml:attr name="value">fa fa-fw fa-download</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation">
+ <mml:attr name="name">datanucleusIdLong</mml:attr>
+ <mml:attr name="originalName">datanucleusIdLong</mml:attr>
+ <mml:attr name="sequence">700.1</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured">
+ <mml:attr name="promptStyle">INLINE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:returnType>java.lang.Object</mml:returnType>
+ <mml:params>
+ <mml:param xsi:type="mml:scalarParam" id="fileName" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">org.apache.isis.applib.mixins.layout.Object_downloadLayoutXml${symbol_pound}act(java.lang.String,org.apache.isis.applib.services.layout.LayoutService${symbol_dollar}Style)</mml:attr>
+ <mml:attr name="originalText">File name</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.param.layout.NamedFacetForParameterLayoutAnnotation</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet" fqcn="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault">
+ <mml:attr name="inverted">false</mml:attr>
+ <mml:attr name="semantics">REQUIRED</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.param.defaults.ActionParameterDefaultsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.defaults.methodnum.ActionParameterDefaultsFacetViaMethod">
+ <mml:attr name="intent.default0Act">DEFAULTS</mml:attr>
+ <mml:attr name="methods">public java.lang.String org.apache.isis.applib.mixins.layout.Object_downloadLayoutXml.default0Act()</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:type>java.lang.String</mml:type>
+ </mml:param>
+ <mml:param xsi:type="mml:scalarParam" id="style" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet" fqcn="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault">
+ <mml:attr name="inverted">false</mml:attr>
+ <mml:attr name="semantics">REQUIRED</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.param.defaults.ActionParameterDefaultsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.defaults.methodnum.ActionParameterDefaultsFacetViaMethod">
+ <mml:attr name="intent.default1Act">DEFAULTS</mml:attr>
+ <mml:attr name="methods">public org.apache.isis.applib.services.layout.LayoutService${symbol_dollar}Style org.apache.isis.applib.mixins.layout.Object_downloadLayoutXml.default1Act()</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:type>org.apache.isis.applib.services.layout.LayoutService${symbol_dollar}Style</mml:type>
+ </mml:param>
+ </mml:params>
+ </mml:act>
+ <mml:act id="openRestApi">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.mixins.layout.Object_openRestApi.ActionDomainEvent</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">org.apache.isis.applib.mixins.layout.Object_openRestApi.ActionDomainEvent</mml:attr>
+ <mml:attr name="intent.act">EXECUTE</mml:attr>
+ <mml:attr name="methods">public org.apache.isis.applib.value.LocalResourcePath org.apache.isis.applib.mixins.layout.Object_openRestApi.act()</mml:attr>
+ <mml:attr name="onType">org.apache.isis.applib.mixins.layout.Object_openRestApi</mml:attr>
+ <mml:attr name="returnType">org.apache.isis.applib.value.LocalResourcePath</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.NotContributedFacetForActionLayoutAnnotation">
+ <mml:attr name="contributed">AS_ACTION</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromMixinFacet</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.ActionPositionFacetForActionLayoutAnnotation">
+ <mml:attr name="position">PANEL_DROPDOWN</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.prototype.PrototypeFacetForActionAnnotation">
+ <mml:attr name="deploymentType">PRODUCTION</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">SAFE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.application.fixture.scenarios.DomainAppDemo${symbol_pound}openRestApi()</mml:attr>
+ <mml:attr name="originalText">Open Rest Api</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.CssClassFaFacetForActionLayoutAnnotation">
+ <mml:attr name="position">LEFT</mml:attr>
+ <mml:attr name="value">fa fa-fw fa-external-link</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation">
+ <mml:attr name="name">datanucleusIdLong</mml:attr>
+ <mml:attr name="originalName">datanucleusIdLong</mml:attr>
+ <mml:attr name="sequence">750.1</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured">
+ <mml:attr name="promptStyle">INLINE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:returnType>org.apache.isis.applib.value.LocalResourcePath</mml:returnType>
+ <mml:params/>
+ </mml:act>
+ <mml:act id="rebuildMetamodel">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.mixins.layout.Object_rebuildMetamodel.ActionDomainEvent</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">org.apache.isis.applib.mixins.layout.Object_rebuildMetamodel.ActionDomainEvent</mml:attr>
+ <mml:attr name="intent.act">EXECUTE</mml:attr>
+ <mml:attr name="methods">public void org.apache.isis.applib.mixins.layout.Object_rebuildMetamodel.act()</mml:attr>
+ <mml:attr name="onType">org.apache.isis.applib.mixins.layout.Object_rebuildMetamodel</mml:attr>
+ <mml:attr name="returnType">void</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.NotContributedFacetForActionLayoutAnnotation">
+ <mml:attr name="contributed">AS_ACTION</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromMixinFacet</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.ActionPositionFacetForActionLayoutAnnotation">
+ <mml:attr name="position">PANEL_DROPDOWN</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.prototype.PrototypeFacetForActionAnnotation">
+ <mml:attr name="deploymentType">PRODUCTION</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">IDEMPOTENT</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.application.fixture.scenarios.DomainAppDemo${symbol_pound}rebuildMetamodel()</mml:attr>
+ <mml:attr name="originalText">Rebuild Metamodel</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.CssClassFaFacetForActionLayoutAnnotation">
+ <mml:attr name="position">LEFT</mml:attr>
+ <mml:attr name="value">fa fa-fw fa-refresh</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation">
+ <mml:attr name="name">datanucleusIdLong</mml:attr>
+ <mml:attr name="originalName">datanucleusIdLong</mml:attr>
+ <mml:attr name="sequence">800.1</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured">
+ <mml:attr name="promptStyle">INLINE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:returnType>void</mml:returnType>
+ <mml:params/>
+ </mml:act>
+ </mml:actions>
+</mml:domainClassDto>
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/mml/approved/domainapp.application.services.health.HealthCheckServiceImpl.xml b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/mml/approved/domainapp.application.services.health.HealthCheckServiceImpl.xml
new file mode 100644
index 0000000..f83e039
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/mml/approved/domainapp.application.services.health.HealthCheckServiceImpl.xml
@@ -0,0 +1,48 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<mml:domainClassDto id="domainapp.application.services.health.HealthCheckServiceImpl" service="true" xmlns:mml="http://isis.apache.org/schema/metamodel">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred">
+ <mml:attr name="escaped">true</mml:attr>
+ <mml:attr name="value">Health Check Service Impl</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.audit.AuditableFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainobject.auditing.AuditableFacetFromConfiguration">
+ <mml:attr name="enablement">ENABLED</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.domainservice.DomainServiceFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainservice.annotation.DomainServiceFacetAnnotation">
+ <mml:attr name="natureOfService">DOMAIN</mml:attr>
+ <mml:attr name="repositoryFor">java.lang.Object</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.domainservicelayout.DomainServiceLayoutFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainservicelayout.annotation.DomainServiceLayoutFacetAnnotation">
+ <mml:attr name="menuBar">PRIMARY</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.grid.GridFacet" fqcn="org.apache.isis.core.metamodel.facets.object.grid.GridFacetDefault"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.icon.IconFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainservice.annotation.IconFacetDerivedFromDomainServiceAnnotation">
+ <mml:attr name="repositoryFor">java.lang.Object</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectspecid.classname.ObjectSpecIdFacetDerivedFromClassName">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">domainapp.application.services.health.HealthCheckServiceImpl</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectvalidprops.ObjectValidPropertiesFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectvalidprops.impl.ObjectValidPropertiesFacetImpl">
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.paged.PagedFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.PagedFacetFromConfiguration">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">25</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.plural.PluralFacet" fqcn="org.apache.isis.core.metamodel.facets.object.plural.inferred.PluralFacetInferred">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">Health Check Service Impls</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+</mml:domainClassDto>
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/mml/approved/domainapp.application.services.homepage.HomePageService.xml b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/mml/approved/domainapp.application.services.homepage.HomePageService.xml
new file mode 100644
index 0000000..ac08c6a
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/mml/approved/domainapp.application.services.homepage.HomePageService.xml
@@ -0,0 +1,47 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<mml:domainClassDto id="domainapp.application.services.homepage.HomePageService" service="true" xmlns:mml="http://isis.apache.org/schema/metamodel">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred">
+ <mml:attr name="escaped">true</mml:attr>
+ <mml:attr name="value">Home Page Service</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.audit.AuditableFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainobject.auditing.AuditableFacetFromConfiguration">
+ <mml:attr name="enablement">ENABLED</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.domainservice.DomainServiceFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainservice.annotation.DomainServiceFacetAnnotation">
+ <mml:attr name="natureOfService">DOMAIN</mml:attr>
+ <mml:attr name="repositoryFor">java.lang.Object</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.domainservicelayout.DomainServiceLayoutFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainservicelayout.annotation.DomainServiceLayoutFacetAnnotation">
+ <mml:attr name="menuBar">PRIMARY</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.grid.GridFacet" fqcn="org.apache.isis.core.metamodel.facets.object.grid.GridFacetDefault"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.icon.IconFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainservice.annotation.IconFacetDerivedFromDomainServiceAnnotation">
+ <mml:attr name="repositoryFor">java.lang.Object</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectspecid.classname.ObjectSpecIdFacetDerivedFromDomainServiceAnnotationElseGetId">
+ <mml:attr name="value">homepage.HomePageService</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectvalidprops.ObjectValidPropertiesFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectvalidprops.impl.ObjectValidPropertiesFacetImpl">
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.paged.PagedFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.PagedFacetFromConfiguration">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">25</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.plural.PluralFacet" fqcn="org.apache.isis.core.metamodel.facets.object.plural.inferred.PluralFacetInferred">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">Home Page Services</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+</mml:domainClassDto>
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/mml/approved/domainapp.application.services.homepage.HomePageViewModel.xml b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/mml/approved/domainapp.application.services.homepage.HomePageViewModel.xml
new file mode 100644
index 0000000..7215193
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/mml/approved/domainapp.application.services.homepage.HomePageViewModel.xml
@@ -0,0 +1,352 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<mml:domainClassDto id="domainapp.application.services.homepage.HomePageViewModel" xmlns:mml="http://isis.apache.org/schema/metamodel">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred">
+ <mml:attr name="escaped">true</mml:attr>
+ <mml:attr name="value">Home Page View Model</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.audit.AuditableFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainobject.auditing.AuditableFacetFromConfiguration">
+ <mml:attr name="enablement">ENABLED</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.callbacks.CreatedLifecycleEventFacet" fqcn="org.apache.isis.core.metamodel.facets.object.callbacks.CreatedLifecycleEventFacetForDomainObjectAnnotation">
+ <mml:attr name="value">org.apache.isis.applib.events.lifecycle.ObjectCreatedEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.callbacks.LoadedLifecycleEventFacet" fqcn="org.apache.isis.core.metamodel.facets.object.callbacks.LoadedLifecycleEventFacetForDomainObjectAnnotation">
+ <mml:attr name="value">org.apache.isis.applib.events.lifecycle.ObjectLoadedEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.callbacks.PersistedLifecycleEventFacet" fqcn="org.apache.isis.core.metamodel.facets.object.callbacks.PersistedLifecycleEventFacetForDomainObjectAnnotation">
+ <mml:attr name="value">org.apache.isis.applib.events.lifecycle.ObjectPersistedEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.callbacks.PersistingLifecycleEventFacet" fqcn="org.apache.isis.core.metamodel.facets.object.callbacks.PersistingLifecycleEventFacetForDomainObjectAnnotation">
+ <mml:attr name="value">org.apache.isis.applib.events.lifecycle.ObjectPersistingEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.callbacks.RemovingLifecycleEventFacet" fqcn="org.apache.isis.core.metamodel.facets.object.callbacks.RemovingLifecycleEventFacetForDomainObjectAnnotation">
+ <mml:attr name="value">org.apache.isis.applib.events.lifecycle.ObjectRemovingEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.callbacks.UpdatedLifecycleEventFacet" fqcn="org.apache.isis.core.metamodel.facets.object.callbacks.UpdatedLifecycleEventFacetForDomainObjectAnnotation">
+ <mml:attr name="value">org.apache.isis.applib.events.lifecycle.ObjectUpdatedEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.callbacks.UpdatingLifecycleEventFacet" fqcn="org.apache.isis.core.metamodel.facets.object.callbacks.UpdatingLifecycleEventFacetForDomainObjectAnnotation">
+ <mml:attr name="value">org.apache.isis.applib.events.lifecycle.ObjectUpdatingEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.grid.GridFacet" fqcn="org.apache.isis.core.metamodel.facets.object.grid.GridFacetDefault"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainobject.objectspecid.ObjectSpecIdFacetForDomainObjectAnnotation">
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.object.objectspecid.classname.ObjectSpecIdFacetDerivedFromClassName</mml:attr>
+ <mml:attr name="value">domainapp.application.services.homepage.HomePageViewModel</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectvalidprops.ObjectValidPropertiesFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectvalidprops.impl.ObjectValidPropertiesFacetImpl">
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.paged.PagedFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.PagedFacetFromConfiguration">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">25</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.plural.PluralFacet" fqcn="org.apache.isis.core.metamodel.facets.object.plural.inferred.PluralFacetInferred">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">Home Page View Models</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.title.TitleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.title.methods.TitleFacetViaTitleMethod">
+ <mml:attr name="intent.title">UI_HINT</mml:attr>
+ <mml:attr name="methods">public org.apache.isis.applib.services.i18n.TranslatableString domainapp.application.services.homepage.HomePageViewModel.title()</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainobject.recreatable.RecreatableObjectFacetForDomainObjectAnnotation">
+ <mml:attr name="recreationMechanism">INITIALIZES</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:properties/>
+ <mml:collections>
+ <mml:coll id="objects">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet" fqcn="org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetInferredFromGenerics">
+ <mml:attr name="value">domainapp.modules.simple.dom.impl.SimpleObject</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.application.services.homepage.HomePageViewModel${symbol_pound}objects</mml:attr>
+ <mml:attr name="originalText">Objects</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.fallback.NamedFacetDefault</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.modify.CollectionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.collection.modify.CollectionDomainEventFacetDefault">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.collections.collection.modify.CollectionDomainEventFacetDefault</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.events.domain.CollectionDomainEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.modify.CollectionAddToFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.collection.modify.CollectionAddToFacetForDomainEventFromDefault">
+ <mml:attr name="collectionAddToFacet">org.apache.isis.core.metamodel.facets.collections.modify.CollectionAddToFacetViaAccessor</mml:attr>
+ <mml:attr name="getterFacet">org.apache.isis.core.metamodel.facets.collections.accessor.CollectionAccessorFacetViaAccessor</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.collections.modify.CollectionAddToFacetViaAccessor</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.events.domain.CollectionDomainEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.modify.CollectionClearFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.clear.CollectionClearFacetViaAccessor">
+ <mml:attr name="intent.getObjects">ACCESSOR</mml:attr>
+ <mml:attr name="methods">public java.util.List<domainapp.modules.simple.dom.impl.SimpleObject> domainapp.application.services.homepage.HomePageViewModel.getObjects()</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.modify.CollectionRemoveFromFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.collection.modify.CollectionRemoveFromFacetForDomainEventFromDefault">
+ <mml:attr name="collectionRemoveFromFacet">org.apache.isis.core.metamodel.facets.collections.modify.CollectionRemoveFromFacetViaAccessor</mml:attr>
+ <mml:attr name="getterFacet">org.apache.isis.core.metamodel.facets.collections.accessor.CollectionAccessorFacetViaAccessor</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.collections.modify.CollectionRemoveFromFacetViaAccessor</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.events.domain.CollectionDomainEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collparam.semantics.CollectionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.collparam.semantics.CollectionSemanticsFacetDefault">
+ <mml:attr name="value">LIST_INTERFACE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.paged.PagedFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.PagedFacetFromConfiguration">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">12</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.recreatable.DisabledFacetOnCollectionDerivedFromRecreatableObject" fqcn="org.apache.isis.core.metamodel.facets.object.recreatable.DisabledFacetOnCollectionDerivedFromRecreatableObject">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="inverted">false</mml:attr>
+ <mml:attr name="semantics">DISABLED</mml:attr>
+ <mml:attr name="where">ANYWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.accessor.CollectionAccessorFacetViaAccessor">
+ <mml:attr name="intent.getObjects">ACCESSOR</mml:attr>
+ <mml:attr name="methods">public java.util.List<domainapp.modules.simple.dom.impl.SimpleObject> domainapp.application.services.homepage.HomePageViewModel.getObjects()</mml:attr>
+ <mml:attr name="onType">domainapp.application.services.homepage.HomePageViewModel</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:type>domainapp.modules.simple.dom.impl.SimpleObject</mml:type>
+ </mml:coll>
+ </mml:collections>
+ <mml:actions>
+ <mml:act id="downloadLayoutXml">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.mixins.layout.Object_downloadLayoutXml.ActionDomainEvent</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">org.apache.isis.applib.mixins.layout.Object_downloadLayoutXml.ActionDomainEvent</mml:attr>
+ <mml:attr name="intent.act">EXECUTE</mml:attr>
+ <mml:attr name="methods">public java.lang.Object org.apache.isis.applib.mixins.layout.Object_downloadLayoutXml.act(java.lang.String,org.apache.isis.applib.services.layout.LayoutService${symbol_dollar}Style)</mml:attr>
+ <mml:attr name="onType">org.apache.isis.applib.mixins.layout.Object_downloadLayoutXml</mml:attr>
+ <mml:attr name="returnType">java.lang.Object</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.NotContributedFacetForActionLayoutAnnotation">
+ <mml:attr name="contributed">AS_ACTION</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromMixinFacet</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.ActionPositionFacetForActionLayoutAnnotation">
+ <mml:attr name="position">PANEL_DROPDOWN</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.prototype.PrototypeFacetForActionAnnotation">
+ <mml:attr name="deploymentType">PRODUCTION</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">SAFE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.application.services.homepage.HomePageViewModel${symbol_pound}downloadLayoutXml()</mml:attr>
+ <mml:attr name="originalText">Download Layout Xml</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.CssClassFaFacetForActionLayoutAnnotation">
+ <mml:attr name="position">LEFT</mml:attr>
+ <mml:attr name="value">fa fa-fw fa-download</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation">
+ <mml:attr name="name">datanucleusIdLong</mml:attr>
+ <mml:attr name="originalName">datanucleusIdLong</mml:attr>
+ <mml:attr name="sequence">700.1</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured">
+ <mml:attr name="promptStyle">INLINE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:returnType>java.lang.Object</mml:returnType>
+ <mml:params>
+ <mml:param xsi:type="mml:scalarParam" id="fileName" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">org.apache.isis.applib.mixins.layout.Object_downloadLayoutXml${symbol_pound}act(java.lang.String,org.apache.isis.applib.services.layout.LayoutService${symbol_dollar}Style)</mml:attr>
+ <mml:attr name="originalText">File name</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.param.layout.NamedFacetForParameterLayoutAnnotation</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet" fqcn="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault">
+ <mml:attr name="inverted">false</mml:attr>
+ <mml:attr name="semantics">REQUIRED</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.param.defaults.ActionParameterDefaultsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.defaults.methodnum.ActionParameterDefaultsFacetViaMethod">
+ <mml:attr name="intent.default0Act">DEFAULTS</mml:attr>
+ <mml:attr name="methods">public java.lang.String org.apache.isis.applib.mixins.layout.Object_downloadLayoutXml.default0Act()</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:type>java.lang.String</mml:type>
+ </mml:param>
+ <mml:param xsi:type="mml:scalarParam" id="style" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet" fqcn="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault">
+ <mml:attr name="inverted">false</mml:attr>
+ <mml:attr name="semantics">REQUIRED</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.param.defaults.ActionParameterDefaultsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.defaults.methodnum.ActionParameterDefaultsFacetViaMethod">
+ <mml:attr name="intent.default1Act">DEFAULTS</mml:attr>
+ <mml:attr name="methods">public org.apache.isis.applib.services.layout.LayoutService${symbol_dollar}Style org.apache.isis.applib.mixins.layout.Object_downloadLayoutXml.default1Act()</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:type>org.apache.isis.applib.services.layout.LayoutService${symbol_dollar}Style</mml:type>
+ </mml:param>
+ </mml:params>
+ </mml:act>
+ <mml:act id="openRestApi">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.mixins.layout.Object_openRestApi.ActionDomainEvent</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">org.apache.isis.applib.mixins.layout.Object_openRestApi.ActionDomainEvent</mml:attr>
+ <mml:attr name="intent.act">EXECUTE</mml:attr>
+ <mml:attr name="methods">public org.apache.isis.applib.value.LocalResourcePath org.apache.isis.applib.mixins.layout.Object_openRestApi.act()</mml:attr>
+ <mml:attr name="onType">org.apache.isis.applib.mixins.layout.Object_openRestApi</mml:attr>
+ <mml:attr name="returnType">org.apache.isis.applib.value.LocalResourcePath</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.NotContributedFacetForActionLayoutAnnotation">
+ <mml:attr name="contributed">AS_ACTION</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromMixinFacet</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.ActionPositionFacetForActionLayoutAnnotation">
+ <mml:attr name="position">PANEL_DROPDOWN</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.prototype.PrototypeFacetForActionAnnotation">
+ <mml:attr name="deploymentType">PRODUCTION</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">SAFE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.application.services.homepage.HomePageViewModel${symbol_pound}openRestApi()</mml:attr>
+ <mml:attr name="originalText">Open Rest Api</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.CssClassFaFacetForActionLayoutAnnotation">
+ <mml:attr name="position">LEFT</mml:attr>
+ <mml:attr name="value">fa fa-fw fa-external-link</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation">
+ <mml:attr name="name">datanucleusIdLong</mml:attr>
+ <mml:attr name="originalName">datanucleusIdLong</mml:attr>
+ <mml:attr name="sequence">750.1</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured">
+ <mml:attr name="promptStyle">INLINE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:returnType>org.apache.isis.applib.value.LocalResourcePath</mml:returnType>
+ <mml:params/>
+ </mml:act>
+ <mml:act id="rebuildMetamodel">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.mixins.layout.Object_rebuildMetamodel.ActionDomainEvent</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">org.apache.isis.applib.mixins.layout.Object_rebuildMetamodel.ActionDomainEvent</mml:attr>
+ <mml:attr name="intent.act">EXECUTE</mml:attr>
+ <mml:attr name="methods">public void org.apache.isis.applib.mixins.layout.Object_rebuildMetamodel.act()</mml:attr>
+ <mml:attr name="onType">org.apache.isis.applib.mixins.layout.Object_rebuildMetamodel</mml:attr>
+ <mml:attr name="returnType">void</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.NotContributedFacetForActionLayoutAnnotation">
+ <mml:attr name="contributed">AS_ACTION</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromMixinFacet</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.ActionPositionFacetForActionLayoutAnnotation">
+ <mml:attr name="position">PANEL_DROPDOWN</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.prototype.PrototypeFacetForActionAnnotation">
+ <mml:attr name="deploymentType">PRODUCTION</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">IDEMPOTENT</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.application.services.homepage.HomePageViewModel${symbol_pound}rebuildMetamodel()</mml:attr>
+ <mml:attr name="originalText">Rebuild Metamodel</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.CssClassFaFacetForActionLayoutAnnotation">
+ <mml:attr name="position">LEFT</mml:attr>
+ <mml:attr name="value">fa fa-fw fa-refresh</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation">
+ <mml:attr name="name">datanucleusIdLong</mml:attr>
+ <mml:attr name="originalName">datanucleusIdLong</mml:attr>
+ <mml:attr name="sequence">800.1</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured">
+ <mml:attr name="promptStyle">INLINE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:returnType>void</mml:returnType>
+ <mml:params/>
+ </mml:act>
+ </mml:actions>
+</mml:domainClassDto>
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/mml/approved/domainapp.modules.simple.dom.impl.SimpleObject.xml b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/mml/approved/domainapp.modules.simple.dom.impl.SimpleObject.xml
new file mode 100644
index 0000000..4a2b5d7
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/mml/approved/domainapp.modules.simple.dom.impl.SimpleObject.xml
@@ -0,0 +1,878 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<mml:domainClassDto id="domainapp.modules.simple.dom.impl.SimpleObject" xmlns:mml="http://isis.apache.org/schema/metamodel">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred">
+ <mml:attr name="escaped">true</mml:attr>
+ <mml:attr name="value">Simple Object</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainobjectlayout.CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent">
+ <mml:attr name="cssClassUiEventClass">org.apache.isis.applib.events.ui.CssClassUiEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.audit.AuditableFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainobject.auditing.AuditableFacetForDomainObjectAnnotation">
+ <mml:attr name="enablement">ENABLED</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainobjectlayout.BookmarkPolicyFacetForDomainObjectLayoutAnnotation">
+ <mml:attr name="bookmarkPolicy">NOT_SPECIFIED</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.callbacks.CreatedLifecycleEventFacet" fqcn="org.apache.isis.core.metamodel.facets.object.callbacks.CreatedLifecycleEventFacetForDomainObjectAnnotation">
+ <mml:attr name="value">org.apache.isis.applib.events.lifecycle.ObjectCreatedEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.callbacks.LoadedLifecycleEventFacet" fqcn="org.apache.isis.core.metamodel.facets.object.callbacks.LoadedLifecycleEventFacetForDomainObjectAnnotation">
+ <mml:attr name="value">org.apache.isis.applib.events.lifecycle.ObjectLoadedEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.callbacks.PersistedLifecycleEventFacet" fqcn="org.apache.isis.core.metamodel.facets.object.callbacks.PersistedLifecycleEventFacetForDomainObjectAnnotation">
+ <mml:attr name="value">org.apache.isis.applib.events.lifecycle.ObjectPersistedEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.callbacks.PersistingLifecycleEventFacet" fqcn="org.apache.isis.core.metamodel.facets.object.callbacks.PersistingLifecycleEventFacetForDomainObjectAnnotation">
+ <mml:attr name="value">org.apache.isis.applib.events.lifecycle.ObjectPersistingEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.callbacks.RemovingLifecycleEventFacet" fqcn="org.apache.isis.core.metamodel.facets.object.callbacks.RemovingLifecycleEventFacetForDomainObjectAnnotation">
+ <mml:attr name="value">org.apache.isis.applib.events.lifecycle.ObjectRemovingEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.callbacks.UpdatedLifecycleEventFacet" fqcn="org.apache.isis.core.metamodel.facets.object.callbacks.UpdatedLifecycleEventFacetForDomainObjectAnnotation">
+ <mml:attr name="value">org.apache.isis.applib.events.lifecycle.ObjectUpdatedEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.callbacks.UpdatingLifecycleEventFacet" fqcn="org.apache.isis.core.metamodel.facets.object.callbacks.UpdatingLifecycleEventFacetForDomainObjectAnnotation">
+ <mml:attr name="value">org.apache.isis.applib.events.lifecycle.ObjectUpdatingEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.grid.GridFacet" fqcn="org.apache.isis.core.metamodel.facets.object.grid.GridFacetDefault"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.icon.IconFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainobjectlayout.IconFacetViaDomainObjectLayoutAnnotationUsingIconUiEvent">
+ <mml:attr name="iconUiEventClass">org.apache.isis.applib.events.ui.IconUiEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainobject.objectspecid.ObjectSpecIdFacetForJdoPersistenceCapableAnnotation">
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.object.objectspecid.classname.ObjectSpecIdFacetDerivedFromClassName</mml:attr>
+ <mml:attr name="value">simple.SimpleObject</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectvalidprops.ObjectValidPropertiesFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectvalidprops.impl.ObjectValidPropertiesFacetImpl">
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.paged.PagedFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.PagedFacetFromConfiguration">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">25</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.plural.PluralFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainobjectlayout.PluralFacetForDomainObjectLayoutAnnotation"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.title.TitleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainobjectlayout.TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent">
+ <mml:attr name="titleUiEventClass">org.apache.isis.applib.events.ui.TitleUiEvent.Default</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.object.title.methods.TitleFacetViaTitleMethod</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.objectstore.jdo.metamodel.facets.object.datastoreidentity.JdoDatastoreIdentityFacet" fqcn="org.apache.isis.objectstore.jdo.metamodel.facets.object.datastoreidentity.JdoDatastoreIdentityFacetAnnotation">
+ <mml:attr name="strategy">IDENTITY</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.objectstore.jdo.metamodel.facets.object.persistencecapable.JdoPersistenceCapableFacet" fqcn="org.apache.isis.objectstore.jdo.metamodel.facets.object.persistencecapable.JdoPersistenceCapableFacetAnnotation">
+ <mml:attr name="identityType">DATASTORE</mml:attr>
+ <mml:attr name="schema">simple</mml:attr>
+ <mml:attr name="table">SimpleObject</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.objectstore.jdo.metamodel.facets.object.version.JdoVersionFacet" fqcn="org.apache.isis.objectstore.jdo.metamodel.facets.object.version.JdoVersionFacetFromAnnotation"/>
+ </mml:facets>
+ <mml:properties>
+ <mml:prop id="datanucleusIdLong">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusIdLong.ActionDomainEvent</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusIdLong.ActionDomainEvent</mml:attr>
+ <mml:attr name="intent.prop">EXECUTE</mml:attr>
+ <mml:attr name="methods">public java.lang.Long org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusIdLong.prop()</mml:attr>
+ <mml:attr name="onType">org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusIdLong</mml:attr>
+ <mml:attr name="returnType">java.lang.Long</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.NotContributedFacetForActionLayoutAnnotation">
+ <mml:attr name="contributed">AS_ASSOCIATION</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromMixinFacet</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacetFallback">
+ <mml:attr name="position">BELOW</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">SAFE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObject${symbol_pound}datanucleusIdLong()</mml:attr>
+ <mml:attr name="originalText">Id</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet" fqcn="org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacetForContributee">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="inverted">false</mml:attr>
+ <mml:attr name="reason">Contributed property</mml:attr>
+ <mml:attr name="semantics">DISABLED</mml:attr>
+ <mml:attr name="where">ANYWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.hidden.method.HideForContextFacet" fqcn="org.apache.isis.core.metamodel.facets.members.hidden.method.HideForContextFacetViaMethod">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="intent.hideProp">CHECK_IF_HIDDEN</mml:attr>
+ <mml:attr name="methods">public boolean org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusIdLong.hideProp()</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation">
+ <mml:attr name="name">Metadata</mml:attr>
+ <mml:attr name="originalName">Metadata</mml:attr>
+ <mml:attr name="sequence">800.1</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured">
+ <mml:attr name="promptStyle">INLINE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.propertylayout.HiddenFacetForPropertyLayoutAnnotation" fqcn="org.apache.isis.core.metamodel.facets.properties.propertylayout.HiddenFacetForPropertyLayoutAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="where">ALL_TABLES</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:type>java.lang.Long</mml:type>
+ </mml:prop>
+ <mml:prop id="datanucleusVersionLong">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusVersionLong.ActionDomainEvent</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusVersionLong.ActionDomainEvent</mml:attr>
+ <mml:attr name="intent.prop">EXECUTE</mml:attr>
+ <mml:attr name="methods">public java.lang.Long org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusVersionLong.prop()</mml:attr>
+ <mml:attr name="onType">org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusVersionLong</mml:attr>
+ <mml:attr name="returnType">java.lang.Long</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.NotContributedFacetForActionLayoutAnnotation">
+ <mml:attr name="contributed">AS_ASSOCIATION</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromMixinFacet</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacetFallback">
+ <mml:attr name="position">BELOW</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">SAFE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObject${symbol_pound}datanucleusVersionLong()</mml:attr>
+ <mml:attr name="originalText">Version</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet" fqcn="org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacetForContributee">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="inverted">false</mml:attr>
+ <mml:attr name="reason">Contributed property</mml:attr>
+ <mml:attr name="semantics">DISABLED</mml:attr>
+ <mml:attr name="where">ANYWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.hidden.method.HideForContextFacet" fqcn="org.apache.isis.core.metamodel.facets.members.hidden.method.HideForContextFacetViaMethod">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="intent.hideProp">CHECK_IF_HIDDEN</mml:attr>
+ <mml:attr name="methods">public boolean org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusVersionLong.hideProp()</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation">
+ <mml:attr name="name">Metadata</mml:attr>
+ <mml:attr name="originalName">Metadata</mml:attr>
+ <mml:attr name="sequence">800.2</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured">
+ <mml:attr name="promptStyle">INLINE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.propertylayout.HiddenFacetForPropertyLayoutAnnotation" fqcn="org.apache.isis.core.metamodel.facets.properties.propertylayout.HiddenFacetForPropertyLayoutAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="where">ALL_TABLES</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:type>java.lang.Long</mml:type>
+ </mml:prop>
+ <mml:prop id="datanucleusVersionTimestamp">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusVersionTimestamp.ActionDomainEvent</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusVersionTimestamp.ActionDomainEvent</mml:attr>
+ <mml:attr name="intent.prop">EXECUTE</mml:attr>
+ <mml:attr name="methods">public java.sql.Timestamp org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusVersionTimestamp.prop()</mml:attr>
+ <mml:attr name="onType">org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusVersionTimestamp</mml:attr>
+ <mml:attr name="returnType">java.sql.Timestamp</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.NotContributedFacetForActionLayoutAnnotation">
+ <mml:attr name="contributed">AS_ASSOCIATION</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromMixinFacet</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacetFallback">
+ <mml:attr name="position">BELOW</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">SAFE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObject${symbol_pound}datanucleusVersionTimestamp()</mml:attr>
+ <mml:attr name="originalText">Version</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet" fqcn="org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacetForContributee">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="inverted">false</mml:attr>
+ <mml:attr name="reason">Contributed property</mml:attr>
+ <mml:attr name="semantics">DISABLED</mml:attr>
+ <mml:attr name="where">ANYWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.hidden.method.HideForContextFacet" fqcn="org.apache.isis.core.metamodel.facets.members.hidden.method.HideForContextFacetViaMethod">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="intent.hideProp">CHECK_IF_HIDDEN</mml:attr>
+ <mml:attr name="methods">public boolean org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusVersionTimestamp.hideProp()</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation">
+ <mml:attr name="name">Metadata</mml:attr>
+ <mml:attr name="originalName">Metadata</mml:attr>
+ <mml:attr name="sequence">800.2</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured">
+ <mml:attr name="promptStyle">INLINE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.propertylayout.HiddenFacetForPropertyLayoutAnnotation" fqcn="org.apache.isis.core.metamodel.facets.properties.propertylayout.HiddenFacetForPropertyLayoutAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="where">ALL_TABLES</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:type>java.sql.Timestamp</mml:type>
+ </mml:prop>
+ <mml:prop id="name">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObject${symbol_pound}name</mml:attr>
+ <mml:attr name="originalText">Name</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.fallback.NamedFacetDefault</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.property.disabled.DisabledFacetForPropertyAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="inverted">false</mml:attr>
+ <mml:attr name="semantics">DISABLED</mml:attr>
+ <mml:attr name="where">EVERYWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured">
+ <mml:attr name="promptStyle">INLINE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet" fqcn="org.apache.isis.objectstore.jdo.metamodel.facets.prop.column.MandatoryFacetDerivedFromJdoColumn">
+ <mml:attr name="inverted">false</mml:attr>
+ <mml:attr name="semantics">REQUIRED</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxLengthFacet" fqcn="org.apache.isis.objectstore.jdo.metamodel.facets.prop.column.MaxLengthFacetDerivedFromJdoColumn">
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.properties.property.maxlength.MaxLengthFacetForPropertyAnnotation</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">40</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.mustsatisfyspec.MustSatisfySpecificationFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.property.mustsatisfy.MustSatisfySpecificationFacetForPropertyAnnotation">
+ <mml:attr name="specifications">domainapp.modules.simple.dom.types.Name${symbol_dollar}NoExclamationMarks</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.typicallen.fromtype.TypicalLengthFacetOnPropertyDerivedFromType">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="typicalLengthFacet">org.apache.isis.core.metamodel.facets.object.value.TypicalLengthFacetUsingParser</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.accessor.PropertyAccessorFacetViaAccessor">
+ <mml:attr name="intent.getName">ACCESSOR</mml:attr>
+ <mml:attr name="methods">public java.lang.String domainapp.modules.simple.dom.impl.SimpleObject.getName()</mml:attr>
+ <mml:attr name="onType">domainapp.modules.simple.dom.impl.SimpleObject</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.defaults.fromtype.PropertyDefaultFacetDerivedFromDefaultedFacet">
+ <mml:attr name="typeFacet">org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacetUsingDefaultsProvider</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.property.modify.PropertyDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.property.modify.PropertyDomainEventFacetDefault">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="getterFacet">org.apache.isis.core.metamodel.facets.properties.accessor.PropertyAccessorFacetViaAccessor</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.events.domain.PropertyDomainEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.update.clear.PropertyClearFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.property.modify.PropertyClearFacetForDomainEventFromDefault">
+ <mml:attr name="clearFacet">org.apache.isis.core.metamodel.facets.properties.update.clear.PropertyClearFacetViaSetterMethod</mml:attr>
+ <mml:attr name="getterFacet">org.apache.isis.core.metamodel.facets.properties.accessor.PropertyAccessorFacetViaAccessor</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.properties.update.clear.PropertyClearFacetViaSetterMethod</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.events.domain.PropertyDomainEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.update.init.PropertyInitializationFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.update.init.PropertyInitializationFacetViaSetterMethod">
+ <mml:attr name="intent.setName">MODIFY_PROPERTY</mml:attr>
+ <mml:attr name="methods">public void domainapp.modules.simple.dom.impl.SimpleObject.setName(java.lang.String)</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.property.modify.PropertySetterFacetForDomainEventFromDefault">
+ <mml:attr name="getterFacet">org.apache.isis.core.metamodel.facets.properties.accessor.PropertyAccessorFacetViaAccessor</mml:attr>
+ <mml:attr name="setterFacet">org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacetViaSetterMethod</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacetViaSetterMethod</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.events.domain.PropertyDomainEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.validating.PropertyValidateFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.validating.dflt.PropertyValidateFacetDefault">
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:type>java.lang.String</mml:type>
+ </mml:prop>
+ <mml:prop id="notes">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObject${symbol_pound}notes</mml:attr>
+ <mml:attr name="originalText">Notes</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.fallback.NamedFacetDefault</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.property.disabled.DisabledFacetForPropertyAnnotationInvertedSemantics">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="inverted">true</mml:attr>
+ <mml:attr name="semantics">ENABLED</mml:attr>
+ <mml:attr name="where">EVERYWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured">
+ <mml:attr name="promptStyle">INLINE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet" fqcn="org.apache.isis.objectstore.jdo.metamodel.facets.prop.column.MandatoryFacetDerivedFromJdoColumn">
+ <mml:attr name="inverted">true</mml:attr>
+ <mml:attr name="semantics">OPTIONAL</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxLengthFacet" fqcn="org.apache.isis.objectstore.jdo.metamodel.facets.prop.column.MaxLengthFacetDerivedFromJdoColumn">
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.properties.property.maxlength.MaxLengthFacetForPropertyAnnotation</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">4000</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.typicallen.fromtype.TypicalLengthFacetOnPropertyDerivedFromType">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="typicalLengthFacet">org.apache.isis.core.metamodel.facets.object.value.TypicalLengthFacetUsingParser</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.accessor.PropertyAccessorFacetViaAccessor">
+ <mml:attr name="intent.getNotes">ACCESSOR</mml:attr>
+ <mml:attr name="methods">public java.lang.String domainapp.modules.simple.dom.impl.SimpleObject.getNotes()</mml:attr>
+ <mml:attr name="onType">domainapp.modules.simple.dom.impl.SimpleObject</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.defaults.fromtype.PropertyDefaultFacetDerivedFromDefaultedFacet">
+ <mml:attr name="typeFacet">org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacetUsingDefaultsProvider</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.property.modify.PropertyDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.property.modify.PropertyDomainEventFacetDefault">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="getterFacet">org.apache.isis.core.metamodel.facets.properties.accessor.PropertyAccessorFacetViaAccessor</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.events.domain.PropertyDomainEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.update.clear.PropertyClearFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.property.modify.PropertyClearFacetForDomainEventFromDefault">
+ <mml:attr name="clearFacet">org.apache.isis.core.metamodel.facets.properties.update.clear.PropertyClearFacetViaSetterMethod</mml:attr>
+ <mml:attr name="getterFacet">org.apache.isis.core.metamodel.facets.properties.accessor.PropertyAccessorFacetViaAccessor</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.properties.update.clear.PropertyClearFacetViaSetterMethod</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.events.domain.PropertyDomainEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.update.init.PropertyInitializationFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.update.init.PropertyInitializationFacetViaSetterMethod">
+ <mml:attr name="intent.setNotes">MODIFY_PROPERTY</mml:attr>
+ <mml:attr name="methods">public void domainapp.modules.simple.dom.impl.SimpleObject.setNotes(java.lang.String)</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.property.modify.PropertySetterFacetForDomainEventFromDefault">
+ <mml:attr name="getterFacet">org.apache.isis.core.metamodel.facets.properties.accessor.PropertyAccessorFacetViaAccessor</mml:attr>
+ <mml:attr name="setterFacet">org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacetViaSetterMethod</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacetViaSetterMethod</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.events.domain.PropertyDomainEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.validating.PropertyValidateFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.validating.dflt.PropertyValidateFacetDefault">
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:type>java.lang.String</mml:type>
+ </mml:prop>
+ </mml:properties>
+ <mml:collections/>
+ <mml:actions>
+ <mml:act id="delete">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetDefault">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.events.domain.ActionDomainEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromDefault">
+ <mml:attr name="eventType">org.apache.isis.applib.events.domain.ActionDomainEvent.Default</mml:attr>
+ <mml:attr name="intent.delete">EXECUTE</mml:attr>
+ <mml:attr name="methods">public void domainapp.modules.simple.dom.impl.SimpleObject.delete()</mml:attr>
+ <mml:attr name="onType">domainapp.modules.simple.dom.impl.SimpleObject</mml:attr>
+ <mml:attr name="returnType">void</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacetFallback">
+ <mml:attr name="position">BELOW</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">NON_IDEMPOTENT_ARE_YOU_SURE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObject${symbol_pound}delete()</mml:attr>
+ <mml:attr name="originalText">Delete</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.fallback.NamedFacetDefault</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured">
+ <mml:attr name="promptStyle">INLINE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:returnType>void</mml:returnType>
+ <mml:params/>
+ </mml:act>
+ <mml:act id="downloadJdoMetadata">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.core.metamodel.services.jdosupport.Persistable_downloadJdoMetadata.ActionDomainEvent</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">org.apache.isis.core.metamodel.services.jdosupport.Persistable_downloadJdoMetadata.ActionDomainEvent</mml:attr>
+ <mml:attr name="intent.act">EXECUTE</mml:attr>
+ <mml:attr name="methods">public org.apache.isis.applib.value.Clob org.apache.isis.core.metamodel.services.jdosupport.Persistable_downloadJdoMetadata.act(java.lang.String) throws javax.xml.bind.JAXBException,java.io.IOException</mml:attr>
+ <mml:attr name="onType">org.apache.isis.core.metamodel.services.jdosupport.Persistable_downloadJdoMetadata</mml:attr>
+ <mml:attr name="returnType">org.apache.isis.applib.value.Clob</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.NotContributedFacetForActionLayoutAnnotation">
+ <mml:attr name="contributed">AS_ACTION</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromMixinFacet</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.ActionPositionFacetForActionLayoutAnnotation">
+ <mml:attr name="position">PANEL_DROPDOWN</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.prototype.PrototypeFacetForActionAnnotation">
+ <mml:attr name="deploymentType">PRODUCTION</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">SAFE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObject${symbol_pound}downloadJdoMetadata()</mml:attr>
+ <mml:attr name="originalText">Download Jdo Metadata</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.CssClassFaFacetForActionLayoutAnnotation">
+ <mml:attr name="position">LEFT</mml:attr>
+ <mml:attr name="value">fa fa-fw fa-download</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation">
+ <mml:attr name="name">datanucleusIdLong</mml:attr>
+ <mml:attr name="originalName">datanucleusIdLong</mml:attr>
+ <mml:attr name="sequence">710.1</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured">
+ <mml:attr name="promptStyle">INLINE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:returnType>org.apache.isis.applib.value.Clob</mml:returnType>
+ <mml:params>
+ <mml:param xsi:type="mml:scalarParam" id="fileName" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">org.apache.isis.core.metamodel.services.jdosupport.Persistable_downloadJdoMetadata${symbol_pound}act(java.lang.String)</mml:attr>
+ <mml:attr name="originalText">File name</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.param.layout.NamedFacetForParameterLayoutAnnotation</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet" fqcn="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault">
+ <mml:attr name="inverted">false</mml:attr>
+ <mml:attr name="semantics">REQUIRED</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.param.defaults.ActionParameterDefaultsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.defaults.methodnum.ActionParameterDefaultsFacetViaMethod">
+ <mml:attr name="intent.default0Act">DEFAULTS</mml:attr>
+ <mml:attr name="methods">public java.lang.String org.apache.isis.core.metamodel.services.jdosupport.Persistable_downloadJdoMetadata.default0Act()</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:type>java.lang.String</mml:type>
+ </mml:param>
+ </mml:params>
+ </mml:act>
+ <mml:act id="downloadLayoutXml">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.mixins.layout.Object_downloadLayoutXml.ActionDomainEvent</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">org.apache.isis.applib.mixins.layout.Object_downloadLayoutXml.ActionDomainEvent</mml:attr>
+ <mml:attr name="intent.act">EXECUTE</mml:attr>
+ <mml:attr name="methods">public java.lang.Object org.apache.isis.applib.mixins.layout.Object_downloadLayoutXml.act(java.lang.String,org.apache.isis.applib.services.layout.LayoutService${symbol_dollar}Style)</mml:attr>
+ <mml:attr name="onType">org.apache.isis.applib.mixins.layout.Object_downloadLayoutXml</mml:attr>
+ <mml:attr name="returnType">java.lang.Object</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.NotContributedFacetForActionLayoutAnnotation">
+ <mml:attr name="contributed">AS_ACTION</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromMixinFacet</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.ActionPositionFacetForActionLayoutAnnotation">
+ <mml:attr name="position">PANEL_DROPDOWN</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.prototype.PrototypeFacetForActionAnnotation">
+ <mml:attr name="deploymentType">PRODUCTION</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">SAFE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObject${symbol_pound}downloadLayoutXml()</mml:attr>
+ <mml:attr name="originalText">Download Layout Xml</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.CssClassFaFacetForActionLayoutAnnotation">
+ <mml:attr name="position">LEFT</mml:attr>
+ <mml:attr name="value">fa fa-fw fa-download</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation">
+ <mml:attr name="name">datanucleusIdLong</mml:attr>
+ <mml:attr name="originalName">datanucleusIdLong</mml:attr>
+ <mml:attr name="sequence">700.1</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured">
+ <mml:attr name="promptStyle">INLINE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:returnType>java.lang.Object</mml:returnType>
+ <mml:params>
+ <mml:param xsi:type="mml:scalarParam" id="fileName" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">org.apache.isis.applib.mixins.layout.Object_downloadLayoutXml${symbol_pound}act(java.lang.String,org.apache.isis.applib.services.layout.LayoutService${symbol_dollar}Style)</mml:attr>
+ <mml:attr name="originalText">File name</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.param.layout.NamedFacetForParameterLayoutAnnotation</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet" fqcn="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault">
+ <mml:attr name="inverted">false</mml:attr>
+ <mml:attr name="semantics">REQUIRED</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.param.defaults.ActionParameterDefaultsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.defaults.methodnum.ActionParameterDefaultsFacetViaMethod">
+ <mml:attr name="intent.default0Act">DEFAULTS</mml:attr>
+ <mml:attr name="methods">public java.lang.String org.apache.isis.applib.mixins.layout.Object_downloadLayoutXml.default0Act()</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:type>java.lang.String</mml:type>
+ </mml:param>
+ <mml:param xsi:type="mml:scalarParam" id="style" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet" fqcn="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault">
+ <mml:attr name="inverted">false</mml:attr>
+ <mml:attr name="semantics">REQUIRED</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.param.defaults.ActionParameterDefaultsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.defaults.methodnum.ActionParameterDefaultsFacetViaMethod">
+ <mml:attr name="intent.default1Act">DEFAULTS</mml:attr>
+ <mml:attr name="methods">public org.apache.isis.applib.services.layout.LayoutService${symbol_dollar}Style org.apache.isis.applib.mixins.layout.Object_downloadLayoutXml.default1Act()</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:type>org.apache.isis.applib.services.layout.LayoutService${symbol_dollar}Style</mml:type>
+ </mml:param>
+ </mml:params>
+ </mml:act>
+ <mml:act id="openRestApi">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.mixins.layout.Object_openRestApi.ActionDomainEvent</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">org.apache.isis.applib.mixins.layout.Object_openRestApi.ActionDomainEvent</mml:attr>
+ <mml:attr name="intent.act">EXECUTE</mml:attr>
+ <mml:attr name="methods">public org.apache.isis.applib.value.LocalResourcePath org.apache.isis.applib.mixins.layout.Object_openRestApi.act()</mml:attr>
+ <mml:attr name="onType">org.apache.isis.applib.mixins.layout.Object_openRestApi</mml:attr>
+ <mml:attr name="returnType">org.apache.isis.applib.value.LocalResourcePath</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.NotContributedFacetForActionLayoutAnnotation">
+ <mml:attr name="contributed">AS_ACTION</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromMixinFacet</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.ActionPositionFacetForActionLayoutAnnotation">
+ <mml:attr name="position">PANEL_DROPDOWN</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.prototype.PrototypeFacetForActionAnnotation">
+ <mml:attr name="deploymentType">PRODUCTION</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">SAFE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObject${symbol_pound}openRestApi()</mml:attr>
+ <mml:attr name="originalText">Open Rest Api</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.CssClassFaFacetForActionLayoutAnnotation">
+ <mml:attr name="position">LEFT</mml:attr>
+ <mml:attr name="value">fa fa-fw fa-external-link</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation">
+ <mml:attr name="name">datanucleusIdLong</mml:attr>
+ <mml:attr name="originalName">datanucleusIdLong</mml:attr>
+ <mml:attr name="sequence">750.1</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured">
+ <mml:attr name="promptStyle">INLINE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:returnType>org.apache.isis.applib.value.LocalResourcePath</mml:returnType>
+ <mml:params/>
+ </mml:act>
+ <mml:act id="rebuildMetamodel">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.mixins.layout.Object_rebuildMetamodel.ActionDomainEvent</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">org.apache.isis.applib.mixins.layout.Object_rebuildMetamodel.ActionDomainEvent</mml:attr>
+ <mml:attr name="intent.act">EXECUTE</mml:attr>
+ <mml:attr name="methods">public void org.apache.isis.applib.mixins.layout.Object_rebuildMetamodel.act()</mml:attr>
+ <mml:attr name="onType">org.apache.isis.applib.mixins.layout.Object_rebuildMetamodel</mml:attr>
+ <mml:attr name="returnType">void</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.NotContributedFacetForActionLayoutAnnotation">
+ <mml:attr name="contributed">AS_ACTION</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromMixinFacet</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.ActionPositionFacetForActionLayoutAnnotation">
+ <mml:attr name="position">PANEL_DROPDOWN</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.prototype.PrototypeFacetForActionAnnotation">
+ <mml:attr name="deploymentType">PRODUCTION</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">IDEMPOTENT</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObject${symbol_pound}rebuildMetamodel()</mml:attr>
+ <mml:attr name="originalText">Rebuild Metamodel</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.CssClassFaFacetForActionLayoutAnnotation">
+ <mml:attr name="position">LEFT</mml:attr>
+ <mml:attr name="value">fa fa-fw fa-refresh</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation">
+ <mml:attr name="name">datanucleusIdLong</mml:attr>
+ <mml:attr name="originalName">datanucleusIdLong</mml:attr>
+ <mml:attr name="sequence">800.1</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured">
+ <mml:attr name="promptStyle">INLINE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:returnType>void</mml:returnType>
+ <mml:params/>
+ </mml:act>
+ <mml:act id="updateName">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.associateWith.AssociatedWithFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.associateWith.AssociatedWithFacetForActionAnnotation">
+ <mml:attr name="value">name</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetDefault">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.events.domain.ActionDomainEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromDefault">
+ <mml:attr name="eventType">org.apache.isis.applib.events.domain.ActionDomainEvent.Default</mml:attr>
+ <mml:attr name="intent.updateName">EXECUTE</mml:attr>
+ <mml:attr name="methods">public domainapp.modules.simple.dom.impl.SimpleObject domainapp.modules.simple.dom.impl.SimpleObject.updateName(java.lang.String)</mml:attr>
+ <mml:attr name="onType">domainapp.modules.simple.dom.impl.SimpleObject</mml:attr>
+ <mml:attr name="returnType">domainapp.modules.simple.dom.impl.SimpleObject</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.command.CommandFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.command.CommandFacetForActionAnnotation">
+ <mml:attr name="disabled">false</mml:attr>
+ <mml:attr name="executeIn">FOREGROUND</mml:attr>
+ <mml:attr name="persistence">PERSISTED</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacetFallback">
+ <mml:attr name="position">BELOW</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.publish.PublishedActionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.publishing.PublishedActionFacetForActionAnnotation"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">IDEMPOTENT</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObject${symbol_pound}updateName()</mml:attr>
+ <mml:attr name="originalText">Update Name</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.fallback.NamedFacetDefault</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetForActionAnnotation">
+ <mml:attr name="name">name</mml:attr>
+ <mml:attr name="originalName">name</mml:attr>
+ <mml:attr name="sequence">1</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured">
+ <mml:attr name="promptStyle">INLINE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:returnType>domainapp.modules.simple.dom.impl.SimpleObject</mml:returnType>
+ <mml:params>
+ <mml:param xsi:type="mml:scalarParam" id="name" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.defaults.ActionDefaultsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.defaults.fromtype.ActionParameterDefaultFacetDerivedFromTypeFacets">
+ <mml:attr name="defaultFacets">org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacetUsingDefaultsProvider</mml:attr>
+ <mml:attr name="derived">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.describedas.annotderived.DescribedAsFacetOnParameterDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObject${symbol_pound}updateName(java.lang.String)</mml:attr>
+ <mml:attr name="originalText">Name</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.param.layout.NamedFacetForParameterLayoutAnnotation</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet" fqcn="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault">
+ <mml:attr name="inverted">false</mml:attr>
+ <mml:attr name="semantics">REQUIRED</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxLengthFacet" fqcn="org.apache.isis.core.metamodel.facets.param.parameter.maxlen.MaxLengthFacetForParameterAnnotation">
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">40</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.mustsatisfyspec.MustSatisfySpecificationFacet" fqcn="org.apache.isis.core.metamodel.facets.param.parameter.mustsatisfy.MustSatisfySpecificationFacetForParameterAnnotation">
+ <mml:attr name="specifications">domainapp.modules.simple.dom.types.Name${symbol_dollar}NoExclamationMarks</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.param.parameter.mustsatisfy.MustSatisfySpecificationFacetForParameterAnnotation</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet" fqcn="org.apache.isis.core.metamodel.facets.param.typicallen.fromtype.TypicalLengthFacetOnParameterDerivedFromType">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="typicalLengthFacet">org.apache.isis.core.metamodel.facets.object.value.TypicalLengthFacetUsingParser</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.param.defaults.ActionParameterDefaultsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.defaults.methodnum.ActionParameterDefaultsFacetViaMethod">
+ <mml:attr name="intent.default0UpdateName">DEFAULTS</mml:attr>
+ <mml:attr name="methods">public java.lang.String domainapp.modules.simple.dom.impl.SimpleObject.default0UpdateName()</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:type>java.lang.String</mml:type>
+ </mml:param>
+ </mml:params>
+ </mml:act>
+ </mml:actions>
+</mml:domainClassDto>
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/mml/approved/domainapp.modules.simple.dom.impl.SimpleObjects.xml b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/mml/approved/domainapp.modules.simple.dom.impl.SimpleObjects.xml
new file mode 100644
index 0000000..ced2da4
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/mml/approved/domainapp.modules.simple.dom.impl.SimpleObjects.xml
@@ -0,0 +1,270 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<mml:domainClassDto id="domainapp.modules.simple.dom.impl.SimpleObjects" service="true" xmlns:mml="http://isis.apache.org/schema/metamodel">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObjects</mml:attr>
+ <mml:attr name="originalText">Simple Objects</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.object.domainservicelayout.NamedFacetForDomainServiceLayoutAnnotation</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.audit.AuditableFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainobject.auditing.AuditableFacetFromConfiguration">
+ <mml:attr name="enablement">ENABLED</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.domainservice.DomainServiceFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainservice.annotation.DomainServiceFacetAnnotation">
+ <mml:attr name="natureOfService">VIEW_MENU_ONLY</mml:attr>
+ <mml:attr name="repositoryFor">domainapp.modules.simple.dom.impl.SimpleObject</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.domainservicelayout.DomainServiceLayoutFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainservicelayout.annotation.DomainServiceLayoutFacetAnnotation">
+ <mml:attr name="menuBar">PRIMARY</mml:attr>
+ <mml:attr name="menuOrder">10</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.grid.GridFacet" fqcn="org.apache.isis.core.metamodel.facets.object.grid.GridFacetDefault"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.icon.IconFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainservice.annotation.IconFacetDerivedFromDomainServiceAnnotation">
+ <mml:attr name="repositoryFor">domainapp.modules.simple.dom.impl.SimpleObject</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectspecid.classname.ObjectSpecIdFacetDerivedFromDomainServiceAnnotationElseGetId">
+ <mml:attr name="value">simple.SimpleObjectMenu</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectvalidprops.ObjectValidPropertiesFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectvalidprops.impl.ObjectValidPropertiesFacetImpl">
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.paged.PagedFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.PagedFacetFromConfiguration">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">25</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.plural.PluralFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.PluralFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObjects</mml:attr>
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="originalText">Simple Objects</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:actions>
+ <mml:act id="create">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">domainapp.modules.simple.dom.impl.SimpleObjects.CreateDomainEvent</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">domainapp.modules.simple.dom.impl.SimpleObjects.CreateDomainEvent</mml:attr>
+ <mml:attr name="intent.create">EXECUTE</mml:attr>
+ <mml:attr name="methods">public domainapp.modules.simple.dom.impl.SimpleObject domainapp.modules.simple.dom.impl.SimpleObjects.create(java.lang.String)</mml:attr>
+ <mml:attr name="onType">domainapp.modules.simple.dom.impl.SimpleObjects</mml:attr>
+ <mml:attr name="returnType">domainapp.modules.simple.dom.impl.SimpleObject</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromDomainServiceFacet">
+ <mml:attr name="contributed">AS_NEITHER</mml:attr>
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="natureOfService">VIEW_MENU_ONLY</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacetFallback">
+ <mml:attr name="position">BELOW</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetFallbackToNonIdempotent">
+ <mml:attr name="value">NON_IDEMPOTENT</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObjects${symbol_pound}create()</mml:attr>
+ <mml:attr name="originalText">Create</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.fallback.NamedFacetDefault</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation">
+ <mml:attr name="sequence">3</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured">
+ <mml:attr name="promptStyle">INLINE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:returnType>domainapp.modules.simple.dom.impl.SimpleObject</mml:returnType>
+ <mml:params>
+ <mml:param xsi:type="mml:scalarParam" id="name" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.defaults.ActionDefaultsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.defaults.fromtype.ActionParameterDefaultFacetDerivedFromTypeFacets">
+ <mml:attr name="defaultFacets">org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacetUsingDefaultsProvider</mml:attr>
+ <mml:attr name="derived">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.describedas.annotderived.DescribedAsFacetOnParameterDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObjects${symbol_pound}create(java.lang.String)</mml:attr>
+ <mml:attr name="originalText">Name</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.param.layout.NamedFacetForParameterLayoutAnnotation</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet" fqcn="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault">
+ <mml:attr name="inverted">false</mml:attr>
+ <mml:attr name="semantics">REQUIRED</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet" fqcn="org.apache.isis.core.metamodel.facets.param.typicallen.fromtype.TypicalLengthFacetOnParameterDerivedFromType">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="typicalLengthFacet">org.apache.isis.core.metamodel.facets.object.value.TypicalLengthFacetUsingParser</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:type>java.lang.String</mml:type>
+ </mml:param>
+ </mml:params>
+ </mml:act>
+ <mml:act id="findByName">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet" fqcn="org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetInferredFromGenerics">
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetInferredFromGenerics</mml:attr>
+ <mml:attr name="value">domainapp.modules.simple.dom.impl.SimpleObject</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetDefault">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.events.domain.ActionDomainEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromDefault">
+ <mml:attr name="eventType">org.apache.isis.applib.events.domain.ActionDomainEvent.Default</mml:attr>
+ <mml:attr name="intent.findByName">EXECUTE</mml:attr>
+ <mml:attr name="methods">public java.util.List<domainapp.modules.simple.dom.impl.SimpleObject> domainapp.modules.simple.dom.impl.SimpleObjects.findByName(java.lang.String)</mml:attr>
+ <mml:attr name="onType">domainapp.modules.simple.dom.impl.SimpleObjects</mml:attr>
+ <mml:attr name="returnType">java.util.List</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromDomainServiceFacet">
+ <mml:attr name="contributed">AS_NEITHER</mml:attr>
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="natureOfService">VIEW_MENU_ONLY</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacetFallback">
+ <mml:attr name="position">BELOW</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">SAFE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObjects${symbol_pound}findByName()</mml:attr>
+ <mml:attr name="originalText">Find By Name</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.fallback.NamedFacetDefault</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation">
+ <mml:attr name="sequence">2</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.BookmarkPolicyFacetForActionLayoutAnnotation">
+ <mml:attr name="bookmarkPolicy">AS_ROOT</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured">
+ <mml:attr name="promptStyle">INLINE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:returnType>java.util.List</mml:returnType>
+ <mml:params>
+ <mml:param xsi:type="mml:scalarParam" id="name" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.defaults.ActionDefaultsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.defaults.fromtype.ActionParameterDefaultFacetDerivedFromTypeFacets">
+ <mml:attr name="defaultFacets">org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacetUsingDefaultsProvider</mml:attr>
+ <mml:attr name="derived">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.describedas.annotderived.DescribedAsFacetOnParameterDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObjects${symbol_pound}findByName(java.lang.String)</mml:attr>
+ <mml:attr name="originalText">Name</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.param.layout.NamedFacetForParameterLayoutAnnotation</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet" fqcn="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault">
+ <mml:attr name="inverted">false</mml:attr>
+ <mml:attr name="semantics">REQUIRED</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet" fqcn="org.apache.isis.core.metamodel.facets.param.typicallen.fromtype.TypicalLengthFacetOnParameterDerivedFromType">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="typicalLengthFacet">org.apache.isis.core.metamodel.facets.object.value.TypicalLengthFacetUsingParser</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:type>java.lang.String</mml:type>
+ </mml:param>
+ </mml:params>
+ </mml:act>
+ <mml:act id="listAll">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet" fqcn="org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetInferredFromGenerics">
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetInferredFromGenerics</mml:attr>
+ <mml:attr name="value">domainapp.modules.simple.dom.impl.SimpleObject</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetDefault">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.events.domain.ActionDomainEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromDefault">
+ <mml:attr name="eventType">org.apache.isis.applib.events.domain.ActionDomainEvent.Default</mml:attr>
+ <mml:attr name="intent.listAll">EXECUTE</mml:attr>
+ <mml:attr name="methods">public java.util.List<domainapp.modules.simple.dom.impl.SimpleObject> domainapp.modules.simple.dom.impl.SimpleObjects.listAll()</mml:attr>
+ <mml:attr name="onType">domainapp.modules.simple.dom.impl.SimpleObjects</mml:attr>
+ <mml:attr name="returnType">java.util.List</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromDomainServiceFacet">
+ <mml:attr name="contributed">AS_NEITHER</mml:attr>
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="natureOfService">VIEW_MENU_ONLY</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacetFallback">
+ <mml:attr name="position">BELOW</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">SAFE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObjects${symbol_pound}listAll()</mml:attr>
+ <mml:attr name="originalText">List All</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.fallback.NamedFacetDefault</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation">
+ <mml:attr name="sequence">1</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.BookmarkPolicyFacetForActionLayoutAnnotation">
+ <mml:attr name="bookmarkPolicy">AS_ROOT</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured">
+ <mml:attr name="promptStyle">INLINE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:returnType>java.util.List</mml:returnType>
+ <mml:params/>
+ </mml:act>
+ </mml:actions>
+</mml:domainClassDto>
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/mml/approved/org.apache.isis.applib.value.LocalResourcePath.xml b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/mml/approved/org.apache.isis.applib.value.LocalResourcePath.xml
new file mode 100644
index 0000000..2b505d4
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/mml/approved/org.apache.isis.applib.value.LocalResourcePath.xml
@@ -0,0 +1,5 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<mml:domainClassDto id="org.apache.isis.applib.value.LocalResourcePath" xmlns:mml="http://isis.apache.org/schema/metamodel"/>
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/smoke/Smoke_IntegTest.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/smoke/Smoke_IntegTest.java
new file mode 100644
index 0000000..fc43a3c
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/smoke/Smoke_IntegTest.java
@@ -0,0 +1,100 @@
+#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.application.integtests.smoke;
+
+import java.util.List;
+
+import javax.inject.Inject;
+
+import org.junit.Test;
+
+import domainapp.application.integtests.DomainAppIntegTestAbstract;
+import domainapp.modules.simple.dom.impl.SimpleObject;
+import domainapp.modules.simple.dom.impl.SimpleObjects;
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class Smoke_IntegTest extends DomainAppIntegTestAbstract {
+
+ @Inject
+ SimpleObjects menu;
+
+ @Test
+ public void create() {
+
+ // when
+ List<SimpleObject> all = wrap(menu).listAll();
+
+ // then
+ assertThat(all).isEmpty();
+
+
+
+ // when
+ final SimpleObject fred = wrap(menu).create("Fred");
+ transactionService.flushTransaction();
+
+ // then
+ all = wrap(menu).listAll();
+ assertThat(all).hasSize(1);
+ assertThat(all).contains(fred);
+
+
+
+ // when
+ final SimpleObject bill = wrap(menu).create("Bill");
+ transactionService.flushTransaction();
+
+ // then
+ all = wrap(menu).listAll();
+ assertThat(all).hasSize(2);
+ assertThat(all).contains(fred, bill);
+
+
+
+ // when
+ wrap(fred).updateName("Freddy");
+ transactionService.flushTransaction();
+
+ // then
+ assertThat(wrap(fred).getName()).isEqualTo("Freddy");
+
+
+ // when
+ wrap(fred).setNotes("These are some notes");
+ transactionService.flushTransaction();
+
+ // then
+ assertThat(wrap(fred).getNotes()).isEqualTo("These are some notes");
+
+
+ // when
+ wrap(fred).delete();
+ transactionService.flushTransaction();
+
+
+ all = wrap(menu).listAll();
+ assertThat(all).hasSize(1);
+
+ }
+
+}
+
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/tests/mml/MetaModelService_IntegTest.exports.approved.xml b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/tests/mml/MetaModelService_IntegTest.exports.approved.xml
new file mode 100644
index 0000000..47d3e8e
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/java/domainapp/application/integtests/tests/mml/MetaModelService_IntegTest.exports.approved.xml
@@ -0,0 +1,2746 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<mml:metamodelDto xmlns:mml="http://isis.apache.org/schema/metamodel">
+ <mml:domainClass id="domainapp.application.fixture.DomainAppFixtureScriptsSpecificationProvider" service="true">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred">
+ <mml:attr name="escaped">true</mml:attr>
+ <mml:attr name="value">Domain App Fixture Scripts Specification Provider</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.domainservice.DomainServiceFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainservice.annotation.DomainServiceFacetAnnotation">
+ <mml:attr name="natureOfService">DOMAIN</mml:attr>
+ <mml:attr name="repositoryFor">java.lang.Object</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.domainservicelayout.DomainServiceLayoutFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainservicelayout.annotation.DomainServiceLayoutFacetAnnotation">
+ <mml:attr name="menuBar">PRIMARY</mml:attr>
+ <mml:attr name="menuOrder">2147483547</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.grid.GridFacet" fqcn="org.apache.isis.core.metamodel.facets.object.grid.GridFacetDefault"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.icon.IconFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainservice.annotation.IconFacetDerivedFromDomainServiceAnnotation">
+ <mml:attr name="repositoryFor">java.lang.Object</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.membergroups.MemberGroupLayoutFacet" fqcn="org.apache.isis.core.metamodel.facets.object.membergroups.annotprop.MemberGroupLayoutFacetFallback">
+ <mml:attr name="columns">[4,0,0,8]</mml:attr>
+ <mml:attr name="left">General</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.notpersistable.NotPersistableFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.NotPersistableFacetNull">
+ <mml:attr name="disabling">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectspecid.classname.ObjectSpecIdFacetDerivedFromClassName">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">domainapp.application.fixture.DomainAppFixtureScriptsSpecificationProvider</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectvalidprops.ObjectValidPropertiesFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectvalidprops.impl.ObjectValidPropertiesFacetImpl">
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.paged.PagedFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.PagedFacetFromConfiguration">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">25</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.plural.PluralFacet" fqcn="org.apache.isis.core.metamodel.facets.object.plural.inferred.PluralFacetInferred">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">Domain App Fixture Scripts Specification Providers</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:actions/>
+ </mml:domainClass>
+ <mml:domainClass id="domainapp.application.services.homepage.HomePageService" service="true">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred">
+ <mml:attr name="escaped">true</mml:attr>
+ <mml:attr name="value">Home Page Service</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.domainservice.DomainServiceFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainservice.annotation.DomainServiceFacetAnnotation">
+ <mml:attr name="natureOfService">DOMAIN</mml:attr>
+ <mml:attr name="repositoryFor">java.lang.Object</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.domainservicelayout.DomainServiceLayoutFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainservicelayout.annotation.DomainServiceLayoutFacetAnnotation">
+ <mml:attr name="menuBar">PRIMARY</mml:attr>
+ <mml:attr name="menuOrder">2147483547</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.grid.GridFacet" fqcn="org.apache.isis.core.metamodel.facets.object.grid.GridFacetDefault"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.icon.IconFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainservice.annotation.IconFacetDerivedFromDomainServiceAnnotation">
+ <mml:attr name="repositoryFor">java.lang.Object</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.membergroups.MemberGroupLayoutFacet" fqcn="org.apache.isis.core.metamodel.facets.object.membergroups.annotprop.MemberGroupLayoutFacetFallback">
+ <mml:attr name="columns">[4,0,0,8]</mml:attr>
+ <mml:attr name="left">General</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.notpersistable.NotPersistableFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.NotPersistableFacetNull">
+ <mml:attr name="disabling">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectspecid.classname.ObjectSpecIdFacetDerivedFromDomainServiceAnnotationElseGetId">
+ <mml:attr name="value">homepage.HomePageService</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectvalidprops.ObjectValidPropertiesFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectvalidprops.impl.ObjectValidPropertiesFacetImpl">
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.paged.PagedFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.PagedFacetFromConfiguration">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">25</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.plural.PluralFacet" fqcn="org.apache.isis.core.metamodel.facets.object.plural.inferred.PluralFacetInferred">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">Home Page Services</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:actions>
+ <mml:act id="homePage">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation" fqcn="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">NOWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation" fqcn="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">NOWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.services.eventbus.ActionDomainEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">org.apache.isis.applib.services.eventbus.ActionDomainEvent.Default</mml:attr>
+ <mml:attr name="intent.homePage">EXECUTE</mml:attr>
+ <mml:attr name="methods">public domainapp.application.services.homepage.HomePageViewModel domainapp.application.services.homepage.HomePageService.homePage()</mml:attr>
+ <mml:attr name="onType">domainapp.application.services.homepage.HomePageService</mml:attr>
+ <mml:attr name="returnType">domainapp.application.services.homepage.HomePageViewModel</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.bulk.BulkFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.bulk.BulkFacetForActionAnnotation">
+ <mml:attr name="value">REGULAR_ONLY</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.homepage.HomePageFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.homepage.annotation.HomePageFacetAnnotation"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromDomainServiceFacet">
+ <mml:attr name="as">EITHER</mml:attr>
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="natureOfService">DOMAIN</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notinservicemenu.NotInServiceMenuFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.notinservicemenu.derived.NotInServiceMenuFacetDerivedFromDomainServiceFacet">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="natureOfService">DOMAIN</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacetFallback">
+ <mml:attr name="position">BELOW</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">SAFE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.application.services.homepage.HomePageService${symbol_pound}homePage()</mml:attr>
+ <mml:attr name="originalText">Home Page</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.fallback.NamedFacetDefault</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetFallBackToInline">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetFallBackToInline</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.renderunchanged.UnchangingFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.propertylayout.UnchangingFacetOnPropertyFromLayoutProperties">
+ <mml:attr name="value">false</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:returnType>domainapp.application.services.homepage.HomePageViewModel</mml:returnType>
+ <mml:params/>
+ </mml:act>
+ </mml:actions>
+ </mml:domainClass>
+ <mml:domainClass id="domainapp.application.services.homepage.HomePageViewModel">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred">
+ <mml:attr name="escaped">true</mml:attr>
+ <mml:attr name="value">Home Page View Model</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.callbacks.CreatedLifecycleEventFacet" fqcn="org.apache.isis.core.metamodel.facets.object.callbacks.CreatedLifecycleEventFacetForDomainObjectAnnotation">
+ <mml:attr name="value">org.apache.isis.applib.services.eventbus.ObjectCreatedEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.callbacks.LoadedLifecycleEventFacet" fqcn="org.apache.isis.core.metamodel.facets.object.callbacks.LoadedLifecycleEventFacetForDomainObjectAnnotation">
+ <mml:attr name="value">org.apache.isis.applib.services.eventbus.ObjectLoadedEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.callbacks.PersistedLifecycleEventFacet" fqcn="org.apache.isis.core.metamodel.facets.object.callbacks.PersistedLifecycleEventFacetForDomainObjectAnnotation">
+ <mml:attr name="value">org.apache.isis.applib.services.eventbus.ObjectPersistedEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.callbacks.PersistingLifecycleEventFacet" fqcn="org.apache.isis.core.metamodel.facets.object.callbacks.PersistingLifecycleEventFacetForDomainObjectAnnotation">
+ <mml:attr name="value">org.apache.isis.applib.services.eventbus.ObjectPersistingEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.callbacks.RemovingLifecycleEventFacet" fqcn="org.apache.isis.core.metamodel.facets.object.callbacks.RemovingLifecycleEventFacetForDomainObjectAnnotation">
+ <mml:attr name="value">org.apache.isis.applib.services.eventbus.ObjectRemovingEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.callbacks.UpdatedLifecycleEventFacet" fqcn="org.apache.isis.core.metamodel.facets.object.callbacks.UpdatedLifecycleEventFacetForDomainObjectAnnotation">
+ <mml:attr name="value">org.apache.isis.applib.services.eventbus.ObjectUpdatedEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.callbacks.UpdatingLifecycleEventFacet" fqcn="org.apache.isis.core.metamodel.facets.object.callbacks.UpdatingLifecycleEventFacetForDomainObjectAnnotation">
+ <mml:attr name="value">org.apache.isis.applib.services.eventbus.ObjectUpdatingEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.grid.GridFacet" fqcn="org.apache.isis.core.metamodel.facets.object.grid.GridFacetDefault"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.membergroups.MemberGroupLayoutFacet" fqcn="org.apache.isis.core.metamodel.facets.object.membergroups.annotprop.MemberGroupLayoutFacetFallback">
+ <mml:attr name="columns">[4,0,0,8]</mml:attr>
+ <mml:attr name="left">General</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.notpersistable.NotPersistableFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.NotPersistableFacetNull">
+ <mml:attr name="disabling">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainobject.objectspecid.ObjectSpecIdFacetForDomainObjectAnnotation">
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.object.objectspecid.classname.ObjectSpecIdFacetDerivedFromClassName</mml:attr>
+ <mml:attr name="value">domainapp.application.services.homepage.HomePageViewModel</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectvalidprops.ObjectValidPropertiesFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectvalidprops.impl.ObjectValidPropertiesFacetImpl">
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.paged.PagedFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.PagedFacetFromConfiguration">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">25</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.plural.PluralFacet" fqcn="org.apache.isis.core.metamodel.facets.object.plural.inferred.PluralFacetInferred">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">Home Page View Models</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.title.TitleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.title.methods.TitleFacetViaTitleMethod">
+ <mml:attr name="intent.title">UI_HINT</mml:attr>
+ <mml:attr name="methods">public org.apache.isis.applib.services.i18n.TranslatableString domainapp.application.services.homepage.HomePageViewModel.title()</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainobject.recreatable.RecreatableObjectFacetForDomainObjectAnnotation">
+ <mml:attr name="recreationMechanism">INITIALIZES</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:properties/>
+ <mml:collections>
+ <mml:coll id="objects">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet" fqcn="org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetInferredFromGenerics">
+ <mml:attr name="value">domainapp.modules.simple.dom.impl.SimpleObject</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.application.services.homepage.HomePageViewModel${symbol_pound}objects</mml:attr>
+ <mml:attr name="originalText">Objects</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.fallback.NamedFacetDefault</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.modify.CollectionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.collection.modify.CollectionDomainEventFacetDefault">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.collections.collection.modify.CollectionDomainEventFacetDefault</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.services.eventbus.CollectionDomainEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.modify.CollectionAddToFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.collection.modify.CollectionAddToFacetForDomainEventFromDefault">
+ <mml:attr name="collectionAddToFacet">org.apache.isis.core.metamodel.facets.collections.modify.CollectionAddToFacetViaAccessor</mml:attr>
+ <mml:attr name="getterFacet">org.apache.isis.core.metamodel.facets.collections.accessor.CollectionAccessorFacetViaAccessor</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.collections.modify.CollectionAddToFacetViaAccessor</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.services.eventbus.CollectionDomainEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.modify.CollectionClearFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.clear.CollectionClearFacetViaAccessor">
+ <mml:attr name="intent.getObjects">ACCESSOR</mml:attr>
+ <mml:attr name="methods">public java.util.List<domainapp.modules.simple.dom.impl.SimpleObject> domainapp.application.services.homepage.HomePageViewModel.getObjects()</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.modify.CollectionRemoveFromFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.collection.modify.CollectionRemoveFromFacetForDomainEventFromDefault">
+ <mml:attr name="collectionRemoveFromFacet">org.apache.isis.core.metamodel.facets.collections.modify.CollectionRemoveFromFacetViaAccessor</mml:attr>
+ <mml:attr name="getterFacet">org.apache.isis.core.metamodel.facets.collections.accessor.CollectionAccessorFacetViaAccessor</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.collections.modify.CollectionRemoveFromFacetViaAccessor</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.services.eventbus.CollectionDomainEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collparam.semantics.CollectionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.collparam.semantics.CollectionSemanticsFacetDefault">
+ <mml:attr name="value">LIST</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.paged.PagedFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.PagedFacetFromConfiguration">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">12</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.recreatable.DisabledFacetOnCollectionDerivedFromRecreatableObject" fqcn="org.apache.isis.core.metamodel.facets.object.recreatable.DisabledFacetOnCollectionDerivedFromRecreatableObject">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="inverted">false</mml:attr>
+ <mml:attr name="semantics">DISABLED</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">ANYWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.accessor.CollectionAccessorFacetViaAccessor">
+ <mml:attr name="intent.getObjects">ACCESSOR</mml:attr>
+ <mml:attr name="methods">public java.util.List<domainapp.modules.simple.dom.impl.SimpleObject> domainapp.application.services.homepage.HomePageViewModel.getObjects()</mml:attr>
+ <mml:attr name="onType">domainapp.application.services.homepage.HomePageViewModel</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:type>domainapp.modules.simple.dom.impl.SimpleObject</mml:type>
+ </mml:coll>
+ </mml:collections>
+ <mml:actions>
+ <mml:act id="downloadLayoutXml">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation" fqcn="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">NOWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.services.layout.Object_downloadLayoutXml.ActionDomainEvent</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">org.apache.isis.applib.services.layout.Object_downloadLayoutXml.ActionDomainEvent</mml:attr>
+ <mml:attr name="intent.act">EXECUTE</mml:attr>
+ <mml:attr name="methods">public java.lang.Object org.apache.isis.applib.services.layout.Object_downloadLayoutXml.act(java.lang.String,org.apache.isis.applib.services.layout.LayoutService${symbol_dollar}Style)</mml:attr>
+ <mml:attr name="onType">org.apache.isis.applib.services.layout.Object_downloadLayoutXml</mml:attr>
+ <mml:attr name="returnType">java.lang.Object</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.bulk.BulkFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.bulk.BulkFacetForActionAnnotation">
+ <mml:attr name="value">REGULAR_ONLY</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.NotContributedFacetForActionLayoutAnnotation">
+ <mml:attr name="as">ASSOCIATION</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromMixinFacet</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.ActionPositionFacetForActionLayoutAnnotation">
+ <mml:attr name="position">PANEL_DROPDOWN</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.prototype.PrototypeFacetForActionAnnotation">
+ <mml:attr name="deploymentType">PRODUCTION</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">SAFE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.application.services.homepage.HomePageViewModel${symbol_pound}downloadLayoutXml()</mml:attr>
+ <mml:attr name="originalText">Download Layout Xml</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.CssClassFaFacetForActionLayoutAnnotation">
+ <mml:attr name="position">LEFT</mml:attr>
+ <mml:attr name="value">fa fa-fw fa-download</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation">
+ <mml:attr name="name">datanucleusIdLong</mml:attr>
+ <mml:attr name="originalName">datanucleusIdLong</mml:attr>
+ <mml:attr name="sequence">700.1</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetFallBackToInline">
+ <mml:attr name="derived">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.renderunchanged.UnchangingFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.propertylayout.UnchangingFacetOnPropertyFromLayoutProperties">
+ <mml:attr name="value">false</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:returnType>java.lang.Object</mml:returnType>
+ <mml:params>
+ <mml:param xsi:type="mml:scalarParam" id="fileName" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.defaults.ActionDefaultsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.defaults.fromtype.ActionParameterDefaultFacetDerivedFromTypeFacets">
+ <mml:attr name="defaultFacets">org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacetUsingDefaultsProvider;org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacetUsingDefaultsProvider</mml:attr>
+ <mml:attr name="derived">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.describedas.annotderived.DescribedAsFacetOnParameterDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">org.apache.isis.applib.services.layout.Object_downloadLayoutXml${symbol_pound}act(java.lang.String,org.apache.isis.applib.services.layout.LayoutService${symbol_dollar}Style)</mml:attr>
+ <mml:attr name="originalText">File name</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.param.layout.NamedFacetForParameterLayoutAnnotation</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.labelat.LabelAtFacet" fqcn="org.apache.isis.core.metamodel.facets.param.layout.LabelAtFacetForParameterLayoutAnnotation">
+ <mml:attr name="label">DEFAULT</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.param.layout.LabelAtFacetForParameterLayoutAnnotation</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet" fqcn="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault">
+ <mml:attr name="inverted">false</mml:attr>
+ <mml:attr name="semantics">REQUIRED</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet" fqcn="org.apache.isis.core.metamodel.facets.param.typicallen.fromtype.TypicalLengthFacetOnParameterDerivedFromType">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="typicalLengthFacet">org.apache.isis.core.metamodel.facets.object.value.TypicalLengthFacetUsingParser</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.param.typicallen.fromtype.TypicalLengthFacetOnParameterDerivedFromType</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.param.defaults.ActionParameterDefaultsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.defaults.methodnum.ActionParameterDefaultsFacetViaMethod">
+ <mml:attr name="intent.default0Act">DEFAULTS</mml:attr>
+ <mml:attr name="methods">public java.lang.String org.apache.isis.applib.services.layout.Object_downloadLayoutXml.default0Act()</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:type>java.lang.String</mml:type>
+ </mml:param>
+ <mml:param xsi:type="mml:scalarParam" id="style" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.defaults.ActionDefaultsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.defaults.fromtype.ActionParameterDefaultFacetDerivedFromTypeFacets">
+ <mml:attr name="defaultFacets">org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacetUsingDefaultsProvider;org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacetUsingDefaultsProvider</mml:attr>
+ <mml:attr name="derived">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.describedas.annotderived.DescribedAsFacetOnParameterDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet" fqcn="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault">
+ <mml:attr name="inverted">false</mml:attr>
+ <mml:attr name="semantics">REQUIRED</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet" fqcn="org.apache.isis.core.metamodel.facets.param.typicallen.fromtype.TypicalLengthFacetOnParameterDerivedFromType">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="typicalLengthFacet">org.apache.isis.core.metamodel.facets.object.value.TypicalLengthFacetUsingParser</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.param.typicallen.fromtype.TypicalLengthFacetOnParameterDerivedFromType</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.param.choices.ActionParameterChoicesFacet" fqcn="org.apache.isis.core.metamodel.facets.param.choices.enums.ActionParameterChoicesFacetDerivedFromChoicesFacet"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.param.defaults.ActionParameterDefaultsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.defaults.methodnum.ActionParameterDefaultsFacetViaMethod">
+ <mml:attr name="intent.default1Act">DEFAULTS</mml:attr>
+ <mml:attr name="methods">public org.apache.isis.applib.services.layout.LayoutService${symbol_dollar}Style org.apache.isis.applib.services.layout.Object_downloadLayoutXml.default1Act()</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:type>org.apache.isis.applib.services.layout.LayoutService${symbol_dollar}Style</mml:type>
+ </mml:param>
+ </mml:params>
+ </mml:act>
+ <mml:act id="openRestApi">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation" fqcn="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">NOWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.services.layout.Object_openRestApi.ActionDomainEvent</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">org.apache.isis.applib.services.layout.Object_openRestApi.ActionDomainEvent</mml:attr>
+ <mml:attr name="intent.act">EXECUTE</mml:attr>
+ <mml:attr name="methods">public java.net.URL org.apache.isis.applib.services.layout.Object_openRestApi.act() throws java.net.MalformedURLException</mml:attr>
+ <mml:attr name="onType">org.apache.isis.applib.services.layout.Object_openRestApi</mml:attr>
+ <mml:attr name="returnType">java.net.URL</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.bulk.BulkFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.bulk.BulkFacetForActionAnnotation">
+ <mml:attr name="value">REGULAR_ONLY</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.NotContributedFacetForActionLayoutAnnotation">
+ <mml:attr name="as">ASSOCIATION</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromMixinFacet</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.ActionPositionFacetForActionLayoutAnnotation">
+ <mml:attr name="position">PANEL_DROPDOWN</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.prototype.PrototypeFacetForActionAnnotation">
+ <mml:attr name="deploymentType">PRODUCTION</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">SAFE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.application.services.homepage.HomePageViewModel${symbol_pound}openRestApi()</mml:attr>
+ <mml:attr name="originalText">Open Rest Api</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.CssClassFaFacetForActionLayoutAnnotation">
+ <mml:attr name="position">LEFT</mml:attr>
+ <mml:attr name="value">fa fa-fw fa-external-link</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation">
+ <mml:attr name="name">datanucleusIdLong</mml:attr>
+ <mml:attr name="originalName">datanucleusIdLong</mml:attr>
+ <mml:attr name="sequence">750.1</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetFallBackToInline">
+ <mml:attr name="derived">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.renderunchanged.UnchangingFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.propertylayout.UnchangingFacetOnPropertyFromLayoutProperties">
+ <mml:attr name="value">false</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:returnType>java.net.URL</mml:returnType>
+ <mml:params/>
+ </mml:act>
+ <mml:act id="rebuildMetamodel">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation" fqcn="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">NOWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.services.layout.Object_rebuildMetamodel.ActionDomainEvent</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">org.apache.isis.applib.services.layout.Object_rebuildMetamodel.ActionDomainEvent</mml:attr>
+ <mml:attr name="intent.act">EXECUTE</mml:attr>
+ <mml:attr name="methods">public void org.apache.isis.applib.services.layout.Object_rebuildMetamodel.act()</mml:attr>
+ <mml:attr name="onType">org.apache.isis.applib.services.layout.Object_rebuildMetamodel</mml:attr>
+ <mml:attr name="returnType">void</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.bulk.BulkFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.bulk.BulkFacetForActionAnnotation">
+ <mml:attr name="value">REGULAR_ONLY</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.NotContributedFacetForActionLayoutAnnotation">
+ <mml:attr name="as">ASSOCIATION</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromMixinFacet</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.ActionPositionFacetForActionLayoutAnnotation">
+ <mml:attr name="position">PANEL_DROPDOWN</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.prototype.PrototypeFacetForActionAnnotation">
+ <mml:attr name="deploymentType">PRODUCTION</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">IDEMPOTENT</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.application.services.homepage.HomePageViewModel${symbol_pound}rebuildMetamodel()</mml:attr>
+ <mml:attr name="originalText">Rebuild Metamodel</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.CssClassFaFacetForActionLayoutAnnotation">
+ <mml:attr name="position">LEFT</mml:attr>
+ <mml:attr name="value">fa fa-fw fa-refresh</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation">
+ <mml:attr name="name">datanucleusIdLong</mml:attr>
+ <mml:attr name="originalName">datanucleusIdLong</mml:attr>
+ <mml:attr name="sequence">800.1</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetFallBackToInline">
+ <mml:attr name="derived">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.renderunchanged.UnchangingFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.propertylayout.UnchangingFacetOnPropertyFromLayoutProperties">
+ <mml:attr name="value">false</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:returnType>void</mml:returnType>
+ <mml:params/>
+ </mml:act>
+ </mml:actions>
+ </mml:domainClass>
+ <mml:domainClass id="domainapp.modules.simple.dom.impl.SimpleObject">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred">
+ <mml:attr name="escaped">true</mml:attr>
+ <mml:attr name="value">Simple Object</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainobjectlayout.CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent">
+ <mml:attr name="cssClassUiEventClass">org.apache.isis.applib.services.eventbus.CssClassUiEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.audit.AuditableFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainobject.auditing.AuditableFacetForDomainObjectAnnotation">
+ <mml:attr name="enablement">ENABLED</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.callbacks.CreatedLifecycleEventFacet" fqcn="org.apache.isis.core.metamodel.facets.object.callbacks.CreatedLifecycleEventFacetForDomainObjectAnnotation">
+ <mml:attr name="value">org.apache.isis.applib.services.eventbus.ObjectCreatedEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.callbacks.LoadedLifecycleEventFacet" fqcn="org.apache.isis.core.metamodel.facets.object.callbacks.LoadedLifecycleEventFacetForDomainObjectAnnotation">
+ <mml:attr name="value">org.apache.isis.applib.services.eventbus.ObjectLoadedEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.callbacks.PersistedLifecycleEventFacet" fqcn="org.apache.isis.core.metamodel.facets.object.callbacks.PersistedLifecycleEventFacetForDomainObjectAnnotation">
+ <mml:attr name="value">org.apache.isis.applib.services.eventbus.ObjectPersistedEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.callbacks.PersistingLifecycleEventFacet" fqcn="org.apache.isis.core.metamodel.facets.object.callbacks.PersistingLifecycleEventFacetForDomainObjectAnnotation">
+ <mml:attr name="value">org.apache.isis.applib.services.eventbus.ObjectPersistingEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.callbacks.RemovingLifecycleEventFacet" fqcn="org.apache.isis.core.metamodel.facets.object.callbacks.RemovingLifecycleEventFacetForDomainObjectAnnotation">
+ <mml:attr name="value">org.apache.isis.applib.services.eventbus.ObjectRemovingEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.callbacks.UpdatedLifecycleEventFacet" fqcn="org.apache.isis.core.metamodel.facets.object.callbacks.UpdatedLifecycleEventFacetForDomainObjectAnnotation">
+ <mml:attr name="value">org.apache.isis.applib.services.eventbus.ObjectUpdatedEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.callbacks.UpdatingLifecycleEventFacet" fqcn="org.apache.isis.core.metamodel.facets.object.callbacks.UpdatingLifecycleEventFacetForDomainObjectAnnotation">
+ <mml:attr name="value">org.apache.isis.applib.services.eventbus.ObjectUpdatingEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.grid.GridFacet" fqcn="org.apache.isis.core.metamodel.facets.object.grid.GridFacetDefault"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.icon.IconFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainobjectlayout.IconFacetViaDomainObjectLayoutAnnotationUsingIconUiEvent">
+ <mml:attr name="iconUiEventClass">org.apache.isis.applib.services.eventbus.IconUiEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.membergroups.MemberGroupLayoutFacet" fqcn="org.apache.isis.core.metamodel.facets.object.membergroups.annotprop.MemberGroupLayoutFacetFallback">
+ <mml:attr name="columns">[4,0,0,8]</mml:attr>
+ <mml:attr name="left">General</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.notpersistable.NotPersistableFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.NotPersistableFacetNull">
+ <mml:attr name="disabling">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainobject.objectspecid.ObjectSpecIdFacetForJdoPersistenceCapableAnnotation">
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.object.objectspecid.classname.ObjectSpecIdFacetDerivedFromClassName</mml:attr>
+ <mml:attr name="value">simple.SimpleObject</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectvalidprops.ObjectValidPropertiesFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectvalidprops.impl.ObjectValidPropertiesFacetImpl">
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.paged.PagedFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.PagedFacetFromConfiguration">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">25</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.plural.PluralFacet" fqcn="org.apache.isis.core.metamodel.facets.object.plural.inferred.PluralFacetInferred">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">Simple Objects</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.title.TitleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainobjectlayout.TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent">
+ <mml:attr name="titleUiEventClass">org.apache.isis.applib.services.eventbus.TitleUiEvent.Default</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.object.title.annotation.TitleFacetViaTitleAnnotation</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.objectstore.jdo.metamodel.facets.object.datastoreidentity.JdoDatastoreIdentityFacet" fqcn="org.apache.isis.objectstore.jdo.metamodel.facets.object.datastoreidentity.JdoDatastoreIdentityFacetAnnotation">
+ <mml:attr name="strategy">IDENTITY</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.objectstore.jdo.metamodel.facets.object.persistencecapable.JdoPersistenceCapableFacet" fqcn="org.apache.isis.objectstore.jdo.metamodel.facets.object.persistencecapable.JdoPersistenceCapableFacetAnnotation">
+ <mml:attr name="identityType">DATASTORE</mml:attr>
+ <mml:attr name="schema">simple</mml:attr>
+ <mml:attr name="table">SimpleObject</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.objectstore.jdo.metamodel.facets.object.version.JdoVersionFacet" fqcn="org.apache.isis.objectstore.jdo.metamodel.facets.object.version.JdoVersionFacetFromAnnotation"/>
+ </mml:facets>
+ <mml:properties>
+ <mml:prop id="datanucleusIdLong">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation" fqcn="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">NOWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusIdLong.ActionDomainEvent</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusIdLong.ActionDomainEvent</mml:attr>
+ <mml:attr name="intent.prop">EXECUTE</mml:attr>
+ <mml:attr name="methods">public java.lang.Long org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusIdLong.prop()</mml:attr>
+ <mml:attr name="onType">org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusIdLong</mml:attr>
+ <mml:attr name="returnType">java.lang.Long</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.bulk.BulkFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.bulk.BulkFacetForActionAnnotation">
+ <mml:attr name="value">REGULAR_ONLY</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.NotContributedFacetForActionLayoutAnnotation">
+ <mml:attr name="as">ACTION</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromMixinFacet</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.ActionPositionFacetForActionLayoutAnnotation">
+ <mml:attr name="position">BELOW</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">SAFE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObject${symbol_pound}datanucleusIdLong()</mml:attr>
+ <mml:attr name="originalText">Id</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet" fqcn="org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacetForContributee">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="inverted">false</mml:attr>
+ <mml:attr name="reason">Contributed property</mml:attr>
+ <mml:attr name="semantics">DISABLED</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">ANYWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.hidden.method.HideForContextFacet" fqcn="org.apache.isis.core.metamodel.facets.members.hidden.method.HideForContextFacetViaMethod">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="intent.hideProp">CHECK_IF_HIDDEN</mml:attr>
+ <mml:attr name="methods">public boolean org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusIdLong.hideProp()</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation">
+ <mml:attr name="name">Metadata</mml:attr>
+ <mml:attr name="originalName">Metadata</mml:attr>
+ <mml:attr name="sequence">800.1</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured">
+ <mml:attr name="promptStyle">INLINE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.labelat.LabelAtFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.propertylayout.LabelAtFacetForPropertyLayoutAnnotation">
+ <mml:attr name="label">LEFT</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.propertylayout.HiddenFacetForPropertyLayoutAnnotation" fqcn="org.apache.isis.core.metamodel.facets.properties.propertylayout.HiddenFacetForPropertyLayoutAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">ALL_TABLES</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.renderunchanged.UnchangingFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.propertylayout.UnchangingFacetOnPropertyFromLayoutProperties">
+ <mml:attr name="value">false</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:type>java.lang.Long</mml:type>
+ </mml:prop>
+ <mml:prop id="datanucleusVersionLong">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation" fqcn="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">NOWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusVersionLong.ActionDomainEvent</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusVersionLong.ActionDomainEvent</mml:attr>
+ <mml:attr name="intent.prop">EXECUTE</mml:attr>
+ <mml:attr name="methods">public java.lang.Long org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusVersionLong.prop()</mml:attr>
+ <mml:attr name="onType">org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusVersionLong</mml:attr>
+ <mml:attr name="returnType">java.lang.Long</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.bulk.BulkFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.bulk.BulkFacetForActionAnnotation">
+ <mml:attr name="value">REGULAR_ONLY</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.NotContributedFacetForActionLayoutAnnotation">
+ <mml:attr name="as">ACTION</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromMixinFacet</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.ActionPositionFacetForActionLayoutAnnotation">
+ <mml:attr name="position">BELOW</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">SAFE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObject${symbol_pound}datanucleusVersionLong()</mml:attr>
+ <mml:attr name="originalText">Version</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet" fqcn="org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacetForContributee">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="inverted">false</mml:attr>
+ <mml:attr name="reason">Contributed property</mml:attr>
+ <mml:attr name="semantics">DISABLED</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">ANYWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.hidden.method.HideForContextFacet" fqcn="org.apache.isis.core.metamodel.facets.members.hidden.method.HideForContextFacetViaMethod">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="intent.hideProp">CHECK_IF_HIDDEN</mml:attr>
+ <mml:attr name="methods">public boolean org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusVersionLong.hideProp()</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation">
+ <mml:attr name="name">Metadata</mml:attr>
+ <mml:attr name="originalName">Metadata</mml:attr>
+ <mml:attr name="sequence">800.2</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured">
+ <mml:attr name="promptStyle">INLINE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.labelat.LabelAtFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.propertylayout.LabelAtFacetForPropertyLayoutAnnotation">
+ <mml:attr name="label">LEFT</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.propertylayout.HiddenFacetForPropertyLayoutAnnotation" fqcn="org.apache.isis.core.metamodel.facets.properties.propertylayout.HiddenFacetForPropertyLayoutAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">ALL_TABLES</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.renderunchanged.UnchangingFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.propertylayout.UnchangingFacetOnPropertyFromLayoutProperties">
+ <mml:attr name="value">false</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:type>java.lang.Long</mml:type>
+ </mml:prop>
+ <mml:prop id="datanucleusVersionTimestamp">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation" fqcn="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">NOWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusVersionTimestamp.ActionDomainEvent</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusVersionTimestamp.ActionDomainEvent</mml:attr>
+ <mml:attr name="intent.prop">EXECUTE</mml:attr>
+ <mml:attr name="methods">public java.sql.Timestamp org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusVersionTimestamp.prop()</mml:attr>
+ <mml:attr name="onType">org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusVersionTimestamp</mml:attr>
+ <mml:attr name="returnType">java.sql.Timestamp</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.bulk.BulkFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.bulk.BulkFacetForActionAnnotation">
+ <mml:attr name="value">REGULAR_ONLY</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.NotContributedFacetForActionLayoutAnnotation">
+ <mml:attr name="as">ACTION</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromMixinFacet</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.ActionPositionFacetForActionLayoutAnnotation">
+ <mml:attr name="position">BELOW</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">SAFE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObject${symbol_pound}datanucleusVersionTimestamp()</mml:attr>
+ <mml:attr name="originalText">Version</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet" fqcn="org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacetForContributee">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="inverted">false</mml:attr>
+ <mml:attr name="reason">Contributed property</mml:attr>
+ <mml:attr name="semantics">DISABLED</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">ANYWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.hidden.method.HideForContextFacet" fqcn="org.apache.isis.core.metamodel.facets.members.hidden.method.HideForContextFacetViaMethod">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="intent.hideProp">CHECK_IF_HIDDEN</mml:attr>
+ <mml:attr name="methods">public boolean org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusVersionTimestamp.hideProp()</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation">
+ <mml:attr name="name">Metadata</mml:attr>
+ <mml:attr name="originalName">Metadata</mml:attr>
+ <mml:attr name="sequence">800.2</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured">
+ <mml:attr name="promptStyle">INLINE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.labelat.LabelAtFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.propertylayout.LabelAtFacetForPropertyLayoutAnnotation">
+ <mml:attr name="label">LEFT</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.propertylayout.HiddenFacetForPropertyLayoutAnnotation" fqcn="org.apache.isis.core.metamodel.facets.properties.propertylayout.HiddenFacetForPropertyLayoutAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">ALL_TABLES</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.renderunchanged.UnchangingFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.propertylayout.UnchangingFacetOnPropertyFromLayoutProperties">
+ <mml:attr name="value">false</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:type>java.sql.Timestamp</mml:type>
+ </mml:prop>
+ <mml:prop id="name">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObject${symbol_pound}name</mml:attr>
+ <mml:attr name="originalText">Name</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.fallback.NamedFacetDefault</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetFallBackToInline">
+ <mml:attr name="derived">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet" fqcn="org.apache.isis.objectstore.jdo.metamodel.facets.prop.column.MandatoryFacetDerivedFromJdoColumn">
+ <mml:attr name="inverted">false</mml:attr>
+ <mml:attr name="semantics">REQUIRED</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxLengthFacet" fqcn="org.apache.isis.objectstore.jdo.metamodel.facets.prop.column.MaxLengthFacetDerivedFromJdoColumn">
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">40</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.typicallen.fromtype.TypicalLengthFacetOnPropertyDerivedFromType">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="typicalLengthFacet">org.apache.isis.core.metamodel.facets.object.value.TypicalLengthFacetUsingParser</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.accessor.PropertyAccessorFacetViaAccessor">
+ <mml:attr name="intent.getName">ACCESSOR</mml:attr>
+ <mml:attr name="methods">public java.lang.String domainapp.modules.simple.dom.impl.SimpleObject.getName()</mml:attr>
+ <mml:attr name="onType">domainapp.modules.simple.dom.impl.SimpleObject</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.defaults.fromtype.PropertyDefaultFacetDerivedFromDefaultedFacet">
+ <mml:attr name="typeFacet">org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacetUsingDefaultsProvider</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.property.hidden.HiddenFacetForPropertyAnnotation" fqcn="org.apache.isis.core.metamodel.facets.properties.property.hidden.HiddenFacetForPropertyAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">NOWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.property.hidden.HiddenFacetForPropertyAnnotation" fqcn="org.apache.isis.core.metamodel.facets.properties.property.hidden.HiddenFacetForPropertyAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">NOWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.property.modify.PropertyDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.property.modify.PropertyDomainEventFacetForPropertyAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="getterFacet">org.apache.isis.core.metamodel.facets.properties.accessor.PropertyAccessorFacetViaAccessor</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.services.eventbus.PropertyDomainEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.renderunchanged.UnchangingFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.propertylayout.UnchangingFacetOnPropertyFromLayoutProperties">
+ <mml:attr name="value">false</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.update.clear.PropertyClearFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.property.modify.PropertyClearFacetForDomainEventFromPropertyAnnotation">
+ <mml:attr name="clearFacet">org.apache.isis.core.metamodel.facets.properties.update.clear.PropertyClearFacetViaSetterMethod</mml:attr>
+ <mml:attr name="getterFacet">org.apache.isis.core.metamodel.facets.properties.accessor.PropertyAccessorFacetViaAccessor</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.properties.update.clear.PropertyClearFacetViaSetterMethod</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.services.eventbus.PropertyDomainEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.update.init.PropertyInitializationFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.update.init.PropertyInitializationFacetViaSetterMethod">
+ <mml:attr name="intent.setName">MODIFY_PROPERTY</mml:attr>
+ <mml:attr name="methods">public void domainapp.modules.simple.dom.impl.SimpleObject.setName(java.lang.String)</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.property.modify.PropertySetterFacetForDomainEventFromPropertyAnnotation">
+ <mml:attr name="getterFacet">org.apache.isis.core.metamodel.facets.properties.accessor.PropertyAccessorFacetViaAccessor</mml:attr>
+ <mml:attr name="setterFacet">org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacetViaSetterMethod</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacetViaSetterMethod</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.services.eventbus.PropertyDomainEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.validating.PropertyValidateFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.validating.dflt.PropertyValidateFacetDefault">
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:type>java.lang.String</mml:type>
+ </mml:prop>
+ <mml:prop id="notes">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObject${symbol_pound}notes</mml:attr>
+ <mml:attr name="originalText">Notes</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.fallback.NamedFacetDefault</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.property.disabled.DisabledFacetForPropertyAnnotationInvertedSemantics">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="inverted">true</mml:attr>
+ <mml:attr name="semantics">ENABLED</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">EVERYWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetFallBackToInline">
+ <mml:attr name="derived">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet" fqcn="org.apache.isis.objectstore.jdo.metamodel.facets.prop.column.MandatoryFacetDerivedFromJdoColumn">
+ <mml:attr name="inverted">true</mml:attr>
+ <mml:attr name="semantics">OPTIONAL</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxLengthFacet" fqcn="org.apache.isis.objectstore.jdo.metamodel.facets.prop.column.MaxLengthFacetDerivedFromJdoColumn">
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">4000</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.typicallen.fromtype.TypicalLengthFacetOnPropertyDerivedFromType">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="typicalLengthFacet">org.apache.isis.core.metamodel.facets.object.value.TypicalLengthFacetUsingParser</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.accessor.PropertyAccessorFacetViaAccessor">
+ <mml:attr name="intent.getNotes">ACCESSOR</mml:attr>
+ <mml:attr name="methods">public java.lang.String domainapp.modules.simple.dom.impl.SimpleObject.getNotes()</mml:attr>
+ <mml:attr name="onType">domainapp.modules.simple.dom.impl.SimpleObject</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.defaults.fromtype.PropertyDefaultFacetDerivedFromDefaultedFacet">
+ <mml:attr name="typeFacet">org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacetUsingDefaultsProvider</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.property.hidden.HiddenFacetForPropertyAnnotation" fqcn="org.apache.isis.core.metamodel.facets.properties.property.hidden.HiddenFacetForPropertyAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">NOWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.property.hidden.HiddenFacetForPropertyAnnotation" fqcn="org.apache.isis.core.metamodel.facets.properties.property.hidden.HiddenFacetForPropertyAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">NOWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.property.modify.PropertyDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.property.modify.PropertyDomainEventFacetForPropertyAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="getterFacet">org.apache.isis.core.metamodel.facets.properties.accessor.PropertyAccessorFacetViaAccessor</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.services.eventbus.PropertyDomainEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.renderunchanged.UnchangingFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.propertylayout.UnchangingFacetOnPropertyFromLayoutProperties">
+ <mml:attr name="value">false</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.update.clear.PropertyClearFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.property.modify.PropertyClearFacetForDomainEventFromPropertyAnnotation">
+ <mml:attr name="clearFacet">org.apache.isis.core.metamodel.facets.properties.update.clear.PropertyClearFacetViaSetterMethod</mml:attr>
+ <mml:attr name="getterFacet">org.apache.isis.core.metamodel.facets.properties.accessor.PropertyAccessorFacetViaAccessor</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.properties.update.clear.PropertyClearFacetViaSetterMethod</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.services.eventbus.PropertyDomainEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.update.init.PropertyInitializationFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.update.init.PropertyInitializationFacetViaSetterMethod">
+ <mml:attr name="intent.setNotes">MODIFY_PROPERTY</mml:attr>
+ <mml:attr name="methods">public void domainapp.modules.simple.dom.impl.SimpleObject.setNotes(java.lang.String)</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.property.modify.PropertySetterFacetForDomainEventFromPropertyAnnotation">
+ <mml:attr name="getterFacet">org.apache.isis.core.metamodel.facets.properties.accessor.PropertyAccessorFacetViaAccessor</mml:attr>
+ <mml:attr name="setterFacet">org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacetViaSetterMethod</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacetViaSetterMethod</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.services.eventbus.PropertyDomainEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.validating.PropertyValidateFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.validating.dflt.PropertyValidateFacetDefault">
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:type>java.lang.String</mml:type>
+ </mml:prop>
+ </mml:properties>
+ <mml:collections/>
+ <mml:actions>
+ <mml:act id="delete">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation" fqcn="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">NOWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation" fqcn="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">NOWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.services.eventbus.ActionDomainEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">org.apache.isis.applib.services.eventbus.ActionDomainEvent.Default</mml:attr>
+ <mml:attr name="intent.delete">EXECUTE</mml:attr>
+ <mml:attr name="methods">public void domainapp.modules.simple.dom.impl.SimpleObject.delete()</mml:attr>
+ <mml:attr name="onType">domainapp.modules.simple.dom.impl.SimpleObject</mml:attr>
+ <mml:attr name="returnType">void</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.bulk.BulkFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.bulk.BulkFacetForActionAnnotation">
+ <mml:attr name="value">REGULAR_ONLY</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacetFallback">
+ <mml:attr name="position">BELOW</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">NON_IDEMPOTENT_ARE_YOU_SURE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObject${symbol_pound}delete()</mml:attr>
+ <mml:attr name="originalText">Delete</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.fallback.NamedFacetDefault</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetFallBackToInline">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetFallBackToInline</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.renderunchanged.UnchangingFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.propertylayout.UnchangingFacetOnPropertyFromLayoutProperties">
+ <mml:attr name="value">false</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:returnType>void</mml:returnType>
+ <mml:params/>
+ </mml:act>
+ <mml:act id="downloadJdoMetadata">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation" fqcn="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">NOWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.core.metamodel.services.jdosupport.Persistable_downloadJdoMetadata.ActionDomainEvent</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">org.apache.isis.core.metamodel.services.jdosupport.Persistable_downloadJdoMetadata.ActionDomainEvent</mml:attr>
+ <mml:attr name="intent.act">EXECUTE</mml:attr>
+ <mml:attr name="methods">public org.apache.isis.applib.value.Clob org.apache.isis.core.metamodel.services.jdosupport.Persistable_downloadJdoMetadata.act(java.lang.String) throws javax.xml.bind.JAXBException,java.io.IOException</mml:attr>
+ <mml:attr name="onType">org.apache.isis.core.metamodel.services.jdosupport.Persistable_downloadJdoMetadata</mml:attr>
+ <mml:attr name="returnType">org.apache.isis.applib.value.Clob</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.bulk.BulkFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.bulk.BulkFacetForActionAnnotation">
+ <mml:attr name="value">REGULAR_ONLY</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.NotContributedFacetForActionLayoutAnnotation">
+ <mml:attr name="as">ASSOCIATION</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromMixinFacet</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.ActionPositionFacetForActionLayoutAnnotation">
+ <mml:attr name="position">PANEL_DROPDOWN</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.prototype.PrototypeFacetForActionAnnotation">
+ <mml:attr name="deploymentType">PRODUCTION</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">SAFE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObject${symbol_pound}downloadJdoMetadata()</mml:attr>
+ <mml:attr name="originalText">Download Jdo Metadata</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.CssClassFaFacetForActionLayoutAnnotation">
+ <mml:attr name="position">LEFT</mml:attr>
+ <mml:attr name="value">fa fa-fw fa-download</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation">
+ <mml:attr name="name">datanucleusIdLong</mml:attr>
+ <mml:attr name="originalName">datanucleusIdLong</mml:attr>
+ <mml:attr name="sequence">710.1</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetFallBackToInline">
+ <mml:attr name="derived">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.renderunchanged.UnchangingFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.propertylayout.UnchangingFacetOnPropertyFromLayoutProperties">
+ <mml:attr name="value">false</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:returnType>org.apache.isis.applib.value.Clob</mml:returnType>
+ <mml:params>
+ <mml:param xsi:type="mml:scalarParam" id="fileName" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.defaults.ActionDefaultsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.defaults.fromtype.ActionParameterDefaultFacetDerivedFromTypeFacets">
+ <mml:attr name="defaultFacets">org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacetUsingDefaultsProvider</mml:attr>
+ <mml:attr name="derived">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.describedas.annotderived.DescribedAsFacetOnParameterDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">org.apache.isis.core.metamodel.services.jdosupport.Persistable_downloadJdoMetadata${symbol_pound}act(java.lang.String)</mml:attr>
+ <mml:attr name="originalText">File name</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.param.layout.NamedFacetForParameterLayoutAnnotation</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.labelat.LabelAtFacet" fqcn="org.apache.isis.core.metamodel.facets.param.layout.LabelAtFacetForParameterLayoutAnnotation">
+ <mml:attr name="label">DEFAULT</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.param.layout.LabelAtFacetForParameterLayoutAnnotation</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet" fqcn="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault">
+ <mml:attr name="inverted">false</mml:attr>
+ <mml:attr name="semantics">REQUIRED</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet" fqcn="org.apache.isis.core.metamodel.facets.param.typicallen.fromtype.TypicalLengthFacetOnParameterDerivedFromType">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="typicalLengthFacet">org.apache.isis.core.metamodel.facets.object.value.TypicalLengthFacetUsingParser</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.param.typicallen.fromtype.TypicalLengthFacetOnParameterDerivedFromType</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.param.defaults.ActionParameterDefaultsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.defaults.methodnum.ActionParameterDefaultsFacetViaMethod">
+ <mml:attr name="intent.default0Act">DEFAULTS</mml:attr>
+ <mml:attr name="methods">public java.lang.String org.apache.isis.core.metamodel.services.jdosupport.Persistable_downloadJdoMetadata.default0Act()</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:type>java.lang.String</mml:type>
+ </mml:param>
+ </mml:params>
+ </mml:act>
+ <mml:act id="downloadLayoutXml">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation" fqcn="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">NOWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.services.layout.Object_downloadLayoutXml.ActionDomainEvent</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">org.apache.isis.applib.services.layout.Object_downloadLayoutXml.ActionDomainEvent</mml:attr>
+ <mml:attr name="intent.act">EXECUTE</mml:attr>
+ <mml:attr name="methods">public java.lang.Object org.apache.isis.applib.services.layout.Object_downloadLayoutXml.act(java.lang.String,org.apache.isis.applib.services.layout.LayoutService${symbol_dollar}Style)</mml:attr>
+ <mml:attr name="onType">org.apache.isis.applib.services.layout.Object_downloadLayoutXml</mml:attr>
+ <mml:attr name="returnType">java.lang.Object</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.bulk.BulkFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.bulk.BulkFacetForActionAnnotation">
+ <mml:attr name="value">REGULAR_ONLY</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.NotContributedFacetForActionLayoutAnnotation">
+ <mml:attr name="as">ASSOCIATION</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromMixinFacet</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.ActionPositionFacetForActionLayoutAnnotation">
+ <mml:attr name="position">PANEL_DROPDOWN</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.prototype.PrototypeFacetForActionAnnotation">
+ <mml:attr name="deploymentType">PRODUCTION</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">SAFE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObject${symbol_pound}downloadLayoutXml()</mml:attr>
+ <mml:attr name="originalText">Download Layout Xml</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.CssClassFaFacetForActionLayoutAnnotation">
+ <mml:attr name="position">LEFT</mml:attr>
+ <mml:attr name="value">fa fa-fw fa-download</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation">
+ <mml:attr name="name">datanucleusIdLong</mml:attr>
+ <mml:attr name="originalName">datanucleusIdLong</mml:attr>
+ <mml:attr name="sequence">700.1</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetFallBackToInline">
+ <mml:attr name="derived">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.renderunchanged.UnchangingFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.propertylayout.UnchangingFacetOnPropertyFromLayoutProperties">
+ <mml:attr name="value">false</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:returnType>java.lang.Object</mml:returnType>
+ <mml:params>
+ <mml:param xsi:type="mml:scalarParam" id="fileName" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.defaults.ActionDefaultsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.defaults.fromtype.ActionParameterDefaultFacetDerivedFromTypeFacets">
+ <mml:attr name="defaultFacets">org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacetUsingDefaultsProvider;org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacetUsingDefaultsProvider</mml:attr>
+ <mml:attr name="derived">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.describedas.annotderived.DescribedAsFacetOnParameterDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">org.apache.isis.applib.services.layout.Object_downloadLayoutXml${symbol_pound}act(java.lang.String,org.apache.isis.applib.services.layout.LayoutService${symbol_dollar}Style)</mml:attr>
+ <mml:attr name="originalText">File name</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.param.layout.NamedFacetForParameterLayoutAnnotation</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.labelat.LabelAtFacet" fqcn="org.apache.isis.core.metamodel.facets.param.layout.LabelAtFacetForParameterLayoutAnnotation">
+ <mml:attr name="label">DEFAULT</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.param.layout.LabelAtFacetForParameterLayoutAnnotation</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet" fqcn="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault">
+ <mml:attr name="inverted">false</mml:attr>
+ <mml:attr name="semantics">REQUIRED</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet" fqcn="org.apache.isis.core.metamodel.facets.param.typicallen.fromtype.TypicalLengthFacetOnParameterDerivedFromType">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="typicalLengthFacet">org.apache.isis.core.metamodel.facets.object.value.TypicalLengthFacetUsingParser</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.param.typicallen.fromtype.TypicalLengthFacetOnParameterDerivedFromType</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.param.defaults.ActionParameterDefaultsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.defaults.methodnum.ActionParameterDefaultsFacetViaMethod">
+ <mml:attr name="intent.default0Act">DEFAULTS</mml:attr>
+ <mml:attr name="methods">public java.lang.String org.apache.isis.applib.services.layout.Object_downloadLayoutXml.default0Act()</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:type>java.lang.String</mml:type>
+ </mml:param>
+ <mml:param xsi:type="mml:scalarParam" id="style" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.defaults.ActionDefaultsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.defaults.fromtype.ActionParameterDefaultFacetDerivedFromTypeFacets">
+ <mml:attr name="defaultFacets">org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacetUsingDefaultsProvider;org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacetUsingDefaultsProvider</mml:attr>
+ <mml:attr name="derived">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.describedas.annotderived.DescribedAsFacetOnParameterDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet" fqcn="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault">
+ <mml:attr name="inverted">false</mml:attr>
+ <mml:attr name="semantics">REQUIRED</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet" fqcn="org.apache.isis.core.metamodel.facets.param.typicallen.fromtype.TypicalLengthFacetOnParameterDerivedFromType">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="typicalLengthFacet">org.apache.isis.core.metamodel.facets.object.value.TypicalLengthFacetUsingParser</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.param.typicallen.fromtype.TypicalLengthFacetOnParameterDerivedFromType</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.param.choices.ActionParameterChoicesFacet" fqcn="org.apache.isis.core.metamodel.facets.param.choices.enums.ActionParameterChoicesFacetDerivedFromChoicesFacet"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.param.defaults.ActionParameterDefaultsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.defaults.methodnum.ActionParameterDefaultsFacetViaMethod">
+ <mml:attr name="intent.default1Act">DEFAULTS</mml:attr>
+ <mml:attr name="methods">public org.apache.isis.applib.services.layout.LayoutService${symbol_dollar}Style org.apache.isis.applib.services.layout.Object_downloadLayoutXml.default1Act()</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:type>org.apache.isis.applib.services.layout.LayoutService${symbol_dollar}Style</mml:type>
+ </mml:param>
+ </mml:params>
+ </mml:act>
+ <mml:act id="openRestApi">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation" fqcn="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">NOWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.services.layout.Object_openRestApi.ActionDomainEvent</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">org.apache.isis.applib.services.layout.Object_openRestApi.ActionDomainEvent</mml:attr>
+ <mml:attr name="intent.act">EXECUTE</mml:attr>
+ <mml:attr name="methods">public java.net.URL org.apache.isis.applib.services.layout.Object_openRestApi.act() throws java.net.MalformedURLException</mml:attr>
+ <mml:attr name="onType">org.apache.isis.applib.services.layout.Object_openRestApi</mml:attr>
+ <mml:attr name="returnType">java.net.URL</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.bulk.BulkFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.bulk.BulkFacetForActionAnnotation">
+ <mml:attr name="value">REGULAR_ONLY</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.NotContributedFacetForActionLayoutAnnotation">
+ <mml:attr name="as">ASSOCIATION</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromMixinFacet</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.ActionPositionFacetForActionLayoutAnnotation">
+ <mml:attr name="position">PANEL_DROPDOWN</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.prototype.PrototypeFacetForActionAnnotation">
+ <mml:attr name="deploymentType">PRODUCTION</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">SAFE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObject${symbol_pound}openRestApi()</mml:attr>
+ <mml:attr name="originalText">Open Rest Api</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.CssClassFaFacetForActionLayoutAnnotation">
+ <mml:attr name="position">LEFT</mml:attr>
+ <mml:attr name="value">fa fa-fw fa-external-link</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation">
+ <mml:attr name="name">datanucleusIdLong</mml:attr>
+ <mml:attr name="originalName">datanucleusIdLong</mml:attr>
+ <mml:attr name="sequence">750.1</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetFallBackToInline">
+ <mml:attr name="derived">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.renderunchanged.UnchangingFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.propertylayout.UnchangingFacetOnPropertyFromLayoutProperties">
+ <mml:attr name="value">false</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:returnType>java.net.URL</mml:returnType>
+ <mml:params/>
+ </mml:act>
+ <mml:act id="rebuildMetamodel">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation" fqcn="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">NOWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.services.layout.Object_rebuildMetamodel.ActionDomainEvent</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">org.apache.isis.applib.services.layout.Object_rebuildMetamodel.ActionDomainEvent</mml:attr>
+ <mml:attr name="intent.act">EXECUTE</mml:attr>
+ <mml:attr name="methods">public void org.apache.isis.applib.services.layout.Object_rebuildMetamodel.act()</mml:attr>
+ <mml:attr name="onType">org.apache.isis.applib.services.layout.Object_rebuildMetamodel</mml:attr>
+ <mml:attr name="returnType">void</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.bulk.BulkFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.bulk.BulkFacetForActionAnnotation">
+ <mml:attr name="value">REGULAR_ONLY</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.NotContributedFacetForActionLayoutAnnotation">
+ <mml:attr name="as">ASSOCIATION</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromMixinFacet</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.ActionPositionFacetForActionLayoutAnnotation">
+ <mml:attr name="position">PANEL_DROPDOWN</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.prototype.PrototypeFacetForActionAnnotation">
+ <mml:attr name="deploymentType">PRODUCTION</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">IDEMPOTENT</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObject${symbol_pound}rebuildMetamodel()</mml:attr>
+ <mml:attr name="originalText">Rebuild Metamodel</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.CssClassFaFacetForActionLayoutAnnotation">
+ <mml:attr name="position">LEFT</mml:attr>
+ <mml:attr name="value">fa fa-fw fa-refresh</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation">
+ <mml:attr name="name">datanucleusIdLong</mml:attr>
+ <mml:attr name="originalName">datanucleusIdLong</mml:attr>
+ <mml:attr name="sequence">800.1</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetFallBackToInline">
+ <mml:attr name="derived">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.renderunchanged.UnchangingFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.propertylayout.UnchangingFacetOnPropertyFromLayoutProperties">
+ <mml:attr name="value">false</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:returnType>void</mml:returnType>
+ <mml:params/>
+ </mml:act>
+ <mml:act id="updateName">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.associateWith.AssociatedWithFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.associateWith.AssociatedWithFacetForActionAnnotation">
+ <mml:attr name="value">name</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation" fqcn="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">NOWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation" fqcn="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">NOWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.services.eventbus.ActionDomainEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">org.apache.isis.applib.services.eventbus.ActionDomainEvent.Default</mml:attr>
+ <mml:attr name="intent.updateName">EXECUTE</mml:attr>
+ <mml:attr name="methods">public domainapp.modules.simple.dom.impl.SimpleObject domainapp.modules.simple.dom.impl.SimpleObject.updateName(java.lang.String)</mml:attr>
+ <mml:attr name="onType">domainapp.modules.simple.dom.impl.SimpleObject</mml:attr>
+ <mml:attr name="returnType">domainapp.modules.simple.dom.impl.SimpleObject</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.bulk.BulkFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.bulk.BulkFacetForActionAnnotation">
+ <mml:attr name="value">REGULAR_ONLY</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.command.CommandFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.command.CommandFacetForActionAnnotation">
+ <mml:attr name="disabled">false</mml:attr>
+ <mml:attr name="executeIn">FOREGROUND</mml:attr>
+ <mml:attr name="persistence">PERSISTED</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacetFallback">
+ <mml:attr name="position">BELOW</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.publish.PublishedActionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.publishing.PublishedActionFacetForActionAnnotation">
+ <mml:attr name="value">org.apache.isis.core.metamodel.facets.actions.publish.PublishedActionPayloadFactoryDefault</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">IDEMPOTENT</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObject${symbol_pound}updateName()</mml:attr>
+ <mml:attr name="originalText">Update Name</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.fallback.NamedFacetDefault</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetForActionAnnotation">
+ <mml:attr name="name">name</mml:attr>
+ <mml:attr name="originalName">name</mml:attr>
+ <mml:attr name="sequence">1</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetFallBackToInline">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetFallBackToInline</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.renderunchanged.UnchangingFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.propertylayout.UnchangingFacetOnPropertyFromLayoutProperties">
+ <mml:attr name="value">false</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:returnType>domainapp.modules.simple.dom.impl.SimpleObject</mml:returnType>
+ <mml:params>
+ <mml:param xsi:type="mml:scalarParam" id="name" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.defaults.ActionDefaultsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.defaults.fromtype.ActionParameterDefaultFacetDerivedFromTypeFacets">
+ <mml:attr name="defaultFacets">org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacetUsingDefaultsProvider</mml:attr>
+ <mml:attr name="derived">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.validate.ActionParameterValidationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.validate.method.ActionParameterValidationFacetViaMethod">
+ <mml:attr name="intent.validate0UpdateName">CHECK_IF_VALID</mml:attr>
+ <mml:attr name="methods">public org.apache.isis.applib.services.i18n.TranslatableString domainapp.modules.simple.dom.impl.SimpleObject.validate0UpdateName(java.lang.String)</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actions.validate.method.ActionParameterValidationFacetViaMethod</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.describedas.annotderived.DescribedAsFacetOnParameterDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObject${symbol_pound}updateName(java.lang.String)</mml:attr>
+ <mml:attr name="originalText">Name</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.param.layout.NamedFacetForParameterLayoutAnnotation</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.labelat.LabelAtFacet" fqcn="org.apache.isis.core.metamodel.facets.param.layout.LabelAtFacetForParameterLayoutAnnotation">
+ <mml:attr name="label">DEFAULT</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.param.layout.LabelAtFacetForParameterLayoutAnnotation</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet" fqcn="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault">
+ <mml:attr name="inverted">false</mml:attr>
+ <mml:attr name="semantics">REQUIRED</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxLengthFacet" fqcn="org.apache.isis.core.metamodel.facets.param.parameter.maxlen.MaxLengthFacetForParameterAnnotation">
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">40</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet" fqcn="org.apache.isis.core.metamodel.facets.param.typicallen.fromtype.TypicalLengthFacetOnParameterDerivedFromType">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="typicalLengthFacet">org.apache.isis.core.metamodel.facets.object.value.TypicalLengthFacetUsingParser</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.param.typicallen.fromtype.TypicalLengthFacetOnParameterDerivedFromType</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.param.defaults.ActionParameterDefaultsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.defaults.methodnum.ActionParameterDefaultsFacetViaMethod">
+ <mml:attr name="intent.default0UpdateName">DEFAULTS</mml:attr>
+ <mml:attr name="methods">public java.lang.String domainapp.modules.simple.dom.impl.SimpleObject.default0UpdateName()</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:type>java.lang.String</mml:type>
+ </mml:param>
+ </mml:params>
+ </mml:act>
+ </mml:actions>
+ </mml:domainClass>
+ <mml:domainClass id="domainapp.modules.simple.dom.impl.SimpleObjects" service="true">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObjects</mml:attr>
+ <mml:attr name="originalText">Simple Objects</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.object.domainservicelayout.NamedFacetForDomainServiceLayoutAnnotation</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.domainservice.DomainServiceFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainservice.annotation.DomainServiceFacetAnnotation">
+ <mml:attr name="natureOfService">VIEW_MENU_ONLY</mml:attr>
+ <mml:attr name="repositoryFor">domainapp.modules.simple.dom.impl.SimpleObject</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.domainservicelayout.DomainServiceLayoutFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainservicelayout.annotation.DomainServiceLayoutFacetAnnotation">
+ <mml:attr name="menuBar">PRIMARY</mml:attr>
+ <mml:attr name="menuOrder">10</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.grid.GridFacet" fqcn="org.apache.isis.core.metamodel.facets.object.grid.GridFacetDefault"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.icon.IconFacet" fqcn="org.apache.isis.core.metamodel.facets.object.domainservice.annotation.IconFacetDerivedFromDomainServiceAnnotation">
+ <mml:attr name="repositoryFor">domainapp.modules.simple.dom.impl.SimpleObject</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.membergroups.MemberGroupLayoutFacet" fqcn="org.apache.isis.core.metamodel.facets.object.membergroups.annotprop.MemberGroupLayoutFacetFallback">
+ <mml:attr name="columns">[4,0,0,8]</mml:attr>
+ <mml:attr name="left">General</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.notpersistable.NotPersistableFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.NotPersistableFacetNull">
+ <mml:attr name="disabling">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectspecid.classname.ObjectSpecIdFacetDerivedFromDomainServiceAnnotationElseGetId">
+ <mml:attr name="value">simple.SimpleObjectMenu</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectvalidprops.ObjectValidPropertiesFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectvalidprops.impl.ObjectValidPropertiesFacetImpl">
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.paged.PagedFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.PagedFacetFromConfiguration">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">25</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.plural.PluralFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.PluralFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObjects</mml:attr>
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="originalText">Simple Objects</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:actions>
+ <mml:act id="create">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation" fqcn="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">NOWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation" fqcn="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">NOWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">domainapp.modules.simple.dom.impl.SimpleObjects.CreateDomainEvent</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">domainapp.modules.simple.dom.impl.SimpleObjects.CreateDomainEvent</mml:attr>
+ <mml:attr name="intent.create">EXECUTE</mml:attr>
+ <mml:attr name="methods">public domainapp.modules.simple.dom.impl.SimpleObject domainapp.modules.simple.dom.impl.SimpleObjects.create(java.lang.String)</mml:attr>
+ <mml:attr name="onType">domainapp.modules.simple.dom.impl.SimpleObjects</mml:attr>
+ <mml:attr name="returnType">domainapp.modules.simple.dom.impl.SimpleObject</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.bulk.BulkFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.bulk.BulkFacetForActionAnnotation">
+ <mml:attr name="value">REGULAR_ONLY</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromDomainServiceFacet">
+ <mml:attr name="as">EITHER</mml:attr>
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="natureOfService">VIEW_MENU_ONLY</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacetFallback">
+ <mml:attr name="position">BELOW</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">NON_IDEMPOTENT</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObjects${symbol_pound}create()</mml:attr>
+ <mml:attr name="originalText">Create</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.fallback.NamedFacetDefault</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation">
+ <mml:attr name="sequence">3</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetFallBackToInline">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetFallBackToInline</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.renderunchanged.UnchangingFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.propertylayout.UnchangingFacetOnPropertyFromLayoutProperties">
+ <mml:attr name="value">false</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:returnType>domainapp.modules.simple.dom.impl.SimpleObject</mml:returnType>
+ <mml:params>
+ <mml:param xsi:type="mml:scalarParam" id="name" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.defaults.ActionDefaultsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.defaults.fromtype.ActionParameterDefaultFacetDerivedFromTypeFacets">
+ <mml:attr name="defaultFacets">org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacetUsingDefaultsProvider</mml:attr>
+ <mml:attr name="derived">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.describedas.annotderived.DescribedAsFacetOnParameterDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObjects${symbol_pound}create(java.lang.String)</mml:attr>
+ <mml:attr name="originalText">Name</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.param.layout.NamedFacetForParameterLayoutAnnotation</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.labelat.LabelAtFacet" fqcn="org.apache.isis.core.metamodel.facets.param.layout.LabelAtFacetForParameterLayoutAnnotation">
+ <mml:attr name="label">DEFAULT</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.param.layout.LabelAtFacetForParameterLayoutAnnotation</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet" fqcn="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault">
+ <mml:attr name="inverted">false</mml:attr>
+ <mml:attr name="semantics">REQUIRED</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet" fqcn="org.apache.isis.core.metamodel.facets.param.typicallen.fromtype.TypicalLengthFacetOnParameterDerivedFromType">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="typicalLengthFacet">org.apache.isis.core.metamodel.facets.object.value.TypicalLengthFacetUsingParser</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.param.typicallen.fromtype.TypicalLengthFacetOnParameterDerivedFromType</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:type>java.lang.String</mml:type>
+ </mml:param>
+ </mml:params>
+ </mml:act>
+ <mml:act id="findByName">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet" fqcn="org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetInferredFromGenerics">
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetInferredFromGenerics</mml:attr>
+ <mml:attr name="value">domainapp.modules.simple.dom.impl.SimpleObject</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation" fqcn="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">NOWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation" fqcn="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">NOWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.services.eventbus.ActionDomainEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">org.apache.isis.applib.services.eventbus.ActionDomainEvent.Default</mml:attr>
+ <mml:attr name="intent.findByName">EXECUTE</mml:attr>
+ <mml:attr name="methods">public java.util.List<domainapp.modules.simple.dom.impl.SimpleObject> domainapp.modules.simple.dom.impl.SimpleObjects.findByName(java.lang.String)</mml:attr>
+ <mml:attr name="onType">domainapp.modules.simple.dom.impl.SimpleObjects</mml:attr>
+ <mml:attr name="returnType">java.util.List</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.bulk.BulkFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.bulk.BulkFacetForActionAnnotation">
+ <mml:attr name="value">REGULAR_ONLY</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromDomainServiceFacet">
+ <mml:attr name="as">EITHER</mml:attr>
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="natureOfService">VIEW_MENU_ONLY</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.ActionPositionFacetForActionLayoutAnnotation">
+ <mml:attr name="position">BELOW</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">SAFE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObjects${symbol_pound}findByName()</mml:attr>
+ <mml:attr name="originalText">Find By Name</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.fallback.NamedFacetDefault</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation">
+ <mml:attr name="sequence">2</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.BookmarkPolicyFacetForActionLayoutAnnotation">
+ <mml:attr name="bookmarkPolicy">AS_ROOT</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetFallBackToInline">
+ <mml:attr name="derived">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.renderunchanged.UnchangingFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.propertylayout.UnchangingFacetOnPropertyFromLayoutProperties">
+ <mml:attr name="value">false</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:returnType>java.util.List</mml:returnType>
+ <mml:params>
+ <mml:param xsi:type="mml:scalarParam" id="name" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.defaults.ActionDefaultsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.defaults.fromtype.ActionParameterDefaultFacetDerivedFromTypeFacets">
+ <mml:attr name="defaultFacets">org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacetUsingDefaultsProvider</mml:attr>
+ <mml:attr name="derived">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.describedas.annotderived.DescribedAsFacetOnParameterDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObjects${symbol_pound}findByName(java.lang.String)</mml:attr>
+ <mml:attr name="originalText">Name</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.param.layout.NamedFacetForParameterLayoutAnnotation</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.labelat.LabelAtFacet" fqcn="org.apache.isis.core.metamodel.facets.param.layout.LabelAtFacetForParameterLayoutAnnotation">
+ <mml:attr name="label">DEFAULT</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.param.layout.LabelAtFacetForParameterLayoutAnnotation</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet" fqcn="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault">
+ <mml:attr name="inverted">false</mml:attr>
+ <mml:attr name="semantics">REQUIRED</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet" fqcn="org.apache.isis.core.metamodel.facets.param.typicallen.fromtype.TypicalLengthFacetOnParameterDerivedFromType">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="typicalLengthFacet">org.apache.isis.core.metamodel.facets.object.value.TypicalLengthFacetUsingParser</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.param.typicallen.fromtype.TypicalLengthFacetOnParameterDerivedFromType</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:type>java.lang.String</mml:type>
+ </mml:param>
+ </mml:params>
+ </mml:act>
+ <mml:act id="listAll">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet" fqcn="org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetInferredFromGenerics">
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetInferredFromGenerics</mml:attr>
+ <mml:attr name="value">domainapp.modules.simple.dom.impl.SimpleObject</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation" fqcn="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">NOWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation" fqcn="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">NOWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.services.eventbus.ActionDomainEvent.Default</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">org.apache.isis.applib.services.eventbus.ActionDomainEvent.Default</mml:attr>
+ <mml:attr name="intent.listAll">EXECUTE</mml:attr>
+ <mml:attr name="methods">public java.util.List<domainapp.modules.simple.dom.impl.SimpleObject> domainapp.modules.simple.dom.impl.SimpleObjects.listAll()</mml:attr>
+ <mml:attr name="onType">domainapp.modules.simple.dom.impl.SimpleObjects</mml:attr>
+ <mml:attr name="returnType">java.util.List</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.bulk.BulkFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.bulk.BulkFacetForActionAnnotation">
+ <mml:attr name="value">REGULAR_ONLY</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromDomainServiceFacet">
+ <mml:attr name="as">EITHER</mml:attr>
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="natureOfService">VIEW_MENU_ONLY</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.ActionPositionFacetForActionLayoutAnnotation">
+ <mml:attr name="position">BELOW</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">SAFE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">domainapp.modules.simple.dom.impl.SimpleObjects${symbol_pound}listAll()</mml:attr>
+ <mml:attr name="originalText">List All</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.fallback.NamedFacetDefault</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation">
+ <mml:attr name="sequence">1</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.BookmarkPolicyFacetForActionLayoutAnnotation">
+ <mml:attr name="bookmarkPolicy">AS_ROOT</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetFallBackToInline">
+ <mml:attr name="derived">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.renderunchanged.UnchangingFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.propertylayout.UnchangingFacetOnPropertyFromLayoutProperties">
+ <mml:attr name="value">false</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:returnType>java.util.List</mml:returnType>
+ <mml:params/>
+ </mml:act>
+ </mml:actions>
+ </mml:domainClass>
+ <mml:domainClass id="java.lang.Long">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred">
+ <mml:attr name="escaped">true</mml:attr>
+ <mml:attr name="value">Long</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacet" fqcn="org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacetUsingDefaultsProvider"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacet" fqcn="org.apache.isis.core.metamodel.facets.object.encodeable.encoder.EncodableFacetUsingEncoderDecoder"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.grid.GridFacet" fqcn="org.apache.isis.core.metamodel.facets.object.grid.GridFacetDefault"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.immutable.ImmutableFacet" fqcn="org.apache.isis.core.metamodel.facets.object.value.ImmutableFacetViaValueSemantics">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.membergroups.MemberGroupLayoutFacet" fqcn="org.apache.isis.core.metamodel.facets.object.membergroups.annotprop.MemberGroupLayoutFacetFallback">
+ <mml:attr name="columns">[4,0,0,8]</mml:attr>
+ <mml:attr name="left">General</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.notpersistable.NotPersistableFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.NotPersistableFacetNull">
+ <mml:attr name="disabling">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectspecid.classname.ObjectSpecIdFacetDerivedFromClassName">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">java.lang.Long</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectvalidprops.ObjectValidPropertiesFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectvalidprops.impl.ObjectValidPropertiesFacetImpl">
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.paged.PagedFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.PagedFacetFromConfiguration">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">25</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.parseable.ParseableFacet" fqcn="org.apache.isis.core.metamodel.facets.object.parseable.parser.ParseableFacetUsingParser"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.plural.PluralFacet" fqcn="org.apache.isis.core.metamodel.facets.object.plural.inferred.PluralFacetInferred">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">Longs</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.title.TitleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.title.parser.TitleFacetUsingParser"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.value.EqualByContentFacet" fqcn="org.apache.isis.core.metamodel.facets.object.value.EqualByContentFacetViaValueSemantics"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.value.ValueFacet" fqcn="org.apache.isis.core.metamodel.facets.object.value.vsp.ValueFacetUsingSemanticsProvider"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxLengthFacet" fqcn="org.apache.isis.core.metamodel.facets.object.value.MaxLengthFacetUsingParser2">
+ <mml:attr name="parser">org.apache.isis.core.metamodel.facets.value.longs.LongWrapperValueSemanticsProvider</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">18</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet" fqcn="org.apache.isis.core.metamodel.facets.object.value.TypicalLengthFacetUsingParser"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.value.longs.LongValueFacet" fqcn="org.apache.isis.core.metamodel.facets.value.longs.LongWrapperValueSemanticsProvider">
+ <mml:attr name="adaptedClass">java.lang.Long</mml:attr>
+ <mml:attr name="defaultValue">0</mml:attr>
+ <mml:attr name="equalByContent">true</mml:attr>
+ <mml:attr name="format">java.text.DecimalFormat@674dc</mml:attr>
+ <mml:attr name="immutable">true</mml:attr>
+ <mml:attr name="maxLength">18</mml:attr>
+ <mml:attr name="typicalLength">18</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ </mml:domainClass>
+ <mml:domainClass id="java.lang.Object">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred">
+ <mml:attr name="escaped">true</mml:attr>
+ <mml:attr name="value">Object</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.grid.GridFacet" fqcn="org.apache.isis.core.metamodel.facets.object.grid.GridFacetDefault"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.membergroups.MemberGroupLayoutFacet" fqcn="org.apache.isis.core.metamodel.facets.object.membergroups.annotprop.MemberGroupLayoutFacetFallback">
+ <mml:attr name="columns">[4,0,0,8]</mml:attr>
+ <mml:attr name="left">General</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.notpersistable.NotPersistableFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.NotPersistableFacetNull">
+ <mml:attr name="disabling">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectspecid.classname.ObjectSpecIdFacetDerivedFromClassName">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">java.lang.Object</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectvalidprops.ObjectValidPropertiesFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectvalidprops.impl.ObjectValidPropertiesFacetImpl">
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.paged.PagedFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.PagedFacetFromConfiguration">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">25</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.plural.PluralFacet" fqcn="org.apache.isis.core.metamodel.facets.object.plural.inferred.PluralFacetInferred">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">Objects</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:properties/>
+ <mml:collections/>
+ <mml:actions>
+ <mml:act id="downloadLayoutXml">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation" fqcn="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">NOWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.services.layout.Object_downloadLayoutXml.ActionDomainEvent</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">org.apache.isis.applib.services.layout.Object_downloadLayoutXml.ActionDomainEvent</mml:attr>
+ <mml:attr name="intent.act">EXECUTE</mml:attr>
+ <mml:attr name="methods">public java.lang.Object org.apache.isis.applib.services.layout.Object_downloadLayoutXml.act(java.lang.String,org.apache.isis.applib.services.layout.LayoutService${symbol_dollar}Style)</mml:attr>
+ <mml:attr name="onType">org.apache.isis.applib.services.layout.Object_downloadLayoutXml</mml:attr>
+ <mml:attr name="returnType">java.lang.Object</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.bulk.BulkFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.bulk.BulkFacetForActionAnnotation">
+ <mml:attr name="value">REGULAR_ONLY</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.NotContributedFacetForActionLayoutAnnotation">
+ <mml:attr name="as">ASSOCIATION</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromMixinFacet</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.ActionPositionFacetForActionLayoutAnnotation">
+ <mml:attr name="position">PANEL_DROPDOWN</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.prototype.PrototypeFacetForActionAnnotation">
+ <mml:attr name="deploymentType">PRODUCTION</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">SAFE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">java.lang.Object${symbol_pound}downloadLayoutXml()</mml:attr>
+ <mml:attr name="originalText">Download Layout Xml</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.CssClassFaFacetForActionLayoutAnnotation">
+ <mml:attr name="position">LEFT</mml:attr>
+ <mml:attr name="value">fa fa-fw fa-download</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation">
+ <mml:attr name="name">datanucleusIdLong</mml:attr>
+ <mml:attr name="originalName">datanucleusIdLong</mml:attr>
+ <mml:attr name="sequence">700.1</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetFallBackToInline">
+ <mml:attr name="derived">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.renderunchanged.UnchangingFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.propertylayout.UnchangingFacetOnPropertyFromLayoutProperties">
+ <mml:attr name="value">false</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:returnType>java.lang.Object</mml:returnType>
+ <mml:params>
+ <mml:param xsi:type="mml:scalarParam" id="fileName" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.defaults.ActionDefaultsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.defaults.fromtype.ActionParameterDefaultFacetDerivedFromTypeFacets">
+ <mml:attr name="defaultFacets">org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacetUsingDefaultsProvider;org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacetUsingDefaultsProvider</mml:attr>
+ <mml:attr name="derived">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.describedas.annotderived.DescribedAsFacetOnParameterDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">org.apache.isis.applib.services.layout.Object_downloadLayoutXml${symbol_pound}act(java.lang.String,org.apache.isis.applib.services.layout.LayoutService${symbol_dollar}Style)</mml:attr>
+ <mml:attr name="originalText">File name</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.param.layout.NamedFacetForParameterLayoutAnnotation</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.labelat.LabelAtFacet" fqcn="org.apache.isis.core.metamodel.facets.param.layout.LabelAtFacetForParameterLayoutAnnotation">
+ <mml:attr name="label">DEFAULT</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.param.layout.LabelAtFacetForParameterLayoutAnnotation</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet" fqcn="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault">
+ <mml:attr name="inverted">false</mml:attr>
+ <mml:attr name="semantics">REQUIRED</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet" fqcn="org.apache.isis.core.metamodel.facets.param.typicallen.fromtype.TypicalLengthFacetOnParameterDerivedFromType">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="typicalLengthFacet">org.apache.isis.core.metamodel.facets.object.value.TypicalLengthFacetUsingParser</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.param.typicallen.fromtype.TypicalLengthFacetOnParameterDerivedFromType</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.param.defaults.ActionParameterDefaultsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.defaults.methodnum.ActionParameterDefaultsFacetViaMethod">
+ <mml:attr name="intent.default0Act">DEFAULTS</mml:attr>
+ <mml:attr name="methods">public java.lang.String org.apache.isis.applib.services.layout.Object_downloadLayoutXml.default0Act()</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:type>java.lang.String</mml:type>
+ </mml:param>
+ <mml:param xsi:type="mml:scalarParam" id="style" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.defaults.ActionDefaultsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.defaults.fromtype.ActionParameterDefaultFacetDerivedFromTypeFacets">
+ <mml:attr name="defaultFacets">org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacetUsingDefaultsProvider;org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacetUsingDefaultsProvider</mml:attr>
+ <mml:attr name="derived">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.describedas.annotderived.DescribedAsFacetOnParameterDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet" fqcn="org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault">
+ <mml:attr name="inverted">false</mml:attr>
+ <mml:attr name="semantics">REQUIRED</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacetDefault</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet" fqcn="org.apache.isis.core.metamodel.facets.param.typicallen.fromtype.TypicalLengthFacetOnParameterDerivedFromType">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="typicalLengthFacet">org.apache.isis.core.metamodel.facets.object.value.TypicalLengthFacetUsingParser</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.param.typicallen.fromtype.TypicalLengthFacetOnParameterDerivedFromType</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.param.choices.ActionParameterChoicesFacet" fqcn="org.apache.isis.core.metamodel.facets.param.choices.enums.ActionParameterChoicesFacetDerivedFromChoicesFacet"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.param.defaults.ActionParameterDefaultsFacet" fqcn="org.apache.isis.core.metamodel.facets.param.defaults.methodnum.ActionParameterDefaultsFacetViaMethod">
+ <mml:attr name="intent.default1Act">DEFAULTS</mml:attr>
+ <mml:attr name="methods">public org.apache.isis.applib.services.layout.LayoutService${symbol_dollar}Style org.apache.isis.applib.services.layout.Object_downloadLayoutXml.default1Act()</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:type>org.apache.isis.applib.services.layout.LayoutService${symbol_dollar}Style</mml:type>
+ </mml:param>
+ </mml:params>
+ </mml:act>
+ <mml:act id="openRestApi">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation" fqcn="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">NOWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.services.layout.Object_openRestApi.ActionDomainEvent</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">org.apache.isis.applib.services.layout.Object_openRestApi.ActionDomainEvent</mml:attr>
+ <mml:attr name="intent.act">EXECUTE</mml:attr>
+ <mml:attr name="methods">public java.net.URL org.apache.isis.applib.services.layout.Object_openRestApi.act() throws java.net.MalformedURLException</mml:attr>
+ <mml:attr name="onType">org.apache.isis.applib.services.layout.Object_openRestApi</mml:attr>
+ <mml:attr name="returnType">java.net.URL</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.bulk.BulkFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.bulk.BulkFacetForActionAnnotation">
+ <mml:attr name="value">REGULAR_ONLY</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.NotContributedFacetForActionLayoutAnnotation">
+ <mml:attr name="as">ASSOCIATION</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromMixinFacet</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.ActionPositionFacetForActionLayoutAnnotation">
+ <mml:attr name="position">PANEL_DROPDOWN</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.prototype.PrototypeFacetForActionAnnotation">
+ <mml:attr name="deploymentType">PRODUCTION</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">SAFE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">java.lang.Object${symbol_pound}openRestApi()</mml:attr>
+ <mml:attr name="originalText">Open Rest Api</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.CssClassFaFacetForActionLayoutAnnotation">
+ <mml:attr name="position">LEFT</mml:attr>
+ <mml:attr name="value">fa fa-fw fa-external-link</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation">
+ <mml:attr name="name">datanucleusIdLong</mml:attr>
+ <mml:attr name="originalName">datanucleusIdLong</mml:attr>
+ <mml:attr name="sequence">750.1</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetFallBackToInline">
+ <mml:attr name="derived">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.renderunchanged.UnchangingFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.propertylayout.UnchangingFacetOnPropertyFromLayoutProperties">
+ <mml:attr name="value">false</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:returnType>java.net.URL</mml:returnType>
+ <mml:params/>
+ </mml:act>
+ <mml:act id="rebuildMetamodel">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation" fqcn="org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation">
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ <mml:attr name="where">NOWHERE</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.services.layout.Object_rebuildMetamodel.ActionDomainEvent</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation">
+ <mml:attr name="eventType">org.apache.isis.applib.services.layout.Object_rebuildMetamodel.ActionDomainEvent</mml:attr>
+ <mml:attr name="intent.act">EXECUTE</mml:attr>
+ <mml:attr name="methods">public void org.apache.isis.applib.services.layout.Object_rebuildMetamodel.act()</mml:attr>
+ <mml:attr name="onType">org.apache.isis.applib.services.layout.Object_rebuildMetamodel</mml:attr>
+ <mml:attr name="returnType">void</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.bulk.BulkFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.bulk.BulkFacetForActionAnnotation">
+ <mml:attr name="value">REGULAR_ONLY</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.NotContributedFacetForActionLayoutAnnotation">
+ <mml:attr name="as">ASSOCIATION</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromMixinFacet</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.ActionPositionFacetForActionLayoutAnnotation">
+ <mml:attr name="position">PANEL_DROPDOWN</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.prototype.PrototypeFacetForActionAnnotation">
+ <mml:attr name="deploymentType">PRODUCTION</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.action.semantics.ActionSemanticsFacetForActionAnnotation">
+ <mml:attr name="value">IDEMPOTENT</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet" fqcn="org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberDerivedFromType"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated">
+ <mml:attr name="context">java.lang.Object${symbol_pound}rebuildMetamodel()</mml:attr>
+ <mml:attr name="originalText">Rebuild Metamodel</mml:attr>
+ <mml:attr name="underlyingFacet">org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionLayoutAnnotation">
+ <mml:attr name="value">hidden</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet" fqcn="org.apache.isis.core.metamodel.facets.actions.layout.CssClassFaFacetForActionLayoutAnnotation">
+ <mml:attr name="position">LEFT</mml:attr>
+ <mml:attr name="value">fa fa-fw fa-refresh</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet" fqcn="org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetAnnotation">
+ <mml:attr name="name">datanucleusIdLong</mml:attr>
+ <mml:attr name="originalName">datanucleusIdLong</mml:attr>
+ <mml:attr name="sequence">800.1</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetFallBackToInline">
+ <mml:attr name="derived">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.properties.renderunchanged.UnchangingFacet" fqcn="org.apache.isis.core.metamodel.facets.properties.propertylayout.UnchangingFacetOnPropertyFromLayoutProperties">
+ <mml:attr name="value">false</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:returnType>void</mml:returnType>
+ <mml:params/>
+ </mml:act>
+ </mml:actions>
+ </mml:domainClass>
+ <mml:domainClass id="java.lang.String">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred">
+ <mml:attr name="escaped">true</mml:attr>
+ <mml:attr name="value">String</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacet" fqcn="org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacetUsingDefaultsProvider"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacet" fqcn="org.apache.isis.core.metamodel.facets.object.encodeable.encoder.EncodableFacetUsingEncoderDecoder"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.grid.GridFacet" fqcn="org.apache.isis.core.metamodel.facets.object.grid.GridFacetDefault"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.immutable.ImmutableFacet" fqcn="org.apache.isis.core.metamodel.facets.object.value.ImmutableFacetViaValueSemantics">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.membergroups.MemberGroupLayoutFacet" fqcn="org.apache.isis.core.metamodel.facets.object.membergroups.annotprop.MemberGroupLayoutFacetFallback">
+ <mml:attr name="columns">[4,0,0,8]</mml:attr>
+ <mml:attr name="left">General</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.notpersistable.NotPersistableFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.NotPersistableFacetNull">
+ <mml:attr name="disabling">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectspecid.classname.ObjectSpecIdFacetDerivedFromClassName">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">java.lang.String</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectvalidprops.ObjectValidPropertiesFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectvalidprops.impl.ObjectValidPropertiesFacetImpl">
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.paged.PagedFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.PagedFacetFromConfiguration">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">25</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.parseable.ParseableFacet" fqcn="org.apache.isis.core.metamodel.facets.object.parseable.parser.ParseableFacetUsingParser"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.plural.PluralFacet" fqcn="org.apache.isis.core.metamodel.facets.object.plural.inferred.PluralFacetInferred">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">Strings</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.title.TitleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.title.parser.TitleFacetUsingParser"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.value.EqualByContentFacet" fqcn="org.apache.isis.core.metamodel.facets.object.value.EqualByContentFacetViaValueSemantics"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.value.ValueFacet" fqcn="org.apache.isis.core.metamodel.facets.object.value.vsp.ValueFacetUsingSemanticsProvider"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet" fqcn="org.apache.isis.core.metamodel.facets.object.value.TypicalLengthFacetUsingParser"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.value.string.StringValueFacet" fqcn="org.apache.isis.core.metamodel.facets.value.string.StringValueSemanticsProvider">
+ <mml:attr name="adaptedClass">java.lang.String</mml:attr>
+ <mml:attr name="equalByContent">true</mml:attr>
+ <mml:attr name="immutable">true</mml:attr>
+ <mml:attr name="typicalLength">25</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ </mml:domainClass>
+ <mml:domainClass id="java.net.URL">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred">
+ <mml:attr name="escaped">true</mml:attr>
+ <mml:attr name="value">URL</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacet" fqcn="org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacetUsingDefaultsProvider"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacet" fqcn="org.apache.isis.core.metamodel.facets.object.encodeable.encoder.EncodableFacetUsingEncoderDecoder"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.grid.GridFacet" fqcn="org.apache.isis.core.metamodel.facets.object.grid.GridFacetDefault"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.immutable.ImmutableFacet" fqcn="org.apache.isis.core.metamodel.facets.object.value.ImmutableFacetViaValueSemantics">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.membergroups.MemberGroupLayoutFacet" fqcn="org.apache.isis.core.metamodel.facets.object.membergroups.annotprop.MemberGroupLayoutFacetFallback">
+ <mml:attr name="columns">[4,0,0,8]</mml:attr>
+ <mml:attr name="left">General</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.notpersistable.NotPersistableFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.NotPersistableFacetNull">
+ <mml:attr name="disabling">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectspecid.classname.ObjectSpecIdFacetDerivedFromClassName">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">java.net.URL</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectvalidprops.ObjectValidPropertiesFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectvalidprops.impl.ObjectValidPropertiesFacetImpl">
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.paged.PagedFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.PagedFacetFromConfiguration">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">25</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.parseable.ParseableFacet" fqcn="org.apache.isis.core.metamodel.facets.object.parseable.parser.ParseableFacetUsingParser"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.plural.PluralFacet" fqcn="org.apache.isis.core.metamodel.facets.object.plural.inferred.PluralFacetInferred">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">URLs</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.title.TitleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.title.parser.TitleFacetUsingParser"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.value.EqualByContentFacet" fqcn="org.apache.isis.core.metamodel.facets.object.value.EqualByContentFacetViaValueSemantics"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.value.ValueFacet" fqcn="org.apache.isis.core.metamodel.facets.object.value.vsp.ValueFacetUsingSemanticsProvider"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxLengthFacet" fqcn="org.apache.isis.core.metamodel.facets.object.value.MaxLengthFacetUsingParser2">
+ <mml:attr name="parser">org.apache.isis.core.metamodel.facets.value.url.URLValueSemanticsProvider</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">2083</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet" fqcn="org.apache.isis.core.metamodel.facets.object.value.TypicalLengthFacetUsingParser"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.value.url.URLValueFacet" fqcn="org.apache.isis.core.metamodel.facets.value.url.URLValueSemanticsProvider">
+ <mml:attr name="adaptedClass">java.net.URL</mml:attr>
+ <mml:attr name="equalByContent">true</mml:attr>
+ <mml:attr name="immutable">true</mml:attr>
+ <mml:attr name="maxLength">2083</mml:attr>
+ <mml:attr name="typicalLength">100</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:properties/>
+ <mml:collections/>
+ <mml:actions/>
+ </mml:domainClass>
+ <mml:domainClass id="java.sql.Timestamp">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred">
+ <mml:attr name="escaped">true</mml:attr>
+ <mml:attr name="value">Timestamp</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacet" fqcn="org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacetUsingDefaultsProvider"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacet" fqcn="org.apache.isis.core.metamodel.facets.object.encodeable.encoder.EncodableFacetUsingEncoderDecoder"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.grid.GridFacet" fqcn="org.apache.isis.core.metamodel.facets.object.grid.GridFacetDefault"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.membergroups.MemberGroupLayoutFacet" fqcn="org.apache.isis.core.metamodel.facets.object.membergroups.annotprop.MemberGroupLayoutFacetFallback">
+ <mml:attr name="columns">[4,0,0,8]</mml:attr>
+ <mml:attr name="left">General</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.notpersistable.NotPersistableFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.NotPersistableFacetNull">
+ <mml:attr name="disabling">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectspecid.classname.ObjectSpecIdFacetDerivedFromClassName">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">java.sql.Timestamp</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectvalidprops.ObjectValidPropertiesFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectvalidprops.impl.ObjectValidPropertiesFacetImpl">
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.paged.PagedFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.PagedFacetFromConfiguration">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">25</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.parseable.ParseableFacet" fqcn="org.apache.isis.core.metamodel.facets.object.parseable.parser.ParseableFacetUsingParser"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.plural.PluralFacet" fqcn="org.apache.isis.core.metamodel.facets.object.plural.inferred.PluralFacetInferred">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">Timestamps</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.title.TitleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.title.parser.TitleFacetUsingParser"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.value.ValueFacet" fqcn="org.apache.isis.core.metamodel.facets.object.value.vsp.ValueFacetUsingSemanticsProvider"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet" fqcn="org.apache.isis.core.metamodel.facets.object.value.TypicalLengthFacetUsingParser"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.value.date.DateValueFacet" fqcn="org.apache.isis.core.metamodel.facets.value.timestampsql.JavaSqlTimeStampValueSemanticsProvider">
+ <mml:attr name="adaptedClass">java.sql.Timestamp</mml:attr>
+ <mml:attr name="configuredFormat">short</mml:attr>
+ <mml:attr name="equalByContent">false</mml:attr>
+ <mml:attr name="immutable">false</mml:attr>
+ <mml:attr name="propertyType">timestamp</mml:attr>
+ <mml:attr name="typicalLength">25</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ </mml:domainClass>
+ <mml:domainClass id="java.util.List">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet" fqcn="org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetDefaultToObject">
+ <mml:attr name="value">java.lang.Object</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred">
+ <mml:attr name="escaped">true</mml:attr>
+ <mml:attr name="value">List</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.javautilcollection.JavaCollectionFacet"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.grid.GridFacet" fqcn="org.apache.isis.core.metamodel.facets.object.grid.GridFacetDefault"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.membergroups.MemberGroupLayoutFacet" fqcn="org.apache.isis.core.metamodel.facets.object.membergroups.annotprop.MemberGroupLayoutFacetFallback">
+ <mml:attr name="columns">[4,0,0,8]</mml:attr>
+ <mml:attr name="left">General</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.notpersistable.NotPersistableFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.NotPersistableFacetNull">
+ <mml:attr name="disabling">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectspecid.classname.ObjectSpecIdFacetDerivedFromClassName">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">java.util.List</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectvalidprops.ObjectValidPropertiesFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectvalidprops.impl.ObjectValidPropertiesFacetImpl">
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.paged.PagedFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.PagedFacetFromConfiguration">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">25</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.parented.ParentedCollectionFacet" fqcn="org.apache.isis.core.metamodel.facets.collections.parented.ParentedCollectionFacetDefault"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.plural.PluralFacet" fqcn="org.apache.isis.core.metamodel.facets.object.plural.inferred.PluralFacetInferred">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">Lists</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:properties/>
+ <mml:collections/>
+ <mml:actions/>
+ </mml:domainClass>
+ <mml:domainClass id="org.apache.isis.applib.services.layout.LayoutService${symbol_dollar}Style">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred">
+ <mml:attr name="escaped">true</mml:attr>
+ <mml:attr name="value">Style</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.choices.enums.EnumFacet" fqcn="org.apache.isis.core.metamodel.facets.object.choices.enums.EnumValueSemanticsProvider">
+ <mml:attr name="adaptedClass">org.apache.isis.applib.services.layout.LayoutService.Style</mml:attr>
+ <mml:attr name="defaultValue">CURRENT</mml:attr>
+ <mml:attr name="equalByContent">true</mml:attr>
+ <mml:attr name="immutable">true</mml:attr>
+ <mml:attr name="maxLength">10</mml:attr>
+ <mml:attr name="typicalLength">10</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacet" fqcn="org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacetUsingDefaultsProvider"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacet" fqcn="org.apache.isis.core.metamodel.facets.object.encodeable.encoder.EncodableFacetUsingEncoderDecoder"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.grid.GridFacet" fqcn="org.apache.isis.core.metamodel.facets.object.grid.GridFacetDefault"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.immutable.ImmutableFacet" fqcn="org.apache.isis.core.metamodel.facets.object.value.ImmutableFacetViaValueSemantics">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.membergroups.MemberGroupLayoutFacet" fqcn="org.apache.isis.core.metamodel.facets.object.membergroups.annotprop.MemberGroupLayoutFacetFallback">
+ <mml:attr name="columns">[4,0,0,8]</mml:attr>
+ <mml:attr name="left">General</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.notpersistable.NotPersistableFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.NotPersistableFacetNull">
+ <mml:attr name="disabling">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectspecid.classname.ObjectSpecIdFacetDerivedFromClassName">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.services.layout.LayoutService.Style</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectvalidprops.ObjectValidPropertiesFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectvalidprops.impl.ObjectValidPropertiesFacetImpl">
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.paged.PagedFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.PagedFacetFromConfiguration">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">25</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.parseable.ParseableFacet" fqcn="org.apache.isis.core.metamodel.facets.object.parseable.parser.ParseableFacetUsingParser"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.plural.PluralFacet" fqcn="org.apache.isis.core.metamodel.facets.object.plural.inferred.PluralFacetInferred">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">Styles</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.title.TitleFacet" fqcn="org.apache.isis.core.metamodel.facets.object.title.parser.TitleFacetUsingParser"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.value.EqualByContentFacet" fqcn="org.apache.isis.core.metamodel.facets.object.value.EqualByContentFacetViaValueSemantics"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.value.ValueFacet" fqcn="org.apache.isis.core.metamodel.facets.object.value.vsp.ValueFacetUsingSemanticsProvider"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.choices.ChoicesFacet" fqcn="org.apache.isis.core.metamodel.facets.object.choices.enums.ChoicesFacetEnum">
+ <mml:attr name="choices">CURRENT;COMPLETE;NORMALIZED;MINIMAL</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxLengthFacet" fqcn="org.apache.isis.core.metamodel.facets.object.value.MaxLengthFacetUsingParser2">
+ <mml:attr name="parser">org.apache.isis.core.metamodel.facets.object.choices.enums.EnumValueSemanticsProvider</mml:attr>
+ <mml:attr name="validating">true</mml:attr>
+ <mml:attr name="value">10</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet" fqcn="org.apache.isis.core.metamodel.facets.object.value.TypicalLengthFacetUsingParser"/>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:properties/>
+ <mml:collections/>
+ </mml:domainClass>
+ <mml:domainClass id="org.apache.isis.applib.value.Clob">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred">
+ <mml:attr name="escaped">true</mml:attr>
+ <mml:attr name="value">Clob</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacet" fqcn="org.apache.isis.core.metamodel.facets.object.encodeable.encoder.EncodableFacetUsingEncoderDecoder"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.grid.GridFacet" fqcn="org.apache.isis.core.metamodel.facets.object.grid.GridFacetDefault"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.immutable.ImmutableFacet" fqcn="org.apache.isis.core.metamodel.facets.object.value.ImmutableFacetViaValueSemantics">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="when">ALWAYS</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.membergroups.MemberGroupLayoutFacet" fqcn="org.apache.isis.core.metamodel.facets.object.membergroups.annotprop.MemberGroupLayoutFacetFallback">
+ <mml:attr name="columns">[4,0,0,8]</mml:attr>
+ <mml:attr name="left">General</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.notpersistable.NotPersistableFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.NotPersistableFacetNull">
+ <mml:attr name="disabling">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectspecid.classname.ObjectSpecIdFacetDerivedFromClassName">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">org.apache.isis.applib.value.Clob</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectvalidprops.ObjectValidPropertiesFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectvalidprops.impl.ObjectValidPropertiesFacetImpl">
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.paged.PagedFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.PagedFacetFromConfiguration">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">25</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.plural.PluralFacet" fqcn="org.apache.isis.core.metamodel.facets.object.plural.inferred.PluralFacetInferred">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">Clobs</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.value.ValueFacet" fqcn="org.apache.isis.core.metamodel.facets.object.value.vsp.ValueFacetUsingSemanticsProvider"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.value.clobs.ClobValueFacet" fqcn="org.apache.isis.core.metamodel.facets.value.clobs.ClobValueSemanticsProvider">
+ <mml:attr name="adaptedClass">org.apache.isis.applib.value.Clob</mml:attr>
+ <mml:attr name="equalByContent">false</mml:attr>
+ <mml:attr name="immutable">true</mml:attr>
+ <mml:attr name="typicalLength">0</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ </mml:domainClass>
+ <mml:domainClass id="void">
+ <mml:facets>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.all.named.NamedFacet" fqcn="org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred">
+ <mml:attr name="escaped">true</mml:attr>
+ <mml:attr name="value">Void</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet" fqcn="org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacetFallback">
+ <mml:attr name="bookmarkPolicy">NEVER</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.grid.GridFacet" fqcn="org.apache.isis.core.metamodel.facets.object.grid.GridFacetDefault"/>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.membergroups.MemberGroupLayoutFacet" fqcn="org.apache.isis.core.metamodel.facets.object.membergroups.annotprop.MemberGroupLayoutFacetFallback">
+ <mml:attr name="columns">[4,0,0,8]</mml:attr>
+ <mml:attr name="left">General</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.notpersistable.NotPersistableFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.NotPersistableFacetNull">
+ <mml:attr name="disabling">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectspecid.classname.ObjectSpecIdFacetDerivedFromClassName">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">void</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.objectvalidprops.ObjectValidPropertiesFacet" fqcn="org.apache.isis.core.metamodel.facets.object.objectvalidprops.impl.ObjectValidPropertiesFacetImpl">
+ <mml:attr name="validating">true</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.paged.PagedFacet" fqcn="org.apache.isis.core.metamodel.facets.fallback.PagedFacetFromConfiguration">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">25</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.metamodel.facets.object.plural.PluralFacet" fqcn="org.apache.isis.core.metamodel.facets.object.plural.inferred.PluralFacetInferred">
+ <mml:attr name="derived">true</mml:attr>
+ <mml:attr name="value">Voids</mml:attr>
+ </mml:facet>
+ <mml:facet id="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacet" fqcn="org.apache.isis.core.runtime.authorization.standard.AuthorizationFacetImpl">
+ <mml:attr name="disabling">true</mml:attr>
+ <mml:attr name="hiding">true</mml:attr>
+ </mml:facet>
+ </mml:facets>
+ <mml:properties/>
+ <mml:collections/>
+ <mml:actions/>
+ </mml:domainClass>
+</mml:metamodelDto>
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/resources/cucumber.properties b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/resources/cucumber.properties
new file mode 100644
index 0000000..6aa2d27
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/test/resources/cucumber.properties
@@ -0,0 +1,4 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+cucumber.api.java.ObjectFactory=org.apache.isis.core.integtestsupport.scenarios.ObjectFactoryForIntegration
\ No newline at end of file
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/translations.pot b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/translations.pot
new file mode 100644
index 0000000..e69de29
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/enhance-all.sh b/example/archetype/simpleapp/src/main/resources/archetype-resources/enhance-all.sh
new file mode 100644
index 0000000..63572d1
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/enhance-all.sh
@@ -0,0 +1,2 @@
+#!/usr/bin/env bash
+mvn -pl module-simple datanucleus:enhance -o
\ No newline at end of file
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/build.gradle b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/build.gradle
new file mode 100644
index 0000000..6bfc911
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/build.gradle
@@ -0,0 +1,72 @@
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
+// 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.
+//
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
+// this gradle script compiles and enhances the dom classes.
+//
+// The script is intended to be used in conjunction with IntelliJ IDEA, to remove the necessity to run the DataNucleus
+// enhancer immediately before running the app, and therefore reduce the turn-around time. The script is run as
+// in the background as a daemon while editing/developing; whenever a change is made to any source code, gradle will
+// automatically compile *and* enhance the code.
+//
+// To use, just type:
+//
+// gradle -t --offline &
+//
+// It is also necessary to disable the IntelliJ's automatic building of the 'dom' project. This is done using:
+//
+// File > Settings > Build, Execution, Deployment > Compiler > Excludes
+//
+// and then exclude the .../dom/src/main/java directory
+//
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+defaultTasks 'compileJava', 'copyClasses'
+
+apply plugin: 'java'
+apply plugin: 'tangram.tools'
+
+sourceCompatibility = 1.8
+targetCompatibility = 1.8
+version = (new XmlParser()).parse('pom.xml').parent.version.text()
+
+buildscript {
+ repositories {
+ maven { url "http://oss.jfrog.org/artifactory/oss-snapshot-local" }
+ jcenter()
+ }
+ dependencies {
+ classpath 'tangram:gradle-plugin:1.1.2'
+ }
+}
+repositories {
+ mavenLocal()
+ maven { url "http://oss.jfrog.org/artifactory/oss-snapshot-local" }
+ jcenter()
+}
+dependencies {
+ compile group: 'org.apache.isis.core', name: 'isis-core-applib', version: '1.14.0-SNAPSHOT'
+}
+task copyClasses << {
+ copy {
+ from 'build/classes/main'
+ into 'target/classes'
+ }
+}
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/gradlew b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/gradlew
new file mode 100644
index 0000000..27309d9
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/gradlew
@@ -0,0 +1,164 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+ echo "$*"
+}
+
+die ( ) {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+ NONSTOP* )
+ nonstop=true
+ ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+ JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/gradlew.bat b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/gradlew.bat
new file mode 100644
index 0000000..832fdb6
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windows variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/layouts.gradle b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/layouts.gradle
new file mode 100644
index 0000000..f5fa30d
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/layouts.gradle
@@ -0,0 +1,49 @@
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
+// 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.
+//
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
+// This gradle script copies over .layout.xml files from src to target directory.
+//
+// This script is intended to be used while the app is running (in prototype mode), reducing the turn-around time
+// when updating the layout.
+//
+// The framework will automatically notice any changes to .layout.xml files, but these are read from the classpath
+// (under target/classes), not the source path. Using IntelliJ (say) these can be copied over manually by invoking
+// Run > Reload Changed Classes, and then refreshing the browser.
+//
+// This script instead is intended to be run in the background as a daemon; whenever a change
+// is made to any .layout.xml file, gradle will automatically copy over the file to the target directory.
+//
+// The script is run using:
+//
+// gradle -t -b layouts.gradle --offline &
+//
+// To reduce turn-around time further, also use the liveReload.gradle script (to automatically refresh the browser).
+//
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+defaultTasks 'copyLayouts'
+
+task copyLayouts(type:Copy) {
+ from 'src/main/java'
+ into 'target/classes'
+ include '**/*.layout.xml'
+}
+
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/liveReload.gradle b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/liveReload.gradle
new file mode 100644
index 0000000..adb0ab1
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/liveReload.gradle
@@ -0,0 +1,56 @@
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
+// 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.
+//
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
+// This gradle script sets up livereload, configured so that any updates to the dom module's classpath will
+// trigger the browser to reload the page. In particular, this relates to the .layout.xml files which define the
+// grid layout of domain objects.
+//
+// As a prerequisite, the app needs to configured to load the livereload.js script. This can be done by adding the
+// following configuration property (to viewer_wicket.properties, isis.properties or the AppManifest, as you prefer):
+//
+// isis.viewer.wicket.liveReloadUrl=http://localhost:35729/livereload.js?snipver=1
+//
+// This gradle script is run using:
+//
+// gradle -t -b livereload.gradle --offline &
+//
+// To reduce turn-around time further, also use the layouts.gradle script (to automatically copy over the layout.xml
+// files to the classpath).
+//
+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+defaultTasks 'liveReload'
+
+buildscript {
+ repositories {
+ jcenter()
+ }
+ dependencies {
+ classpath 'org.kordamp.gradle:livereload-gradle-plugin:0.2.1'
+ }
+}
+
+apply plugin: 'org.kordamp.gradle.livereload'
+
+liveReload {
+ docRoot new File('target/classes').canonicalPath
+}
+
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/logging-dn-enhance.properties b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/logging-dn-enhance.properties
new file mode 100644
index 0000000..2040d89
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/logging-dn-enhance.properties
@@ -0,0 +1,44 @@
+#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} LOG4J Configuration
+${symbol_pound} ===================
+
+${symbol_pound} Basic logging goes to "datanucleus.log"
+log4j.appender.A1=org.apache.log4j.FileAppender
+log4j.appender.A1.File=datanucleus.log
+log4j.appender.A1.layout=org.apache.log4j.PatternLayout
+log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss,SSS} (%t) %-5p [%c] - %m%n
+${symbol_pound}log4j.appender.A1.Threshold=INFO
+
+${symbol_pound} Categories
+${symbol_pound} Each category can be set to a "level", and to direct to an appender
+
+${symbol_pound} Default to DEBUG level for all DataNucleus categories
+log4j.logger.DataNucleus = DEBUG, A1
+
+log4j.category.com.mchange.v2.c3p0=INFO, A1
+log4j.category.com.mchange.v2.resourcepool=INFO, A1
+log4j.category.org.logicalcobwebs.proxool=INFO,A1
+
+
+${symbol_pound} Hbase libs logging
+log4j.category.org.apache.hadoop=INFO,A1
+log4j.category.org.apache.zookeeper=INFO,A1
\ No newline at end of file
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/logging-integtest.properties b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/logging-integtest.properties
new file mode 100644
index 0000000..22633ff
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/logging-integtest.properties
@@ -0,0 +1,123 @@
+#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} Isis uses log4j is used to provide system logging
+${symbol_pound}
+log4j.rootCategory=INFO, Console
+
+${symbol_pound} The console appender
+log4j.appender.Console=org.apache.log4j.ConsoleAppender
+log4j.appender.Console.target=System.out
+log4j.appender.Console.layout=org.apache.log4j.PatternLayout
+log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} [%-20c{1} %-10t %-5p] %m%n
+
+log4j.appender.File=org.apache.log4j.RollingFileAppender
+log4j.appender.File.file=isis.log
+log4j.appender.File.append=false
+log4j.appender.File.layout=org.apache.log4j.PatternLayout
+log4j.appender.File.layout.ConversionPattern=%d [%-20c{1} %-10t %-5p] %m%n
+
+log4j.appender.translations-po=org.apache.log4j.FileAppender
+log4j.appender.translations-po.File=./translations.pot
+log4j.appender.translations-po.Append=false
+log4j.appender.translations-po.layout=org.apache.log4j.PatternLayout
+log4j.appender.translations-po.layout.ConversionPattern=%m%n
+
+! turn on the internal log4j debugging flag so we can see what it is doing
+${symbol_pound}log4j.debug=true
+
+
+${symbol_pound} DataNucleus
+${symbol_pound} the first two log the DML and DDL (if set to DEBUG)
+log4j.logger.DataNucleus.Datastore.Native=WARN, Console
+log4j.logger.DataNucleus.Datastore.Schema=DEBUG, Console
+${symbol_pound} the remainder can probably be left to WARN
+log4j.logger.DataNucleus.Persistence=WARN, Console
+log4j.logger.DataNucleus.Transaction=WARN, Console
+log4j.logger.DataNucleus.Connection=WARN, Console
+log4j.logger.DataNucleus.Query=WARN, Console
+log4j.logger.DataNucleus.Cache=WARN, Console
+log4j.logger.DataNucleus.MetaData=WARN, Console
+log4j.logger.DataNucleus.Datastore=WARN, Console
+log4j.logger.DataNucleus.Datastore.Persist=WARN, Console
+log4j.logger.DataNucleus.Datastore.Retrieve=WARN, Console
+log4j.logger.DataNucleus.General=WARN, Console
+log4j.logger.DataNucleus.Lifecycle=WARN, Console
+log4j.logger.DataNucleus.ValueGeneration=WARN, Console
+log4j.logger.DataNucleus.Enhancer=WARN, Console
+log4j.logger.DataNucleus.SchemaTool=ERROR, Console
+log4j.logger.DataNucleus.JDO=WARN, Console
+log4j.logger.DataNucleus.JPA=ERROR, Console
+log4j.logger.DataNucleus.JCA=WARN, Console
+log4j.logger.DataNucleus.IDE=ERROR, Console
+
+log4j.additivity.DataNucleus.Datastore.Native=false
+log4j.additivity.DataNucleus.Datastore.Schema=false
+log4j.additivity.DataNucleus.Datastore.Persistence=false
+log4j.additivity.DataNucleus.Datastore.Transaction=false
+log4j.additivity.DataNucleus.Datastore.Connection=false
+log4j.additivity.DataNucleus.Datastore.Query=false
+log4j.additivity.DataNucleus.Datastore.Cache=false
+log4j.additivity.DataNucleus.Datastore.MetaData=false
+log4j.additivity.DataNucleus.Datastore.Datastore=false
+log4j.additivity.DataNucleus.Datastore.Datastore.Persist=false
+log4j.additivity.DataNucleus.Datastore.Datastore.Retrieve=false
+log4j.additivity.DataNucleus.Datastore.General=false
+log4j.additivity.DataNucleus.Datastore.Lifecycle=false
+log4j.additivity.DataNucleus.Datastore.ValueGeneration=false
+log4j.additivity.DataNucleus.Datastore.Enhancer=false
+log4j.additivity.DataNucleus.Datastore.SchemaTool=false
+log4j.additivity.DataNucleus.Datastore.JDO=false
+log4j.additivity.DataNucleus.Datastore.JPA=false
+log4j.additivity.DataNucleus.Datastore.JCA=false
+log4j.additivity.DataNucleus.Datastore.IDE=false
+
+
+
+
+${symbol_pound} if using log4jdbc-remix as JDBC driver
+${symbol_pound}log4j.logger.jdbc.sqlonly=DEBUG, sql, Console
+${symbol_pound}log4j.additivity.jdbc.sqlonly=false
+${symbol_pound}log4j.logger.jdbc.resultsettable=DEBUG, jdbc, Console
+${symbol_pound}log4j.additivity.jdbc.resultsettable=false
+
+${symbol_pound}log4j.logger.jdbc.audit=WARN,jdbc, Console
+${symbol_pound}log4j.additivity.jdbc.audit=false
+${symbol_pound}log4j.logger.jdbc.resultset=WARN,jdbc
+${symbol_pound}log4j.additivity.jdbc.resultset=false
+${symbol_pound}log4j.logger.jdbc.sqltiming=WARN,sqltiming
+${symbol_pound}log4j.additivity.jdbc.sqltiming=false
+${symbol_pound}log4j.logger.jdbc.connection=FATAL,connection
+${symbol_pound}log4j.additivity.jdbc.connection=false
+
+
+log4j.logger.org.apache.isis.core.runtime.services.i18n.po.PoWriter=INFO,translations-po
+log4j.additivity.org.apache.isis.core.runtime.services.i18n.po.PoWriter=false
+
+log4j.logger.org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsBuilder=WARN,Console
+log4j.additivity.org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsBuilder=false
+
+log4j.logger.org.apache.isis.core.integtestsupport.IntegrationBootstrapAbstract=DEBUG,Console
+log4j.additivity.org.apache.isis.core.integtestsupport.IntegrationBootstrapAbstract=false
+
+log4j.logger.com.mchange.v2.c3p0.SQLWarnings=WARN,Console
+log4j.additivity.com.mchange.v2.c3p0.SQLWarnings=false
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/pom.xml b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/pom.xml
new file mode 100644
index 0000000..1322159
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/pom.xml
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+--><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>${groupId}</groupId>
+ <artifactId>${rootArtifactId}</artifactId>
+ <version>${version}</version>
+ </parent>
+
+ <artifactId>${artifactId}</artifactId>
+ <name>Apache Isis App - SimpleApp Simple Module</name>
+
+ <properties>
+ <isis-maven-plugin.validate.appManifest>domainapp.modules.simple.SimpleModuleManifest</isis-maven-plugin.validate.appManifest>
+
+ <maven-checkstyle-plugin.configLocation>${project.parent.basedir}/_checks/checkstyle.xml</maven-checkstyle-plugin.configLocation>
+ <maven-pmd-plugin.ruleset>${project.parent.basedir}/_checks/pmd.xml</maven-pmd-plugin.ruleset>
+ </properties>
+
+ <build>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ </resource>
+ <resource>
+ <directory>src/main/java</directory>
+ <includes>
+ <include>**</include>
+ </includes>
+ <excludes>
+ <exclude>**/*.java</exclude>
+ </excludes>
+ </resource>
+ </resources>
+ <testResources>
+ <testResource>
+ <directory>src/test/resources</directory>
+ </testResource>
+ <testResource>
+ <directory>src/test/java</directory>
+ <includes>
+ <include>**</include>
+ </includes>
+ <excludes>
+ <exclude>**/*.java</exclude>
+ </excludes>
+ </testResource>
+ </testResources>
+ <plugins>
+ <plugin>
+ <groupId>com.github.odavid.maven.plugins</groupId>
+ <artifactId>mixin-maven-plugin</artifactId>
+ <version>0.1-alpha-39</version>
+ <extensions>true</extensions>
+ <configuration>
+ <mixins>
+ <mixin>
+ <groupId>com.danhaywood.mavenmixin</groupId>
+ <artifactId>standard</artifactId>
+ </mixin>
+ <mixin>
+ <groupId>com.danhaywood.mavenmixin</groupId>
+ <artifactId>datanucleusenhance</artifactId>
+ </mixin>
+ <mixin>
+ <groupId>com.danhaywood.mavenmixin</groupId>
+ <artifactId>enforcerrelaxed</artifactId>
+ </mixin>
+ <mixin>
+ <groupId>com.danhaywood.mavenmixin</groupId>
+ <artifactId>sourceandjavadoc</artifactId>
+ </mixin>
+ <mixin>
+ <groupId>com.danhaywood.mavenmixin</groupId>
+ <artifactId>staticanalysis</artifactId>
+ </mixin>
+ <mixin>
+ <groupId>com.danhaywood.mavenmixin</groupId>
+ <artifactId>surefire</artifactId>
+ </mixin>
+ </mixins>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <dependencies>
+
+ <!-- ISIS API -->
+
+ <dependency>
+ <groupId>org.apache.isis.core</groupId>
+ <artifactId>isis-core-applib</artifactId>
+ </dependency>
+
+ <!-- ISIS CORE PLUGINS -->
+
+ <dependency>
+ <groupId>org.apache.isis.core</groupId>
+ <artifactId>isis-core-plugins-eventbus-axon</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.isis.core</groupId>
+ <artifactId>isis-core-plugins-codegen-bytebuddy</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.isis.core</groupId>
+ <artifactId>isis-core-plugins-discovery-reflections</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.isis.core</groupId>
+ <artifactId>isis-core-plugins-jdo-datanucleus-5</artifactId>
+ </dependency>
+
+
+ <dependency>
+ <groupId>org.apache.isis.core</groupId>
+ <artifactId>isis-core-plugins-jaxrs-resteasy-3</artifactId>
+ </dependency>
+
+ <!-- TESTS -->
+
+ <dependency>
+ <groupId>org.apache.isis.mavendeps</groupId>
+ <artifactId>isis-mavendeps-testing</artifactId>
+ <type>pom</type>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.hsqldb</groupId>
+ <artifactId>hsqldb</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+
+ <profiles>
+ <profile>
+ <id>isis-validate</id>
+ <activation>
+ <property>
+ <name>!skip.isis-validate</name>
+ </property>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.isis.tool</groupId>
+ <artifactId>isis-maven-plugin</artifactId>
+ <version>${isis.version}</version>
+ <executions>
+ <execution>
+ <phase>test</phase>
+ <goals>
+ <goal>validate</goal>
+ </goals>
+ <configuration>
+ <appManifest>${isis-maven-plugin.validate.appManifest}</appManifest>
+ </configuration>
+ </execution>
+ </executions>
+ <dependencies>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>${project.artifactId}</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hsqldb</groupId>
+ <artifactId>hsqldb</artifactId>
+ <version>2.3.1</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
+</project>
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/META-INF/persistence.xml b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/META-INF/persistence.xml
new file mode 100644
index 0000000..c5d8e78
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/META-INF/persistence.xml
@@ -0,0 +1,29 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<persistence xmlns="http://java.sun.com/xml/ns/persistence"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
+
+ <persistence-unit name="simple">
+ </persistence-unit>
+</persistence>
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/SimpleModule.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/SimpleModule.java
new file mode 100644
index 0000000..10ca1bf
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/SimpleModule.java
@@ -0,0 +1,51 @@
+#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;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.isis.applib.ModuleAbstract;
+import org.apache.isis.applib.fixturescripts.FixtureScript;
+import org.apache.isis.applib.fixturescripts.teardown.TeardownFixtureAbstract2;
+
+import domainapp.modules.simple.dom.impl.SimpleObject;
+
+@XmlRootElement(name = "module")
+public class SimpleModule extends ModuleAbstract {
+
+ @Override
+ public FixtureScript getTeardownFixture() {
+ return new TeardownFixtureAbstract2() {
+ @Override
+ protected void execute(ExecutionContext executionContext) {
+ deleteFrom(SimpleObject.class);
+ }
+ };
+ }
+
+ public static class PropertyDomainEvent<S,T>
+ extends org.apache.isis.applib.events.domain.PropertyDomainEvent<S,T> {}
+ public static class CollectionDomainEvent<S,T>
+ extends org.apache.isis.applib.events.domain.CollectionDomainEvent<S,T> {}
+ public static class ActionDomainEvent<S> extends
+ org.apache.isis.applib.events.domain.ActionDomainEvent<S> {}
+}
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/SimpleModuleManifest.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/SimpleModuleManifest.java
new file mode 100644
index 0000000..49294a8
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/SimpleModuleManifest.java
@@ -0,0 +1,41 @@
+#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;
+
+import org.apache.isis.applib.AppManifestAbstract2;
+
+/**
+ * Used by <code>isis-maven-plugin</code> (build-time validation of the module) and also by module-level integration tests.
+ */
+public class SimpleModuleManifest extends AppManifestAbstract2 {
+
+ public static final Builder BUILDER = Builder.forModule(new SimpleModule())
+ .withConfigurationProperty("isis.persistor.datanucleus.impl.datanucleus.schema.autoCreateAll","true")
+ .withConfigurationProperty("isis.persistor.datanucleus.impl.datanucleus.identifier.case","MixedCase")
+ ;
+
+ public SimpleModuleManifest() {
+ super(BUILDER);
+ }
+
+
+}
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
new file mode 100644
index 0000000..c329fc8
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObject.java
@@ -0,0 +1,111 @@
+#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.dom.impl;
+
+import javax.jdo.annotations.IdGeneratorStrategy;
+import javax.jdo.annotations.IdentityType;
+import javax.jdo.annotations.VersionStrategy;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+import com.google.common.collect.ComparisonChain;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.Auditing;
+import org.apache.isis.applib.annotation.DomainObject;
+import org.apache.isis.applib.annotation.DomainObjectLayout;
+import org.apache.isis.applib.annotation.Publishing;
+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 org.apache.isis.schema.utils.jaxbadapters.PersistentEntityAdapter;
+
+import domainapp.modules.simple.dom.types.Name;
+import domainapp.modules.simple.dom.types.Notes;
+import static org.apache.isis.applib.annotation.CommandReification.ENABLED;
+import static org.apache.isis.applib.annotation.SemanticsOf.IDEMPOTENT;
+import static org.apache.isis.applib.annotation.SemanticsOf.NON_IDEMPOTENT_ARE_YOU_SURE;
+
+@javax.jdo.annotations.PersistenceCapable(identityType=IdentityType.DATASTORE, schema = "simple")
+@javax.jdo.annotations.DatastoreIdentity(strategy=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(auditing = Auditing.ENABLED)
+@DomainObjectLayout() // causes UI events to be triggered
+@lombok.RequiredArgsConstructor
+@XmlJavaTypeAdapter(PersistentEntityAdapter.class)
+public class SimpleObject implements Comparable<SimpleObject> {
+
+ public String title() {
+ return "Object: " + getName();
+ }
+
+ @lombok.Getter @lombok.Setter @lombok.NonNull
+ @Name private String name;
+
+ @lombok.Getter @lombok.Setter
+ @Notes private String notes;
+
+
+ @Action(semantics = IDEMPOTENT, command = ENABLED, publishing = Publishing.ENABLED, associateWith = "name")
+ public SimpleObject updateName(
+ @Name final String name) {
+ setName(name);
+ return this;
+ }
+ public String default0UpdateName() {
+ return getName();
+ }
+
+
+ @Action(semantics = NON_IDEMPOTENT_ARE_YOU_SURE)
+ public void delete() {
+ final String title = titleService.titleOf(this);
+ messageService.informUser(String.format("'%s' deleted", title));
+ repositoryService.removeAndFlush(this);
+ }
+
+ @Override
+ public String toString() {
+ return getName();
+ }
+
+ @Override
+ public int compareTo(final SimpleObject other) {
+ return ComparisonChain.start()
+ .compare(this.getName(), other.getName())
+ .result();
+ }
+
+
+ @javax.inject.Inject
+ @javax.jdo.annotations.NotPersistent
+ RepositoryService repositoryService;
+
+ @javax.inject.Inject
+ @javax.jdo.annotations.NotPersistent
+ TitleService titleService;
+
+ @javax.inject.Inject
+ @javax.jdo.annotations.NotPersistent
+ MessageService messageService;
+
+}
\ No newline at end of file
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObject.layout.xml b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObject.layout.xml
new file mode 100644
index 0000000..b785e72
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObject.layout.xml
@@ -0,0 +1,71 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+ 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.
+-->
+<bs3:grid xsi:schemaLocation="http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd http://isis.apache.org/applib/layout/grid/bootstrap3 http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd" xmlns:c="http://isis.apache.org/applib/layout/component" xmlns:bs3="http://isis.apache.org/applib/layout/grid/bootstrap3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+
+ <bs3:row>
+ <bs3:col span="12" unreferencedActions="true">
+ <c:domainObject bookmarking="AS_ROOT"/>
+ </bs3:col>
+ </bs3:row>
+ <bs3:row>
+ <bs3:col span="6">
+ <bs3:tabGroup>
+ <bs3:tab name="General">
+ <bs3:row>
+ <bs3:col span="12">
+ <c:fieldSet name="Name">
+ <c:action id="delete">
+ <c:describedAs>Deletes this object from the persistent datastore</c:describedAs>
+ </c:action>
+ <c:property id="name" namedEscaped="true">
+ <c:action id="updateName" promptStyle="INLINE"/>
+ </c:property>
+ <c:property id="notes" namedEscaped="true" multiLine="10" hidden="ALL_TABLES"/>
+ </c:fieldSet>
+ </bs3:col>
+ </bs3:row>
+ </bs3:tab>
+ <bs3:tab name="Metadata">
+ <bs3:row>
+ <bs3:col span="12">
+ <c:fieldSet name="Metadata"/>
+ </bs3:col>
+ </bs3:row>
+ </bs3:tab>
+ <bs3:tab name="Other">
+ <bs3:row>
+ <bs3:col span="12">
+ <c:fieldSet name="Other" unreferencedProperties="true"/>
+ </bs3:col>
+ </bs3:row>
+ </bs3:tab>
+ </bs3:tabGroup>
+ <bs3:tabGroup>
+ </bs3:tabGroup>
+ </bs3:col>
+ <bs3:col span="6">
+ <bs3:tabGroup unreferencedCollections="true">
+ </bs3:tabGroup>
+ </bs3:col>
+ </bs3:row>
+</bs3:grid>
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObject.png b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObject.png
new file mode 100644
index 0000000..0bd6f57
Binary files /dev/null and b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObject.png differ
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjects.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjects.java
new file mode 100644
index 0000000..6e6ed6f
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjects.java
@@ -0,0 +1,100 @@
+#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.dom.impl;
+
+import java.util.List;
+
+import javax.jdo.JDOQLTypedQuery;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.BookmarkPolicy;
+import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.annotation.NatureOfService;
+import org.apache.isis.applib.annotation.PromptStyle;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.events.domain.ActionDomainEvent;
+import org.apache.isis.applib.services.jdosupport.IsisJdoSupport_v3_2;
+import org.apache.isis.applib.services.repository.RepositoryService;
+
+import domainapp.modules.simple.dom.types.Name;
+
+@DomainService(
+ nature = NatureOfService.VIEW_MENU_ONLY,
+ objectType = "simple.SimpleObjects"
+)
+public class SimpleObjects {
+
+ public static class CreateDomainEvent extends ActionDomainEvent<SimpleObjects> {}
+ @Action(domainEvent = CreateDomainEvent.class)
+ @ActionLayout(promptStyle = PromptStyle.DIALOG_MODAL)
+ public SimpleObject create(
+ @Name final String name
+ ) {
+ return repositoryService.persist(new SimpleObject(name));
+ }
+
+ @Action(semantics = SemanticsOf.SAFE)
+ @ActionLayout(bookmarking = BookmarkPolicy.AS_ROOT, promptStyle = PromptStyle.DIALOG_SIDEBAR)
+ public List<SimpleObject> findByName(
+ @Name final String name
+ ) {
+ JDOQLTypedQuery<SimpleObject> q = isisJdoSupport.newTypesafeQuery(SimpleObject.class);
+ final QSimpleObject cand = QSimpleObject.candidate();
+ q = q.filter(
+ cand.name.indexOf(q.stringParameter("name")).ne(-1)
+ );
+ return q.setParameter("name", name)
+ .executeList();
+ }
+
+ public SimpleObject findByNameExact(final String name) {
+ JDOQLTypedQuery<SimpleObject> q = isisJdoSupport.newTypesafeQuery(SimpleObject.class);
+ final QSimpleObject cand = QSimpleObject.candidate();
+ q = q.filter(
+ cand.name.eq(q.stringParameter("name"))
+ );
+ return q.setParameter("name", name)
+ .executeUnique();
+ }
+
+ @Action(semantics = SemanticsOf.SAFE)
+ @ActionLayout(bookmarking = BookmarkPolicy.AS_ROOT)
+ public List<SimpleObject> listAll() {
+ return repositoryService.allInstances(SimpleObject.class);
+ }
+
+ public void ping() {
+ JDOQLTypedQuery<SimpleObject> q = isisJdoSupport.newTypesafeQuery(SimpleObject.class);
+ final QSimpleObject candidate = QSimpleObject.candidate();
+ q.range(0,2);
+ q.orderBy(candidate.name.asc());
+ q.executeList();
+ }
+
+ @javax.inject.Inject
+ RepositoryService repositoryService;
+
+ @javax.inject.Inject
+ IsisJdoSupport_v3_2 isisJdoSupport;
+
+}
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/dom/types/Name.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/dom/types/Name.java
new file mode 100644
index 0000000..d7a1115
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/dom/types/Name.java
@@ -0,0 +1,39 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package domainapp.modules.simple.dom.types;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import javax.jdo.annotations.Column;
+
+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.services.i18n.TranslatableString;
+import org.apache.isis.applib.spec.AbstractSpecification2;
+
+@Column(length = Name.MAX_LEN, allowsNull = "false")
+@Property(editing = Editing.DISABLED, mustSatisfy = Name.NoExclamationMarks.class, maxLength = Name.MAX_LEN)
+@Parameter(mustSatisfy = Name.NoExclamationMarks.class, maxLength = Name.MAX_LEN)
+@ParameterLayout(named = "Name")
+@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE })
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Name {
+
+ int MAX_LEN = 40;
+
+ class NoExclamationMarks extends AbstractSpecification2<String> {
+
+ @Override
+ public TranslatableString satisfiesTranslatableSafely(final String name) {
+ return name != null && name.contains("!")
+ ? TranslatableString.tr("Exclamation mark is not allowed")
+ : null;
+ }
+ }
+}
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/dom/types/Notes.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/dom/types/Notes.java
new file mode 100644
index 0000000..40e7874
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/dom/types/Notes.java
@@ -0,0 +1,28 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package domainapp.modules.simple.dom.types;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import javax.jdo.annotations.Column;
+
+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;
+
+@Column(length = Notes.MAX_LEN, allowsNull = "true")
+@Property(editing = Editing.ENABLED, maxLength = Notes.MAX_LEN)
+@Parameter(maxLength = Notes.MAX_LEN)
+@ParameterLayout(named = "Notes")
+@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE })
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Notes {
+
+ int MAX_LEN = 4000;
+
+}
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/fixture/SimpleObjectBuilder.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/fixture/SimpleObjectBuilder.java
new file mode 100644
index 0000000..39bbfa6
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/fixture/SimpleObjectBuilder.java
@@ -0,0 +1,53 @@
+#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;
+
+import org.apache.isis.applib.fixturescripts.BuilderScriptAbstract;
+
+import domainapp.modules.simple.dom.impl.SimpleObject;
+import domainapp.modules.simple.dom.impl.SimpleObjects;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.experimental.Accessors;
+
+@Accessors(chain = true)
+public class SimpleObjectBuilder extends BuilderScriptAbstract<SimpleObject, SimpleObjectBuilder> {
+
+ @Getter @Setter
+ private String name;
+
+ @Getter
+ private SimpleObject object;
+
+ @Override
+ protected void execute(final ExecutionContext ec) {
+
+ checkParam("name", ec, String.class);
+
+ object = wrap(simpleObjects).create(name);
+ }
+
+ @javax.inject.Inject
+ SimpleObjects simpleObjects;
+
+}
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/fixture/SimpleObject_persona.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/fixture/SimpleObject_persona.java
new file mode 100644
index 0000000..613c586
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/main/java/domainapp/modules/simple/fixture/SimpleObject_persona.java
@@ -0,0 +1,66 @@
+#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;
+
+import org.apache.isis.applib.fixturescripts.PersonaWithBuilderScript;
+import org.apache.isis.applib.fixturescripts.PersonaWithFinder;
+import org.apache.isis.applib.fixturescripts.setup.PersonaEnumPersistAll;
+import org.apache.isis.applib.services.registry.ServiceRegistry;
+
+import domainapp.modules.simple.dom.impl.SimpleObject;
+import domainapp.modules.simple.dom.impl.SimpleObjects;
+import lombok.AllArgsConstructor;
+
+@AllArgsConstructor
+public enum SimpleObject_persona implements PersonaWithBuilderScript<SimpleObject, SimpleObjectBuilder>,
+ PersonaWithFinder<SimpleObject> {
+
+ 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 SimpleObjectBuilder builder() {
+ return new SimpleObjectBuilder().setName(name);
+ }
+
+ public SimpleObject findUsing(final ServiceRegistry serviceRegistry) {
+ SimpleObjects simpleObjects = serviceRegistry.lookupService(SimpleObjects.class).orElse(null);
+ return simpleObjects.findByNameExact(name);
+ }
+
+ public static class PersistAll
+ extends PersonaEnumPersistAll<SimpleObject_persona, SimpleObject, SimpleObjectBuilder> {
+ public PersistAll() {
+ super(SimpleObject_persona.class);
+ }
+ }
+}
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObject_Test.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObject_Test.java
new file mode 100644
index 0000000..c56ae78
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObject_Test.java
@@ -0,0 +1,53 @@
+#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.dom.impl;
+
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+public class SimpleObject_Test {
+
+ SimpleObject simpleObject;
+
+ @BeforeEach
+ public void setUp() throws Exception {
+ simpleObject = new SimpleObject("Foobar");
+ }
+
+ public static class Name extends SimpleObject_Test {
+
+ @Test
+ public void happyCase() throws Exception {
+ // given
+ assertThat(simpleObject.getName()).isEqualTo("Foobar");
+
+ // when
+ String name = "Foobar - updated";
+ simpleObject.setName(name);
+
+ // then
+ assertThat(simpleObject.getName()).isEqualTo(name);
+ }
+ }
+
+}
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObjects_Test.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObjects_Test.java
new file mode 100644
index 0000000..3b75ad1
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObjects_Test.java
@@ -0,0 +1,119 @@
+#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.dom.impl;
+
+import java.util.List;
+
+import org.apache.isis.commons.internal.collections._Lists;
+
+import org.hamcrest.Description;
+import org.hamcrest.Matcher;
+import org.hamcrest.TypeSafeMatcher;
+import org.jmock.Expectations;
+import org.jmock.auto.Mock;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.apache.isis.applib.services.repository.RepositoryService;
+import org.apache.isis.core.unittestsupport.jmocking.JMockActions;
+import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
+import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+//TODO [ahuber] this test is still on JUnit 4 because it uses org.junit.Rule,
+//which no longer exists with JUnit 5
+public class SimpleObjects_Test {
+
+ @Rule
+ public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(Mode.INTERFACES_AND_CLASSES);
+
+ @Mock
+ RepositoryService mockRepositoryService;
+
+ SimpleObjects simpleObjects;
+
+ @Before
+ public void setUp() {
+ simpleObjects = new SimpleObjects();
+ simpleObjects.repositoryService = mockRepositoryService;
+ }
+
+ public static class Create extends SimpleObjects_Test {
+
+ @Test
+ public void happyCase() {
+
+ final String someName = "Foobar";
+
+ // given
+ context.checking(new Expectations() {
+ {
+ oneOf(mockRepositoryService).persist(with(nameOf(someName)));
+ will(JMockActions.returnArgument(0));
+ }
+
+ });
+
+ // when
+ final SimpleObject obj = simpleObjects.create(someName);
+
+ // then
+ assertThat(obj).isNotNull();
+ assertThat(obj.getName()).isEqualTo(someName);
+ }
+
+ private static Matcher<SimpleObject> nameOf(final String name) {
+ return new TypeSafeMatcher<SimpleObject>() {
+ @Override
+ protected boolean matchesSafely(final SimpleObject item) {
+ return name.equals(item.getName());
+ }
+
+ public void describeTo(final Description description) {
+ description.appendText("has name of '" + name + "'");
+ }
+ };
+ }
+ }
+
+ public static class ListAll extends SimpleObjects_Test {
+
+ @Test
+ public void happyCase() {
+
+ // given
+ final List<SimpleObject> all = _Lists.newArrayList();
+
+ context.checking(new Expectations() {
+ {
+ oneOf(mockRepositoryService).allInstances(SimpleObject.class);
+ will(returnValue(all));
+ }
+ });
+
+ // when
+ final List<SimpleObject> list = simpleObjects.listAll();
+
+ // then
+ assertThat(list).isEqualTo(all);
+ }
+ }
+}
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
new file mode 100644
index 0000000..c1c6bd3
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java
@@ -0,0 +1,35 @@
+#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.integtests;
+
+import org.apache.isis.core.integtestsupport.IntegrationTestJupiter;
+
+import domainapp.modules.simple.SimpleModule;
+
+public abstract class SimpleModuleIntegTestAbstract extends IntegrationTestJupiter {
+
+ public SimpleModuleIntegTestAbstract() {
+ super(new SimpleModule().withConfigurationProperty("isis.objects.editing", "false"));
+ }
+
+
+}
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
new file mode 100644
index 0000000..95e454f
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObject_IntegTest.java
@@ -0,0 +1,153 @@
+#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.integtests.tests;
+
+import java.sql.Timestamp;
+
+import javax.inject.Inject;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import org.apache.isis.applib.services.title.TitleService;
+import org.apache.isis.applib.services.wrapper.DisabledException;
+import org.apache.isis.applib.services.wrapper.InvalidException;
+import org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusIdLong;
+import org.apache.isis.core.metamodel.services.jdosupport.Persistable_datanucleusVersionTimestamp;
+
+import domainapp.modules.simple.dom.impl.SimpleObject;
+import domainapp.modules.simple.fixture.SimpleObject_persona;
+import domainapp.modules.simple.integtests.SimpleModuleIntegTestAbstract;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.hamcrest.CoreMatchers.containsString;
+import static org.junit.Assert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+
+public class SimpleObject_IntegTest extends SimpleModuleIntegTestAbstract {
+
+ SimpleObject simpleObject;
+
+ @BeforeEach
+ public void setUp() {
+ // given
+ simpleObject = fixtureScripts.runBuilderScript(SimpleObject_persona.FOO.builder());
+ }
+
+ public static class Name extends SimpleObject_IntegTest {
+
+ @Test
+ public void accessible() {
+ // when
+ final String name = wrap(simpleObject).getName();
+
+ // then
+ assertThat(name).isEqualTo(simpleObject.getName());
+ }
+
+ @Test
+ public void not_editable() {
+
+ // expect
+ assertThrows(DisabledException.class, ()->{
+
+ // when
+ wrap(simpleObject).setName("new name");
+
+ });
+ }
+
+ }
+
+ public static class UpdateName extends SimpleObject_IntegTest {
+
+ @Test
+ public void can_be_updated_directly() {
+
+ // when
+ wrap(simpleObject).updateName("new name");
+ transactionService.nextTransaction();
+
+ // then
+ assertThat(wrap(simpleObject).getName()).isEqualTo("new name");
+ }
+
+ @Test
+ public void failsValidation() {
+
+ // expect
+ InvalidException cause = assertThrows(InvalidException.class, ()->{
+
+ // when
+ wrap(simpleObject).updateName("new name!");
+
+ });
+
+ // also expect
+ assertThat(cause.getMessage(), containsString("Exclamation mark is not allowed."));
+
+ }
+ }
+
+
+ public static class Title extends SimpleObject_IntegTest {
+
+ @Inject
+ TitleService titleService;
+
+ @Test
+ public void interpolatesName() {
+
+ // given
+ final String name = wrap(simpleObject).getName();
+
+ // when
+ final String title = titleService.titleOf(simpleObject);
+
+ // then
+ assertThat(title).isEqualTo("Object: " + name);
+ }
+ }
+
+ public static class DataNucleusId extends SimpleObject_IntegTest {
+
+ @Test
+ public void should_be_populated() {
+ // when
+ final Long id = mixin(Persistable_datanucleusIdLong.class, simpleObject).prop();
+
+ // then
+ assertThat(id).isGreaterThanOrEqualTo(0);
+ }
+ }
+
+ public static class DataNucleusVersionTimestamp extends SimpleObject_IntegTest {
+
+ @Test
+ public void should_be_populated() {
+ // when
+ final Timestamp timestamp = mixin(Persistable_datanucleusVersionTimestamp.class, simpleObject).prop();
+ // then
+ assertThat(timestamp).isNotNull();
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObjects_IntegTest.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObjects_IntegTest.java
new file mode 100644
index 0000000..66d6d48
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObjects_IntegTest.java
@@ -0,0 +1,133 @@
+#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.integtests.tests;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+
+import java.sql.SQLIntegrityConstraintViolationException;
+import java.util.List;
+
+import javax.inject.Inject;
+
+import org.hamcrest.Description;
+import org.hamcrest.Matcher;
+import org.hamcrest.MatcherAssert;
+import org.hamcrest.TypeSafeMatcher;
+import org.junit.jupiter.api.Test;
+
+import com.google.common.base.Throwables;
+
+import domainapp.modules.simple.dom.impl.SimpleObject;
+import domainapp.modules.simple.dom.impl.SimpleObjects;
+import domainapp.modules.simple.fixture.SimpleObject_persona;
+import domainapp.modules.simple.integtests.SimpleModuleIntegTestAbstract;
+
+public class SimpleObjects_IntegTest extends SimpleModuleIntegTestAbstract {
+
+ @Inject
+ SimpleObjects menu;
+
+ public static class ListAll extends SimpleObjects_IntegTest {
+
+ @Test
+ public void happyCase() {
+
+ // given
+ fixtureScripts.runFixtureScript(new SimpleObject_persona.PersistAll());
+ transactionService.nextTransaction();
+
+ // when
+ final List<SimpleObject> all = wrap(menu).listAll();
+
+ // then
+ assertThat(all).hasSize(SimpleObject_persona.values().length);
+ }
+
+ @Test
+ public void whenNone() {
+
+ // when
+ final List<SimpleObject> all = wrap(menu).listAll();
+
+ // then
+ assertThat(all).hasSize(0);
+ }
+ }
+
+ public static class Create extends SimpleObjects_IntegTest {
+
+ @Test
+ public void happyCase() {
+
+ wrap(menu).create("Faz");
+
+ // then
... 4070 lines suppressed ...