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/11/28 09:01:59 UTC
[isis] 02/02: ISIS-2186: general tidy up of integration tests
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch ISIS-2186
in repository https://gitbox.apache.org/repos/asf/isis.git
commit 922995d91a0b20065780b9b3a0877c8beb0754c0
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Nov 28 09:01:32 2019 +0000
ISIS-2186: general tidy up of integration tests
* moves app manifests as static classes of IntegTestAbstract
- done this for the spring boot app also
* adds new IsisPresets for log4j2-test.xml
* adds comments with suggested usage in starter app's application.yml and application.properties
* makes HelloWorldModule into a @Configuration @ComponentScan
* reorganises simpleapp's BDD classes
* removes liveReload gradle stuff from simpleapp (we can use devtools eventually for this)
Also:
* removes lockdown test from helloworld
* reinstates commented-out code from helloworld
* adds banner.txt for helloworld and simpleapp
---
.../java/org/apache/isis/config/IsisPresets.java | 3 +-
.../main/resources/presets/Log4j2Test.properties | 18 ++
.../FakeDataModuleAppManifestForTesting.java | 48 -----
.../FakeDataModuleIntegTestAbstract.java | 44 ++--
.../integtests/FakeDataModuleIntegTestModule.java | 13 --
.../java/org/apache/isis/applib/AppManifest.java | 234 ---------------------
starters/helloworld/pom.xml | 38 ----
.../java/domainapp/application/HelloWorldApp.java | 36 +++-
.../application/HelloWorldAppManifest.java | 59 ------
.../main/java/domainapp/dom/HelloWorldModule.java | 7 +-
.../java/domainapp/dom/impl/HelloWorldObject.java | 10 +-
.../helloworld/src/main/resources/application.yml | 11 +
starters/helloworld/src/main/resources/banner.txt | 6 +
.../main/resources/config/application.properties | 16 +-
.../java/domainapp/dom/impl/lockdown/.gitignore | 1 -
.../dom/impl/lockdown/LockDownMavenDeps_Test.java | 50 -----
.../LockDownMavenDeps_Test.list.approved.txt | 211 -------------------
.../LockDownMavenDeps_Test.tree.approved.txt | 210 ------------------
starters/simpleapp/application/pom.xml | 1 +
.../bdd/{specs => }/RunIntegBddSpecs.java | 2 +-
.../bdd/{specs => glue}/SimpleObjectsStepDef.java | 8 +-
.../integtests/ApplicationIntegTestAbstract.java} | 53 ++---
.../integtests/SpringIntegrationTest.java | 47 -----
.../integtests/mml/DomainModel_IntegTest.java | 4 +-
.../integtests/mml/MetaModelService_IntegTest.java | 4 +-
.../integtests/smoke/Smoke_IntegTest.java | 5 +-
starters/simpleapp/module-simple/build.gradle | 72 -------
starters/simpleapp/module-simple/gradlew | 164 ---------------
starters/simpleapp/module-simple/gradlew.bat | 90 --------
starters/simpleapp/module-simple/layouts.gradle | 49 -----
starters/simpleapp/module-simple/liveReload.gradle | 56 -----
starters/simpleapp/module-simple/log4j2-test.xml | 60 ++++++
.../module-simple/logging-integtest.properties | 120 -----------
.../integtests/SimpleModuleIntegTestAbstract.java | 33 ++-
.../integtests/SimpleModuleManifestForTesting.java | 53 -----
.../src/main/java/domainapp/webapp/SimpleApp.java | 41 +++-
.../java/domainapp/webapp/SimpleAppManifest.java | 61 ------
.../webapp/src/main/resources/application.yml | 9 +-
.../simpleapp/webapp/src/main/resources/banner.txt | 6 +
.../main/resources/config/application.properties | 12 ++
40 files changed, 301 insertions(+), 1664 deletions(-)
diff --git a/core/config/src/main/java/org/apache/isis/config/IsisPresets.java b/core/config/src/main/java/org/apache/isis/config/IsisPresets.java
index e592896..6612229 100644
--- a/core/config/src/main/java/org/apache/isis/config/IsisPresets.java
+++ b/core/config/src/main/java/org/apache/isis/config/IsisPresets.java
@@ -28,8 +28,9 @@ public final class IsisPresets {
public static final String NoTranslations = "classpath:/presets/NoTranslations.properties";
+ public static final String Log4j2Test = "classpath:/presets/Log4j2Test.properties";
public static final String H2InMemory = "classpath:/presets/H2InMemory.properties";
-
+
/** randomized (unique) database name, eg. to allow for concurrent testing */
public static final String H2InMemory_withUniqueSchema = "classpath:/presets/H2InMemory_withUniqueSchema.properties";
diff --git a/core/config/src/main/resources/presets/Log4j2Test.properties b/core/config/src/main/resources/presets/Log4j2Test.properties
new file mode 100644
index 0000000..df0c635
--- /dev/null
+++ b/core/config/src/main/resources/presets/Log4j2Test.properties
@@ -0,0 +1,18 @@
+# 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.
+
+logging.config=log4j2-test.xml
\ No newline at end of file
diff --git a/extensions/lib/fakedata/integtests/src/test/java/org/isisaddons/module/fakedata/integtests/FakeDataModuleAppManifestForTesting.java b/extensions/lib/fakedata/integtests/src/test/java/org/isisaddons/module/fakedata/integtests/FakeDataModuleAppManifestForTesting.java
deleted file mode 100644
index 02a1584..0000000
--- a/extensions/lib/fakedata/integtests/src/test/java/org/isisaddons/module/fakedata/integtests/FakeDataModuleAppManifestForTesting.java
+++ /dev/null
@@ -1,48 +0,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.
- */
-package org.isisaddons.module.fakedata.integtests;
-
-
-import org.apache.isis.config.IsisPresets;
-import org.apache.isis.extensions.fixtures.IsisExtFixturesModule;
-import org.apache.isis.jdo.IsisBootDataNucleus;
-import org.apache.isis.runtime.spring.IsisBoot;
-import org.apache.isis.security.bypass.IsisBootSecurityBypass;
-import org.springframework.context.annotation.*;
-
-/**
- * Makes the integral parts of the 'simple app' web application.
- */
-@Configuration
-@PropertySources({
- @PropertySource(IsisPresets.H2InMemory),
- @PropertySource(IsisPresets.NoTranslations),
- @PropertySource(IsisPresets.DataNucleusAutoCreate),
-})
-@Import({
- IsisBoot.class,
- IsisBootSecurityBypass.class,
- IsisBootDataNucleus.class,
- IsisExtFixturesModule.class,
-
- FakeDataModuleIntegTestModule.class
-})
-public class FakeDataModuleAppManifestForTesting {
-
-}
diff --git a/extensions/lib/fakedata/integtests/src/test/java/org/isisaddons/module/fakedata/integtests/FakeDataModuleIntegTestAbstract.java b/extensions/lib/fakedata/integtests/src/test/java/org/isisaddons/module/fakedata/integtests/FakeDataModuleIntegTestAbstract.java
index aa16bae..4a6b22e 100644
--- a/extensions/lib/fakedata/integtests/src/test/java/org/isisaddons/module/fakedata/integtests/FakeDataModuleIntegTestAbstract.java
+++ b/extensions/lib/fakedata/integtests/src/test/java/org/isisaddons/module/fakedata/integtests/FakeDataModuleIntegTestAbstract.java
@@ -1,28 +1,42 @@
package org.isisaddons.module.fakedata.integtests;
-import javax.inject.Inject;
-
-import org.apache.isis.applib.services.factory.FactoryService;
-import org.apache.isis.applib.services.metamodel.MetaModelService;
-import org.apache.isis.applib.services.registry.ServiceRegistry;
-import org.apache.isis.applib.services.repository.RepositoryService;
-import org.apache.isis.applib.services.sessmgmt.SessionManagementService;
-import org.apache.isis.applib.services.user.UserService;
-import org.apache.isis.applib.services.wrapper.WrapperFactory;
-import org.apache.isis.applib.services.xactn.TransactionService;
+import org.apache.isis.config.IsisPresets;
+import org.apache.isis.extensions.fixtures.IsisExtFixturesModule;
import org.apache.isis.extensions.fixtures.IsisIntegrationTestAbstractWithFixtures;
+import org.apache.isis.jdo.IsisBootDataNucleus;
+import org.apache.isis.runtime.spring.IsisBoot;
+import org.apache.isis.security.bypass.IsisBootSecurityBypass;
+import org.isisaddons.module.fakedata.fixture.FakeDataFixturesModule;
import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
+import org.springframework.context.annotation.PropertySource;
+import org.springframework.context.annotation.PropertySources;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.transaction.annotation.Transactional;
-@SpringBootTest(
- classes = FakeDataModuleAppManifestForTesting.class,
- properties = {
- "logging.config=log4j2-test.xml",
- })
+@SpringBootTest(classes = FakeDataModuleIntegTestAbstract.AppManifest.class)
@ContextConfiguration
@Transactional
public abstract class FakeDataModuleIntegTestAbstract extends IsisIntegrationTestAbstractWithFixtures {
+ @Configuration
+ @PropertySources({
+ @PropertySource(IsisPresets.Log4j2Test),
+ @PropertySource(IsisPresets.H2InMemory_withUniqueSchema),
+ @PropertySource(IsisPresets.NoTranslations),
+ @PropertySource(IsisPresets.DataNucleusAutoCreate),
+ })
+ @Import({
+ IsisBoot.class,
+ IsisBootSecurityBypass.class,
+ IsisBootDataNucleus.class,
+ IsisExtFixturesModule.class,
+
+ FakeDataFixturesModule.class
+ })
+ public static class AppManifest {
+ }
+
}
diff --git a/extensions/lib/fakedata/integtests/src/test/java/org/isisaddons/module/fakedata/integtests/FakeDataModuleIntegTestModule.java b/extensions/lib/fakedata/integtests/src/test/java/org/isisaddons/module/fakedata/integtests/FakeDataModuleIntegTestModule.java
deleted file mode 100644
index aa5b22c..0000000
--- a/extensions/lib/fakedata/integtests/src/test/java/org/isisaddons/module/fakedata/integtests/FakeDataModuleIntegTestModule.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package org.isisaddons.module.fakedata.integtests;
-
-import org.isisaddons.module.fakedata.fixture.FakeDataFixturesModule;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-
-@Configuration
-@Import({
- FakeDataFixturesModule.class
-})
-@ComponentScan
-public class FakeDataModuleIntegTestModule {}
diff --git a/extensions/other/legacy/src/main/java/org/apache/isis/applib/AppManifest.java b/extensions/other/legacy/src/main/java/org/apache/isis/applib/AppManifest.java
deleted file mode 100644
index f93d0c8..0000000
--- a/extensions/other/legacy/src/main/java/org/apache/isis/applib/AppManifest.java
+++ /dev/null
@@ -1,234 +0,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.
- */
-
-package org.apache.isis.applib;
-
-import javax.jdo.annotations.PersistenceCapable;
-
-/**
- * TODO[2112] keep or remove?
- *
- * Programmatic specification of the constituent parts of an application, most specifically the modules that contain
- * domain services and possibly entities.
- *
- * <p>
- * The modules are specified as classes; the framework uses the packages of these classes as the locations on the
- * classpath to search for domain services (annotated with {@link org.apache.isis.applib.annotation.DomainService})
- * and entities (annotated with {@link PersistenceCapable}).
- * </p>
- *
- * <p>
- * The interface also allows certain other aspects of the runtime to be specified:
- * <ul>
- * <li>which authentication and/or authorization mechanism to be used (useful to disable security when developing/demoing)</li>
- * <li>which fixtures to run by default</li>
- * <li>overriding of arbitrary other configuration properties</li>
- * <li>which modules to load (useful when developing, to reduce startup times; just load the modules required)</li>
- * </ul>
- * </p>
- *
- * <p>
- * To use, implement this interface and then define as the <tt>isis.appManifest</tt> key within the
- * <tt>isis.properties</tt> configuration file, or specify programmatically when running integration tests.
- * </p>
- *
- * <p>
- * By convention the class implementing this interface reside in a <tt>xxx-home</tt> Maven module. This
- * can be referenced by both the <tt>xxx-integtests</tt> (Maven) module and the <tt>xxx-webapp</tt> (Maven) module,
- * allowing configuration to be centralized.
- * </p>
- *
- * <p>
- * There are a number of subsidiary goals (not yet implemented):
- * <ul>
- * <li>
- * <p>Allow different integration tests to run with different manifests. Normally the running application is
- * shared (on a thread-local) between integration tests. What the framework could do is to be intelligent
- * enough to keep track of the manifest in use for each integration test and tear down
- * the shared state if the "next" test uses a different manifest</p>
- * </li>
- * <li>
- * Speed up bootstrapping by only scanning for classes annotated by
- * {@link org.apache.isis.applib.annotation.DomainService} and {@link javax.jdo.annotations.PersistenceCapable}
- * once.
- * </li>
- * <li>
- * Provide a programmatic way to contribute elements of `web.xml`.
- * </li>
- * <li>
- * Provide a programmatic way to configure Shiro security.
- * </li>
- * <li>
- * <p>Anticipate the module changes forthcoming in Java 9. Eventually we see that the AppManifest class acting
- * as an "aggregator", with the list of modules will become Java 9 modules each advertising the types that they
- * export. It might even be possible for AppManifests to be switched on and off dynamically (eg if Java9 is
- * compatible with OSGi, being one of the design goals).</p>
- * </li>
- * </ul>
- * </p>
- */
-public interface AppManifest {
-
-// /**
-// * A list of classes, each of which representing the root of one of the modules containing services and possibly
-// * entities, which together makes up the running application.
-// *
-// * <p>
-// * The package of each such class is used as the basis for searching for domain services and registered
-// * entities. As such it replaces and overrides both the
-// * <tt>isis.services.ServicesInstallerFromAnnotation.packagePrefix</tt> key (usually found in the
-// * <tt>isis.properties</tt> file) and the
-// * <tt>isis.persistor.datanucleus.RegisterEntities.packagePrefix</tt> key (usually found in the
-// * <tt>persistor_datanucleus.properties</tt> file). The value of the <tt>isis.services-installer</tt>
-// * configuration property is also ignored.
-// * </p>
-// */
-// public List<Class<?>> getModules();
-//
-// /**
-// * If non-null, overrides the value of <tt>isis.services</tt> configuration property to specify a list of
-// * additional classes to be instantiated as domain services (over and above the {@link DomainService}-annotated
-// * services defined via {@link #getModules()}.
-// *
-// * <p>
-// * Normally we recommend services are defined exclusively through {@link #getModules()}, and that this method
-// * should therefore return an empty list. However, this method exists to support those use cases where either the
-// * service required does not have a {@link DomainService} annotation, or where it does have the annotation
-// * but its containing module cannot (for whatever reason) be listed under {@link #getModules()}.
-// * </p>
-// */
-// public List<Class<?>> getAdditionalServices();
-//
-// /**
-// * If non-null, overrides the value of <tt>isis.authentication</tt> configuration property to specify the
-// * authentication mechanism.
-// *
-// * <p>
-// * Ignored for integration tests (which always uses the 'bypass' mechanism).
-// * </p>
-// */
-// public String getAuthenticationMechanism();
-//
-// /**
-// * If non-null, overrides the value of <tt>isis.authorization</tt> configuration property.
-// *
-// * <p>
-// * Ignored for integration tests (which always uses the 'bypass' mechanism).
-// * </p>
-// */
-// public String getAuthorizationMechanism();
-//
-// /**
-// * If non-null, overrides the value of <tt>isis.fixtures</tt> configuration property.
-// */
-// public List<Class<? extends FixtureScript>> getFixtures();
-//
-// /**
-// * Overrides for any other configuration properties.
-// */
-// public Map<String,String> getConfigurationProperties();
-
-// /**
-// * Holds the set of domain services, persistent entities and fixture scripts.services
-// */
-// public final static class Registry {
-//
-// public static Registry current() {
-// return _Context.computeIfAbsent(Registry.class, Registry::new);
-// }
-//
-// @Getter @Setter private Set<Class<?>> persistenceCapableTypes;
-// @Getter @Setter private Set<Class<?>> mixinTypes;
-// @Getter @Setter private Set<Class<? extends FixtureScript>> fixtureScriptTypes;
-// @Getter @Setter private Set<Class<?>> domainServiceTypes;
-// @Getter @Setter private Set<Class<?>> domainObjectTypes;
-// @Getter @Setter private Set<Class<?>> viewModelTypes;
-// @Getter @Setter private Set<Class<?>> xmlElementTypes;
-// }
-
- // -- CONFIG
-
-// public static class Presets {
-//
-// public static final String ISIS_PERSISTOR = "isis.persistor.";
-// public static final String ISIS_PERSISTOR_DATANUCLEUS = ISIS_PERSISTOR + "datanucleus.";
-// public static final String ISIS_PERSISTOR_DATANUCLEUS_IMPL = ISIS_PERSISTOR_DATANUCLEUS + "impl.";
-//
-// public static Map<String,String> withH2InMemoryProperties(final Map<String, String> map) {
-// //map.put(ISIS_PERSISTOR_DATANUCLEUS_IMPL + "javax.jdo.option.ConnectionURL", "jdbc:h2:mem:test-" + UUID.randomUUID().toString());
-// map.put(ISIS_PERSISTOR_DATANUCLEUS_IMPL + "javax.jdo.option.ConnectionURL", "jdbc:h2:mem:test");
-// map.put(ISIS_PERSISTOR_DATANUCLEUS_IMPL + "javax.jdo.option.ConnectionDriverName", "org.h2.Driver");
-// map.put(ISIS_PERSISTOR_DATANUCLEUS_IMPL + "javax.jdo.option.ConnectionUserName", "sa");
-// map.put(ISIS_PERSISTOR_DATANUCLEUS_IMPL + "javax.jdo.option.ConnectionPassword", "");
-//
-// return map;
-// }
-//
-// public static Map<String,String> withHsqlDbInMemoryProperties(final Map<String, String> map) {
-// //map.put(ISIS_PERSISTOR_DATANUCLEUS_IMPL + "javax.jdo.option.ConnectionURL", "jdbc:hsqldb:mem:test-" + UUID.randomUUID().toString());
-// map.put(ISIS_PERSISTOR_DATANUCLEUS_IMPL + "javax.jdo.option.ConnectionURL", "jdbc:hsqldb:mem:test");
-// map.put(ISIS_PERSISTOR_DATANUCLEUS_IMPL + "javax.jdo.option.ConnectionDriverName", "org.hsqldb.jdbcDriver");
-// map.put(ISIS_PERSISTOR_DATANUCLEUS_IMPL + "javax.jdo.option.ConnectionUserName", "sa");
-// map.put(ISIS_PERSISTOR_DATANUCLEUS_IMPL + "javax.jdo.option.ConnectionPassword", "");
-//
-// return map;
-// }
-//
-// public static Map<String,String> withDataNucleusProperties(final Map<String, String> map) {
-//
-// // Don't do validations that consume setup time.
-// map.put(ISIS_PERSISTOR_DATANUCLEUS_IMPL + "datanucleus.schema.autoCreateAll", "true");
-// map.put(ISIS_PERSISTOR_DATANUCLEUS_IMPL + "datanucleus.schema.validateAll", "false");
-//
-// // other properties as per WEB-INF/persistor_datanucleus.properties
-// map.put(ISIS_PERSISTOR_DATANUCLEUS_IMPL + "datanucleus.persistenceByReachabilityAtCommit", "false");
-// map.put(ISIS_PERSISTOR_DATANUCLEUS_IMPL + "datanucleus.identifier.case", "MixedCase");
-// map.put(ISIS_PERSISTOR_DATANUCLEUS_IMPL + "datanucleus.cache.level2.type" ,"none");
-// map.put(ISIS_PERSISTOR_DATANUCLEUS_IMPL + "datanucleus.cache.level2.mode", "ENABLE_SELECTIVE");
-//
-// return map;
-// }
-//
-// public static Map<String,String> withIsisIntegTestProperties(final Map<String, String> map) {
-//
-// // automatically install any fixtures that might have been registered
-// map.put(ISIS_PERSISTOR_DATANUCLEUS + "install-fixtures", "true");
-// map.put(ISIS_PERSISTOR + "enforceSafeSemantics", "false");
-// map.put("isis.services.eventbus.allowLateRegistration", "true");
-//
-// return map;
-// }
-//
-// public enum MemDb {
-// HSQLDB{
-// @Override public void withProperties(final Map<String, String> map) {
-// withHsqlDbInMemoryProperties(map);
-// }
-// },
-// H2{
-// @Override public void withProperties(final Map<String, String> map) {
-// withH2InMemoryProperties(map);
-// }
-// };
-//
-// public abstract void withProperties(final Map<String, String> map);
-// }
-// }
-
-}
diff --git a/starters/helloworld/pom.xml b/starters/helloworld/pom.xml
index f59d15b..fdf33eb 100644
--- a/starters/helloworld/pom.xml
+++ b/starters/helloworld/pom.xml
@@ -101,44 +101,6 @@
</profile>
<profile>
- <id>lockdown</id>
- <activation>
- <property>
- <name>lockdown</name>
- </property>
- </activation>
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-dependency-plugin</artifactId>
- <executions>
- <execution>
- <id>list</id>
- <phase>generate-test-resources</phase>
- <goals>
- <goal>list</goal>
- </goals>
- <configuration>
- <outputFile>${project.build.directory}/test-classes/domainapp/dom/impl/lockdown/LockDownMavenDeps_Test.list.actual.txt</outputFile>
- </configuration>
- </execution>
- <execution>
- <id>tree</id>
- <phase>generate-test-resources</phase>
- <goals>
- <goal>tree</goal>
- </goals>
- <configuration>
- <outputFile>${project.build.directory}/test-classes/domainapp/dom/impl/lockdown/LockDownMavenDeps_Test.tree.actual.txt</outputFile>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
-
- <profile>
<id>docker</id>
<activation>
<property>
diff --git a/starters/helloworld/src/main/java/domainapp/application/HelloWorldApp.java b/starters/helloworld/src/main/java/domainapp/application/HelloWorldApp.java
index c04a181..5b0d1fe 100644
--- a/starters/helloworld/src/main/java/domainapp/application/HelloWorldApp.java
+++ b/starters/helloworld/src/main/java/domainapp/application/HelloWorldApp.java
@@ -18,26 +18,44 @@
*/
package domainapp.application;
+import domainapp.dom.HelloWorldModule;
+
+import org.apache.isis.config.IsisPresets;
+import org.apache.isis.jdo.IsisBootDataNucleus;
+import org.apache.isis.runtime.spring.IsisBoot;
+import org.apache.isis.security.shiro.IsisBootSecurityShiro;
+import org.apache.isis.viewer.restfulobjects.IsisBootViewerRestfulObjects;
+import org.apache.isis.viewer.wicket.viewer.IsisBootViewerWicket;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
-import org.springframework.context.annotation.Import;
+import org.springframework.context.annotation.*;
-/**
- * Bootstrap the application.
- */
@SpringBootApplication
@Import({
- HelloWorldAppManifest.class,
+ HelloWorldApp.AppManifest.class,
})
-@ServletComponentScan()
public class HelloWorldApp extends SpringBootServletInitializer {
+ @Configuration
+ @PropertySources({
+ @PropertySource(IsisPresets.NoTranslations),
+ @PropertySource(IsisPresets.DataNucleusAutoCreate),
+ })
+ @Import({
+ IsisBoot.class,
+ IsisBootSecurityShiro.class,
+ IsisBootDataNucleus.class,
+ IsisBootViewerRestfulObjects.class,
+ IsisBootViewerWicket.class,
+ HelloWorldModule.class
+ })
+ public static class AppManifest {
+ }
+
/**
- *
- * @param args
- * @implNote this is to support the <em>Spring Boot Maven Plugin</em>, which auto-detects an
+ * @implNote this is to support the <em>Spring Boot Maven Plugin</em>, which auto-detects an
* entry point by searching for classes having a {@code main(...)}
*/
public static void main(String[] args) {
diff --git a/starters/helloworld/src/main/java/domainapp/application/HelloWorldAppManifest.java b/starters/helloworld/src/main/java/domainapp/application/HelloWorldAppManifest.java
deleted file mode 100644
index 168fe1b..0000000
--- a/starters/helloworld/src/main/java/domainapp/application/HelloWorldAppManifest.java
+++ /dev/null
@@ -1,59 +0,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.
- */
-package domainapp.application;
-
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.PropertySource;
-import org.springframework.context.annotation.PropertySources;
-
-import org.apache.isis.config.IsisPresets;
-import org.apache.isis.jdo.IsisBootDataNucleus;
-import org.apache.isis.runtime.spring.IsisBoot;
-import org.apache.isis.security.shiro.IsisBootSecurityShiro;
-import org.apache.isis.viewer.restfulobjects.IsisBootViewerRestfulObjects;
-import org.apache.isis.viewer.wicket.viewer.IsisBootViewerWicket;
-
-import domainapp.dom.HelloWorldModule;
-
-/**
- * Makes the integral parts of the 'hello world' web application.
- */
-@Configuration
-@PropertySources({
- @PropertySource(IsisPresets.H2InMemory),
- @PropertySource(IsisPresets.NoTranslations),
- @PropertySource(IsisPresets.DataNucleusAutoCreate),
-})
-@Import({
- IsisBoot.class,
- IsisBootSecurityShiro.class,
-// IsisBootSecurityKeycloak.class,
- IsisBootDataNucleus.class,
- IsisBootViewerRestfulObjects.class,
- IsisBootViewerWicket.class
-})
-@ComponentScan(
- basePackageClasses= {
- HelloWorldModule.class
- })
-public class HelloWorldAppManifest {
-
-}
diff --git a/starters/helloworld/src/main/java/domainapp/dom/HelloWorldModule.java b/starters/helloworld/src/main/java/domainapp/dom/HelloWorldModule.java
index fcf95bd..1443506 100644
--- a/starters/helloworld/src/main/java/domainapp/dom/HelloWorldModule.java
+++ b/starters/helloworld/src/main/java/domainapp/dom/HelloWorldModule.java
@@ -18,6 +18,11 @@
*/
package domainapp.dom;
-public final class HelloWorldModule {
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+@ComponentScan
+public class HelloWorldModule {
}
diff --git a/starters/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObject.java b/starters/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObject.java
index 29a6dd5..786041d 100644
--- a/starters/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObject.java
+++ b/starters/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObject.java
@@ -79,11 +79,11 @@ public class HelloWorldObject implements Comparable<HelloWorldObject> {
this.notes = notes;
}
-// @Action(
-// semantics = SemanticsOf.IDEMPOTENT,
-// command = CommandReification.ENABLED, publishing = Publishing.ENABLED,
-// associateWith = "name"
-// )
+ @Action(
+ semantics = SemanticsOf.IDEMPOTENT,
+ command = CommandReification.ENABLED, publishing = Publishing.ENABLED,
+ associateWith = "name"
+ )
public HelloWorldObject updateName(
@Name final String name) {
setName(name);
diff --git a/starters/helloworld/src/main/resources/application.yml b/starters/helloworld/src/main/resources/application.yml
index 62315ff..de91a4d 100644
--- a/starters/helloworld/src/main/resources/application.yml
+++ b/starters/helloworld/src/main/resources/application.yml
@@ -1,10 +1,18 @@
+#
+# Recommend use for static configuration that does not change between environments.
+#
+# See also config/application.properties
+#
isis:
reflector:
+ explicit-annotations:
+ action: true
validator:
allowDeprecated: false
noParamsOnly: true
explicitObjectType: true
serviceActionsOnly: true
+
mixinsOnly: true
facet:
@@ -67,3 +75,6 @@ isis:
level2:
type: none
mode: ENABLE_SELECTIVE
+spring:
+ banner:
+ location: banner.txt
diff --git a/starters/helloworld/src/main/resources/banner.txt b/starters/helloworld/src/main/resources/banner.txt
new file mode 100644
index 0000000..3f593d9
--- /dev/null
+++ b/starters/helloworld/src/main/resources/banner.txt
@@ -0,0 +1,6 @@
+ ,---. ,--. ,--. ,--.
+ / O \ ,---. ,--,--. ,---. | ,---. ,---. | | ,---. `--' ,---.
+| .-. | | .-. | ' ,-. | | .--' | .-. | | .-. : | | ( .-' ,--. ( .-'
+| | | | | '-' ' \ '-' | \ `--. | | | | \ --. | | .-' `) | | .-' `)
+`--' `--' | |-' `--`--' `---' `--' `--' `----' `--' `----' `--' `----'
+ `--'
diff --git a/starters/helloworld/src/main/resources/config/application.properties b/starters/helloworld/src/main/resources/config/application.properties
index f39e40e..cb0aeef 100644
--- a/starters/helloworld/src/main/resources/config/application.properties
+++ b/starters/helloworld/src/main/resources/config/application.properties
@@ -1,10 +1,12 @@
-
#
-# moved from application.properties for demo purposes only
-# renamed to kebab-case, but the old camelCase is also recognised and supported.
+# Recommend use for configuration that changes between environments.
#
-# to test, try commenting out the @Action annotation on HelloWorld#updateName(...)
-# with this property set to either false or true.
+# To override externally, see Spring Boot docs
+# https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config
#
-
-isis.reflector.explicit-annotations.action=true
+# See also /application.yml
+#
+isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionURL = jdbc:h2:mem:test
+isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionDriverName = org.h2.Driver
+isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionUserName = sa
+isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionPassword =
diff --git a/starters/helloworld/src/test/java/domainapp/dom/impl/lockdown/.gitignore b/starters/helloworld/src/test/java/domainapp/dom/impl/lockdown/.gitignore
deleted file mode 100644
index e66bc56..0000000
--- a/starters/helloworld/src/test/java/domainapp/dom/impl/lockdown/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-*.received.txt
\ No newline at end of file
diff --git a/starters/helloworld/src/test/java/domainapp/dom/impl/lockdown/LockDownMavenDeps_Test.java b/starters/helloworld/src/test/java/domainapp/dom/impl/lockdown/LockDownMavenDeps_Test.java
deleted file mode 100644
index 3ae0318..0000000
--- a/starters/helloworld/src/test/java/domainapp/dom/impl/lockdown/LockDownMavenDeps_Test.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package domainapp.dom.impl.lockdown;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.Arrays;
-
-import org.approvaltests.Approvals;
-import org.approvaltests.reporters.DiffReporter;
-import org.approvaltests.reporters.UseReporter;
-import org.junit.Before;
-import org.junit.Test;
-
-import com.google.common.base.Charsets;
-import com.google.common.io.Resources;
-
-import static org.hamcrest.CoreMatchers.*;
-import static org.junit.Assume.assumeThat;
-
-public class LockDownMavenDeps_Test {
-
- @Before
- public void setUp() throws Exception {
- assumeThat(System.getProperty("lockdown"), is(not(nullValue())));
- }
-
- @UseReporter(DiffReporter.class)
- @Test
- public void list() throws Exception {
- Approvals.verify(sort(read("list")));
- }
-
- @UseReporter(DiffReporter.class)
- @Test
- public void tree() throws Exception {
- Approvals.verify(read("tree"));
- }
-
- private String read(final String goal) throws IOException {
- final URL resource = Resources.getResource(getClass(),
- String.format("%s.%s.actual.txt", getClass().getSimpleName(), goal));
- return Resources.toString(resource, Charsets.UTF_8);
- }
-
- private static String sort(final String unsorted) {
- final String[] lines = unsorted.split("[\r\n]+");
- Arrays.sort(lines);
- return String.join("\n", lines);
- }
-
-}
diff --git a/starters/helloworld/src/test/java/domainapp/dom/impl/lockdown/LockDownMavenDeps_Test.list.approved.txt b/starters/helloworld/src/test/java/domainapp/dom/impl/lockdown/LockDownMavenDeps_Test.list.approved.txt
deleted file mode 100644
index 3e25f09..0000000
--- a/starters/helloworld/src/test/java/domainapp/dom/impl/lockdown/LockDownMavenDeps_Test.list.approved.txt
+++ /dev/null
@@ -1,211 +0,0 @@
-
- args4j:args4j:jar:2.0.26:compile
- cglib:cglib-nodep:jar:3.2.12:compile
- cglib:cglib:jar:3.2.8:test
- com.approvaltests:approvaltests-util:jar:4.0.2:test
- com.approvaltests:approvaltests:jar:4.0.2:test
- com.fasterxml.jackson.core:jackson-annotations:jar:2.10.0:compile
- com.fasterxml.jackson.core:jackson-core:jar:2.10.0:compile
- com.fasterxml.jackson.core:jackson-databind:jar:2.10.0:compile
- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:jar:2.10.0:compile
- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.10.0:compile
- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.10.0:compile
- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.10.0:compile
- com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.10.0:compile
- com.fasterxml:classmate:jar:1.5.0:compile
- com.github.openjson:openjson:jar:1.0.10:compile
- com.google.code.findbugs:annotations:jar:2.0.1:compile
- com.google.code.findbugs:jsr305:jar:3.0.2:compile
- com.google.code.gson:gson:jar:2.8.6:compile
- com.google.errorprone:error_prone_annotations:jar:2.3.2:compile
- com.google.guava:failureaccess:jar:1.0.1:compile
- com.google.guava:guava:jar:28.1-jre:compile
- com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:compile
- com.google.j2objc:j2objc-annotations:jar:1.3:compile
- com.google.javascript:closure-compiler-externs:jar:v20190325:compile
- com.google.javascript:closure-compiler-unshaded:jar:v20190325:compile
- com.google.jsinterop:jsinterop-annotations:jar:1.0.0:compile
- com.h2database:h2:jar:1.4.199:compile
- com.jayway.jsonpath:json-path:jar:2.4.0:test
- com.sun.mail:javax.mail:jar:1.6.0:compile
- com.vaadin.external.google:android-json:jar:0.0.20131108.vaadin1:test
- commons-beanutils:commons-beanutils:jar:1.9.3:compile
- commons-codec:commons-codec:jar:1.13:compile
- commons-collections:commons-collections:jar:3.2.2:compile
- commons-fileupload:commons-fileupload:jar:1.4:compile
- commons-io:commons-io:jar:2.6:compile
- commons-logging:commons-logging:jar:1.2:compile
- de.agilecoders.wicket.webjars:wicket-webjars:jar:2.0.15:compile
- de.agilecoders.wicket:jquery-selectors:jar:2.0.7:compile
- de.agilecoders.wicket:wicket-bootstrap-core:jar:2.0.11:compile
- de.agilecoders.wicket:wicket-bootstrap-extensions:jar:2.0.11:compile
- de.agilecoders.wicket:wicket-bootstrap-themes:jar:2.0.11:compile
- io.swagger:swagger-annotations:jar:1.5.21:compile
- io.swagger:swagger-core:jar:1.5.21:compile
- io.swagger:swagger-models:jar:1.5.21:compile
- jakarta.activation:jakarta.activation-api:jar:1.2.1:compile
- jakarta.annotation:jakarta.annotation-api:jar:1.3.5:compile
- jakarta.validation:jakarta.validation-api:jar:2.0.1:compile
- jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.2:compile
- javax.activation:activation:jar:1.1:compile
- javax.inject:javax.inject:jar:1:compile
- javax.json.bind:javax.json.bind-api:jar:1.0:compile
- javax.transaction:transaction-api:jar:1.1:compile
- javax:javaee-api:jar:8.0:compile
- joda-time:joda-time:jar:2.10.4:compile
- junit:junit:jar:4.12:test
- net.bytebuddy:byte-buddy:jar:1.10.1:compile
- net.ftlines.wicket-source:wicket-source:jar:7.0.0:compile
- net.jcip:jcip-annotations:jar:1.0:compile
- net.minidev:accessors-smart:jar:1.2:test
- net.minidev:json-smart:jar:2.3:test
- org.apache-extras.beanshell:bsh:jar:2.0b6:test
- org.apache.commons:commons-collections4:jar:4.3:compile
- org.apache.commons:commons-email:jar:1.4:compile
- org.apache.commons:commons-lang3:jar:3.9:compile
- org.apache.httpcomponents:httpclient:jar:4.5.10:compile
- org.apache.httpcomponents:httpcore:jar:4.4.12:compile
- org.apache.isis.core:isis-applib:jar:2.0.0-M3-SNAPSHOT:compile
- org.apache.isis.core:isis-codegen-bytebuddy:jar:2.0.0-M3-SNAPSHOT:compile
- org.apache.isis.core:isis-commons:jar:2.0.0-M3-SNAPSHOT:compile
- org.apache.isis.core:isis-config:jar:2.0.0-M3-SNAPSHOT:compile
- org.apache.isis.core:isis-integtestsupport:jar:2.0.0-M3-SNAPSHOT:test
- org.apache.isis.core:isis-metamodel:jar:2.0.0-M3-SNAPSHOT:compile
- org.apache.isis.core:isis-persistence-jdo-common:jar:2.0.0-M3-SNAPSHOT:compile
- org.apache.isis.core:isis-persistence-jdo-datanucleus5:jar:2.0.0-M3-SNAPSHOT:compile
- org.apache.isis.core:isis-runtime-extensions:jar:2.0.0-M3-SNAPSHOT:compile
- org.apache.isis.core:isis-runtime-services:jar:2.0.0-M3-SNAPSHOT:compile
- org.apache.isis.core:isis-runtime-web:jar:2.0.0-M3-SNAPSHOT:compile
- org.apache.isis.core:isis-runtime:jar:2.0.0-M3-SNAPSHOT:compile
- org.apache.isis.core:isis-schema:jar:2.0.0-M3-SNAPSHOT:compile
- org.apache.isis.core:isis-security-bypass:jar:2.0.0-M3-SNAPSHOT:compile
- org.apache.isis.core:isis-security-keycloak:jar:2.0.0-M3-SNAPSHOT:compile
- org.apache.isis.core:isis-security-shiro:jar:2.0.0-M3-SNAPSHOT:compile
- org.apache.isis.core:isis-security:jar:2.0.0-M3-SNAPSHOT:compile
- org.apache.isis.core:isis-unittestsupport:jar:2.0.0-M3-SNAPSHOT:test
- org.apache.isis.core:isis-viewer-restfulobjects-applib:jar:2.0.0-M3-SNAPSHOT:compile
- org.apache.isis.core:isis-viewer-restfulobjects-jaxrsresteasy4:jar:2.0.0-M3-SNAPSHOT:compile
- org.apache.isis.core:isis-viewer-restfulobjects-rendering:jar:2.0.0-M3-SNAPSHOT:compile
- org.apache.isis.core:isis-viewer-restfulobjects-server:jar:2.0.0-M3-SNAPSHOT:compile
- org.apache.isis.core:isis-viewer-wicket-impl:jar:2.0.0-M3-SNAPSHOT:compile
- org.apache.isis.core:isis-viewer-wicket-model:jar:2.0.0-M3-SNAPSHOT:compile
- org.apache.isis.core:isis-viewer-wicket-ui:jar:2.0.0-M3-SNAPSHOT:compile
- org.apache.isis.mavendeps:isis-mavendeps-jdk11:pom:2.0.0-M3-SNAPSHOT:compile
- org.apache.isis.mavendeps:isis-mavendeps-testing:pom:2.0.0-M3-SNAPSHOT:test
- org.apache.isis.mavendeps:isis-mavendeps-webapp:pom:2.0.0-M3-SNAPSHOT:compile
- org.apache.logging.log4j:log4j-api:jar:2.12.1:compile
- org.apache.logging.log4j:log4j-core:jar:2.12.1:compile
- org.apache.logging.log4j:log4j-jul:jar:2.12.1:compile
- org.apache.logging.log4j:log4j-slf4j-impl:jar:2.12.1:compile
- org.apache.shiro:shiro-cache:jar:1.4.1:compile
- org.apache.shiro:shiro-config-core:jar:1.4.1:compile
- org.apache.shiro:shiro-config-ogdl:jar:1.4.1:compile
- org.apache.shiro:shiro-core:jar:1.4.1:compile
- org.apache.shiro:shiro-crypto-cipher:jar:1.4.1:compile
- org.apache.shiro:shiro-crypto-core:jar:1.4.1:compile
- org.apache.shiro:shiro-crypto-hash:jar:1.4.1:compile
- org.apache.shiro:shiro-event:jar:1.4.1:compile
- org.apache.shiro:shiro-lang:jar:1.4.1:compile
- org.apache.shiro:shiro-web:jar:1.4.1:compile
- org.apache.tomcat.embed:tomcat-embed-core:jar:9.0.27:compile
- org.apache.tomcat.embed:tomcat-embed-el:jar:9.0.27:compile
- org.apache.tomcat.embed:tomcat-embed-websocket:jar:9.0.27:compile
- org.apache.wicket:wicket-auth-roles:jar:8.6.1:compile
- org.apache.wicket:wicket-core:jar:8.6.1:compile
- org.apache.wicket:wicket-devutils:jar:8.6.1:compile
- org.apache.wicket:wicket-extensions:jar:8.6.1:compile
- org.apache.wicket:wicket-ioc:jar:8.6.1:compile
- org.apache.wicket:wicket-request:jar:8.6.1:compile
- org.apache.wicket:wicket-spring:jar:8.6.1:compile
- org.apache.wicket:wicket-util:jar:8.6.1:compile
- org.apache.wicket:wicket:pom:8.6.1:compile
- org.apiguardian:apiguardian-api:jar:1.1.0:test
- org.assertj:assertj-core:jar:3.13.2:test
- org.checkerframework:checker-qual:jar:2.8.1:compile
- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:compile
- org.codehaus.jackson:jackson-jaxrs:jar:1.9.13:compile
- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13:compile
- org.codehaus.jackson:jackson-xc:jar:1.9.13:compile
- org.codehaus.mojo:animal-sniffer-annotations:jar:1.18:compile
- org.danekja:jdk-serializable-functional:jar:1.8.5:compile
- org.datanucleus:datanucleus-api-jdo:jar:5.2.2:compile
- org.datanucleus:datanucleus-core:jar:5.2.2:compile
- org.datanucleus:datanucleus-jdo-query:jar:5.0.9:compile
- org.datanucleus:datanucleus-jodatime:jar:5.2.0-release:compile
- org.datanucleus:datanucleus-rdbms:jar:5.2.1:compile
- org.datanucleus:javax.jdo:jar:3.2.0-m12:compile
- org.hamcrest:hamcrest-core:jar:2.1:test
- org.hamcrest:hamcrest-library:jar:2.1:test
- org.hamcrest:hamcrest:jar:2.1:compile
- org.hibernate.validator:hibernate-validator:jar:6.0.17.Final:compile
- org.hsqldb:hsqldb:jar:2.5.0:test
- org.jboss.logging:jboss-logging:jar:3.4.1.Final:compile
- org.jboss.resteasy:resteasy-jackson-provider:jar:4.0.0.Beta5:compile
- org.jboss.resteasy:resteasy-jaxb-provider:jar:4.0.0.Beta5:compile
- org.jboss.resteasy:resteasy-jaxrs-services:jar:4.0.0.Beta5:compile
- org.jboss.resteasy:resteasy-jaxrs:jar:4.0.0.Beta5:compile
- org.jboss.spec.javax.annotation:jboss-annotations-api_1.2_spec:jar:1.0.0.Final:compile
- org.jboss.spec.javax.ws.rs:jboss-jaxrs-api_2.1_spec:jar:1.0.1.Final:compile
- org.jboss.spec.javax.xml.bind:jboss-jaxb-api_2.3_spec:jar:1.0.0.Final:compile
- org.jmock:jmock-imposters:jar:2.11.0:test
- org.jmock:jmock-junit4:jar:2.11.0:test
- org.jmock:jmock-legacy:jar:2.11.0:test
- org.jmock:jmock-testjar:jar:2.11.0:test
- org.jmock:jmock:jar:2.11.0:test
- org.junit.jupiter:junit-jupiter-api:jar:5.5.2:test
- org.junit.jupiter:junit-jupiter-engine:jar:5.5.2:test
- org.junit.jupiter:junit-jupiter-params:jar:5.5.2:test
- org.junit.jupiter:junit-jupiter:jar:5.5.2:test
- org.junit.platform:junit-platform-commons:jar:1.5.2:test
- org.junit.platform:junit-platform-engine:jar:1.5.2:test
- org.junit.vintage:junit-vintage-engine:jar:5.5.2:test
- org.mockito:mockito-core:jar:3.1.0:test
- org.mockito:mockito-junit-jupiter:jar:3.1.0:test
- org.objenesis:objenesis:jar:2.2:compile
- org.opentest4j:opentest4j:jar:1.2.0:test
- org.ow2.asm:asm-analysis:jar:7.1:compile
- org.ow2.asm:asm-tree:jar:7.1:compile
- org.ow2.asm:asm-util:jar:7.1:compile
- org.picocontainer:picocontainer:jar:2.15:test
- org.projectlombok:lombok:jar:1.18.10:compile
- org.reactivestreams:reactive-streams:jar:1.0.3:compile
- org.skyscreamer:jsonassert:jar:1.5.0:test
- org.slf4j:jul-to-slf4j:jar:1.7.28:compile
- org.slf4j:slf4j-api:jar:1.7.28:compile
- org.springframework.boot:spring-boot-actuator-autoconfigure:jar:2.2.0.RELEASE:compile
- org.springframework.boot:spring-boot-actuator:jar:2.2.0.RELEASE:compile
- org.springframework.boot:spring-boot-autoconfigure:jar:2.2.0.RELEASE:compile
- org.springframework.boot:spring-boot-starter-json:jar:2.2.0.RELEASE:compile
- org.springframework.boot:spring-boot-starter-log4j2:jar:2.2.0.RELEASE:compile
- org.springframework.boot:spring-boot-starter-test:jar:2.2.0.RELEASE:test
- org.springframework.boot:spring-boot-starter-tomcat:jar:2.2.0.RELEASE:compile
- org.springframework.boot:spring-boot-starter-validation:jar:2.2.0.RELEASE:compile
- org.springframework.boot:spring-boot-starter-web:jar:2.2.0.RELEASE:compile
- org.springframework.boot:spring-boot-starter:jar:2.2.0.RELEASE:compile
- org.springframework.boot:spring-boot-test-autoconfigure:jar:2.2.0.RELEASE:test
- org.springframework.boot:spring-boot-test:jar:2.2.0.RELEASE:test
- org.springframework.boot:spring-boot:jar:2.2.0.RELEASE:compile
- org.springframework:spring-aop:jar:5.2.1.RELEASE:compile
- org.springframework:spring-beans:jar:5.2.1.RELEASE:compile
- org.springframework:spring-context:jar:5.2.1.RELEASE:compile
- org.springframework:spring-core:jar:5.2.1.RELEASE:compile
- org.springframework:spring-expression:jar:5.2.1.RELEASE:compile
- org.springframework:spring-jcl:jar:5.2.1.RELEASE:compile
- org.springframework:spring-test:jar:5.2.1.RELEASE:test
- org.springframework:spring-tx:jar:5.2.1.RELEASE:compile
- org.springframework:spring-web:jar:5.2.1.RELEASE:compile
- org.springframework:spring-webmvc:jar:5.2.1.RELEASE:compile
- org.webjars.bower:momentjs:jar:2.24.0:compile
- org.webjars.bower:summernote:jar:0.8.11:compile
- org.webjars:Eonasdan-bootstrap-datetimepicker:jar:4.17.37-1:compile
- org.webjars:animate.css:jar:3.5.2:compile
- org.webjars:bootstrap:jar:3.4.0:compile
- org.webjars:font-awesome:jar:4.7.0:compile
- org.webjars:jquery-ui:jar:1.12.1:compile
- org.webjars:jquery:jar:1.11.1:compile
- org.webjars:modernizr:jar:2.8.3-1:compile
- org.webjars:select2:jar:4.0.10:compile
- org.wicketstuff:wicketstuff-select2:jar:8.6.0:compile
- org.xmlunit:xmlunit-core:jar:2.6.3:test
- org.yaml:snakeyaml:jar:1.25:runtime
-The following files have been resolved:
diff --git a/starters/helloworld/src/test/java/domainapp/dom/impl/lockdown/LockDownMavenDeps_Test.tree.approved.txt b/starters/helloworld/src/test/java/domainapp/dom/impl/lockdown/LockDownMavenDeps_Test.tree.approved.txt
deleted file mode 100644
index f6fac71..0000000
--- a/starters/helloworld/src/test/java/domainapp/dom/impl/lockdown/LockDownMavenDeps_Test.tree.approved.txt
+++ /dev/null
@@ -1,210 +0,0 @@
-org.apache.isis.examples.apps:helloworld:jar:2.0.0-M3-SNAPSHOT
-+- org.apache.isis.mavendeps:isis-mavendeps-webapp:pom:2.0.0-M3-SNAPSHOT:compile
-| +- org.springframework.boot:spring-boot-starter-web:jar:2.2.0.RELEASE:compile
-| | +- org.springframework.boot:spring-boot-starter:jar:2.2.0.RELEASE:compile
-| | | +- jakarta.annotation:jakarta.annotation-api:jar:1.3.5:compile
-| | | \- org.yaml:snakeyaml:jar:1.25:runtime
-| | +- org.springframework.boot:spring-boot-starter-json:jar:2.2.0.RELEASE:compile
-| | | +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.10.0:compile
-| | | \- com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.10.0:compile
-| | +- org.springframework.boot:spring-boot-starter-tomcat:jar:2.2.0.RELEASE:compile
-| | | +- org.apache.tomcat.embed:tomcat-embed-core:jar:9.0.27:compile
-| | | +- org.apache.tomcat.embed:tomcat-embed-el:jar:9.0.27:compile
-| | | \- org.apache.tomcat.embed:tomcat-embed-websocket:jar:9.0.27:compile
-| | +- org.springframework.boot:spring-boot-starter-validation:jar:2.2.0.RELEASE:compile
-| | | +- jakarta.validation:jakarta.validation-api:jar:2.0.1:compile
-| | | \- org.hibernate.validator:hibernate-validator:jar:6.0.17.Final:compile
-| | | +- org.jboss.logging:jboss-logging:jar:3.4.1.Final:compile
-| | | \- com.fasterxml:classmate:jar:1.5.0:compile
-| | +- org.springframework:spring-web:jar:5.2.1.RELEASE:compile
-| | \- org.springframework:spring-webmvc:jar:5.2.1.RELEASE:compile
-| +- org.apache.isis.core:isis-applib:jar:2.0.0-M3-SNAPSHOT:compile
-| | \- org.apache.isis.core:isis-commons:jar:2.0.0-M3-SNAPSHOT:compile
-| | +- javax:javaee-api:jar:8.0:compile
-| | | \- com.sun.mail:javax.mail:jar:1.6.0:compile
-| | | \- javax.activation:activation:jar:1.1:compile
-| | +- com.google.code.findbugs:annotations:jar:2.0.1:compile
-| | +- org.projectlombok:lombok:jar:1.18.10:compile
-| | +- org.springframework:spring-tx:jar:5.2.1.RELEASE:compile
-| | \- org.springframework.boot:spring-boot-starter-log4j2:jar:2.2.0.RELEASE:compile
-| | +- org.apache.logging.log4j:log4j-slf4j-impl:jar:2.12.1:compile
-| | | \- org.apache.logging.log4j:log4j-api:jar:2.12.1:compile
-| | +- org.apache.logging.log4j:log4j-core:jar:2.12.1:compile
-| | +- org.apache.logging.log4j:log4j-jul:jar:2.12.1:compile
-| | \- org.slf4j:jul-to-slf4j:jar:1.7.28:compile
-| +- org.apache.isis.core:isis-schema:jar:2.0.0-M3-SNAPSHOT:compile
-| | \- joda-time:joda-time:jar:2.10.4:compile
-| +- org.apache.isis.core:isis-codegen-bytebuddy:jar:2.0.0-M3-SNAPSHOT:compile
-| | +- net.bytebuddy:byte-buddy:jar:1.10.1:compile
-| | \- org.objenesis:objenesis:jar:2.2:compile
-| +- org.apache.isis.core:isis-viewer-wicket-impl:jar:2.0.0-M3-SNAPSHOT:compile
-| | +- org.apache.isis.core:isis-viewer-wicket-ui:jar:2.0.0-M3-SNAPSHOT:compile
-| | | +- org.apache.isis.core:isis-viewer-wicket-model:jar:2.0.0-M3-SNAPSHOT:compile
-| | | +- org.apache.wicket:wicket-core:jar:8.6.1:compile
-| | | | +- com.github.openjson:openjson:jar:1.0.10:compile
-| | | | +- org.apache.wicket:wicket-request:jar:8.6.1:compile
-| | | | +- org.apache.wicket:wicket-util:jar:8.6.1:compile
-| | | | | +- commons-fileupload:commons-fileupload:jar:1.4:compile
-| | | | | \- org.apache.commons:commons-collections4:jar:4.3:compile
-| | | | \- org.danekja:jdk-serializable-functional:jar:1.8.5:compile
-| | | +- org.apache.wicket:wicket-devutils:jar:8.6.1:compile
-| | | +- org.apache.wicket:wicket-extensions:jar:8.6.1:compile
-| | | +- org.wicketstuff:wicketstuff-select2:jar:8.6.0:compile
-| | | +- org.webjars:select2:jar:4.0.10:compile
-| | | | \- org.webjars:jquery:jar:1.11.1:compile
-| | | +- org.webjars:jquery-ui:jar:1.12.1:compile
-| | | +- de.agilecoders.wicket.webjars:wicket-webjars:jar:2.0.15:compile
-| | | +- de.agilecoders.wicket:wicket-bootstrap-extensions:jar:2.0.11:compile
-| | | | +- org.webjars:Eonasdan-bootstrap-datetimepicker:jar:4.17.37-1:compile
-| | | | +- org.webjars.bower:momentjs:jar:2.24.0:compile
-| | | | +- org.webjars:font-awesome:jar:4.7.0:compile
-| | | | +- com.google.javascript:closure-compiler-unshaded:jar:v20190325:compile
-| | | | | +- com.google.javascript:closure-compiler-externs:jar:v20190325:compile
-| | | | | +- args4j:args4j:jar:2.0.26:compile
-| | | | | +- com.google.code.gson:gson:jar:2.8.6:compile
-| | | | | \- com.google.jsinterop:jsinterop-annotations:jar:1.0.0:compile
-| | | | \- org.webjars:animate.css:jar:3.5.2:compile
-| | | +- org.webjars.bower:summernote:jar:0.8.11:compile
-| | | \- de.agilecoders.wicket:wicket-bootstrap-themes:jar:2.0.11:compile
-| | +- org.apache.wicket:wicket-spring:jar:8.6.1:compile
-| | | \- org.apache.wicket:wicket-ioc:jar:8.6.1:compile
-| | | +- cglib:cglib-nodep:jar:3.2.12:compile
-| | | +- javax.inject:javax.inject:jar:1:compile
-| | | \- org.ow2.asm:asm-util:jar:7.1:compile
-| | | +- org.ow2.asm:asm-tree:jar:7.1:compile
-| | | \- org.ow2.asm:asm-analysis:jar:7.1:compile
-| | +- org.apache.wicket:wicket-auth-roles:jar:8.6.1:compile
-| | +- de.agilecoders.wicket:wicket-bootstrap-core:jar:2.0.11:compile
-| | | +- de.agilecoders.wicket:jquery-selectors:jar:2.0.7:compile
-| | | +- org.webjars:bootstrap:jar:3.4.0:compile
-| | | +- org.webjars:modernizr:jar:2.8.3-1:compile
-| | | \- org.apache.commons:commons-lang3:jar:3.9:compile
-| | +- net.ftlines.wicket-source:wicket-source:jar:7.0.0:compile
-| | | \- org.apache.wicket:wicket:pom:8.6.1:compile
-| | \- commons-io:commons-io:jar:2.6:compile
-| +- org.apache.isis.core:isis-viewer-restfulobjects-server:jar:2.0.0-M3-SNAPSHOT:compile
-| | +- org.apache.isis.core:isis-runtime-web:jar:2.0.0-M3-SNAPSHOT:compile
-| | +- org.apache.isis.core:isis-viewer-restfulobjects-rendering:jar:2.0.0-M3-SNAPSHOT:compile
-| | | +- org.apache.isis.core:isis-metamodel:jar:2.0.0-M3-SNAPSHOT:compile
-| | | | \- io.swagger:swagger-core:jar:1.5.21:compile
-| | | | +- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:jar:2.10.0:compile
-| | | | \- io.swagger:swagger-models:jar:1.5.21:compile
-| | | | \- io.swagger:swagger-annotations:jar:1.5.21:compile
-| | | \- org.apache.isis.core:isis-viewer-restfulobjects-applib:jar:2.0.0-M3-SNAPSHOT:compile
-| | \- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.10.0:compile
-| | +- jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.2:compile
-| | \- jakarta.activation:jakarta.activation-api:jar:1.2.1:compile
-| +- org.apache.isis.core:isis-viewer-restfulobjects-jaxrsresteasy4:jar:2.0.0-M3-SNAPSHOT:compile
-| | +- org.jboss.resteasy:resteasy-jackson-provider:jar:4.0.0.Beta5:compile
-| | | +- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:compile
-| | | +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13:compile
-| | | +- org.codehaus.jackson:jackson-jaxrs:jar:1.9.13:compile
-| | | \- org.codehaus.jackson:jackson-xc:jar:1.9.13:compile
-| | +- org.jboss.resteasy:resteasy-jaxb-provider:jar:4.0.0.Beta5:compile
-| | | \- org.jboss.spec.javax.xml.bind:jboss-jaxb-api_2.3_spec:jar:1.0.0.Final:compile
-| | +- org.jboss.resteasy:resteasy-jaxrs:jar:4.0.0.Beta5:compile
-| | | +- org.jboss.spec.javax.ws.rs:jboss-jaxrs-api_2.1_spec:jar:1.0.1.Final:compile
-| | | +- org.jboss.resteasy:resteasy-jaxrs-services:jar:4.0.0.Beta5:compile
-| | | +- org.reactivestreams:reactive-streams:jar:1.0.3:compile
-| | | +- org.jboss.spec.javax.annotation:jboss-annotations-api_1.2_spec:jar:1.0.0.Final:compile
-| | | +- org.apache.httpcomponents:httpclient:jar:4.5.10:compile
-| | | | +- org.apache.httpcomponents:httpcore:jar:4.4.12:compile
-| | | | \- commons-codec:commons-codec:jar:1.13:compile
-| | | +- net.jcip:jcip-annotations:jar:1.0:compile
-| | | \- javax.json.bind:javax.json.bind-api:jar:1.0:compile
-| | +- commons-logging:commons-logging:jar:1.2:compile
-| | +- com.fasterxml.jackson.core:jackson-core:jar:2.10.0:compile
-| | \- com.fasterxml.jackson.core:jackson-annotations:jar:2.10.0:compile
-| +- org.apache.isis.core:isis-security:jar:2.0.0-M3-SNAPSHOT:compile
-| | \- org.apache.isis.core:isis-config:jar:2.0.0-M3-SNAPSHOT:compile
-| +- org.apache.isis.core:isis-security-bypass:jar:2.0.0-M3-SNAPSHOT:compile
-| | \- org.apache.isis.core:isis-runtime-services:jar:2.0.0-M3-SNAPSHOT:compile
-| +- org.apache.isis.core:isis-security-shiro:jar:2.0.0-M3-SNAPSHOT:compile
-| | +- org.apache.shiro:shiro-core:jar:1.4.1:compile
-| | | +- org.apache.shiro:shiro-lang:jar:1.4.1:compile
-| | | +- org.apache.shiro:shiro-cache:jar:1.4.1:compile
-| | | +- org.apache.shiro:shiro-crypto-hash:jar:1.4.1:compile
-| | | | \- org.apache.shiro:shiro-crypto-core:jar:1.4.1:compile
-| | | +- org.apache.shiro:shiro-crypto-cipher:jar:1.4.1:compile
-| | | +- org.apache.shiro:shiro-config-core:jar:1.4.1:compile
-| | | +- org.apache.shiro:shiro-config-ogdl:jar:1.4.1:compile
-| | | | \- commons-beanutils:commons-beanutils:jar:1.9.3:compile
-| | | | \- commons-collections:commons-collections:jar:3.2.2:compile
-| | | \- org.apache.shiro:shiro-event:jar:1.4.1:compile
-| | \- org.apache.shiro:shiro-web:jar:1.4.1:compile
-| +- org.apache.isis.core:isis-security-keycloak:jar:2.0.0-M3-SNAPSHOT:compile
-| +- org.apache.isis.core:isis-persistence-jdo-datanucleus5:jar:2.0.0-M3-SNAPSHOT:compile
-| | +- org.datanucleus:javax.jdo:jar:3.2.0-m12:compile
-| | | \- javax.transaction:transaction-api:jar:1.1:compile
-| | +- org.datanucleus:datanucleus-core:jar:5.2.2:compile
-| | +- org.datanucleus:datanucleus-api-jdo:jar:5.2.2:compile
-| | +- org.datanucleus:datanucleus-jdo-query:jar:5.0.9:compile
-| | +- org.datanucleus:datanucleus-rdbms:jar:5.2.1:compile
-| | +- org.datanucleus:datanucleus-jodatime:jar:5.2.0-release:compile
-| | +- org.apache.isis.core:isis-runtime:jar:2.0.0-M3-SNAPSHOT:compile
-| | | \- org.apache.commons:commons-email:jar:1.4:compile
-| | +- org.apache.isis.core:isis-runtime-extensions:jar:2.0.0-M3-SNAPSHOT:compile
-| | \- org.apache.isis.core:isis-persistence-jdo-common:jar:2.0.0-M3-SNAPSHOT:compile
-| \- com.google.guava:guava:jar:28.1-jre:compile
-| +- com.google.guava:failureaccess:jar:1.0.1:compile
-| +- com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:compile
-| +- com.google.code.findbugs:jsr305:jar:3.0.2:compile
-| +- org.checkerframework:checker-qual:jar:2.8.1:compile
-| +- com.google.errorprone:error_prone_annotations:jar:2.3.2:compile
-| +- com.google.j2objc:j2objc-annotations:jar:1.3:compile
-| \- org.codehaus.mojo:animal-sniffer-annotations:jar:1.18:compile
-+- org.apache.isis.mavendeps:isis-mavendeps-jdk11:pom:2.0.0-M3-SNAPSHOT:compile
-+- com.h2database:h2:jar:1.4.199:compile
-+- org.apache.isis.mavendeps:isis-mavendeps-testing:pom:2.0.0-M3-SNAPSHOT:test
-| +- org.apache.isis.core:isis-unittestsupport:jar:2.0.0-M3-SNAPSHOT:test
-| | +- org.junit.jupiter:junit-jupiter-api:jar:5.5.2:test
-| | | +- org.apiguardian:apiguardian-api:jar:1.1.0:test
-| | | +- org.opentest4j:opentest4j:jar:1.2.0:test
-| | | \- org.junit.platform:junit-platform-commons:jar:1.5.2:test
-| | +- org.junit.jupiter:junit-jupiter-engine:jar:5.5.2:test
-| | | \- org.junit.platform:junit-platform-engine:jar:1.5.2:test
-| | +- org.junit.vintage:junit-vintage-engine:jar:5.5.2:test
-| | | \- junit:junit:jar:4.12:test
-| | +- org.mockito:mockito-core:jar:3.1.0:test
-| | +- org.slf4j:slf4j-api:jar:1.7.28:compile
-| | +- org.springframework.boot:spring-boot-starter-test:jar:2.2.0.RELEASE:test
-| | | +- org.springframework.boot:spring-boot-test:jar:2.2.0.RELEASE:test
-| | | +- org.springframework.boot:spring-boot-test-autoconfigure:jar:2.2.0.RELEASE:test
-| | | +- com.jayway.jsonpath:json-path:jar:2.4.0:test
-| | | | \- net.minidev:json-smart:jar:2.3:test
-| | | | \- net.minidev:accessors-smart:jar:1.2:test
-| | | +- org.junit.jupiter:junit-jupiter:jar:5.5.2:test
-| | | | \- org.junit.jupiter:junit-jupiter-params:jar:5.5.2:test
-| | | +- org.mockito:mockito-junit-jupiter:jar:3.1.0:test
-| | | +- org.hamcrest:hamcrest:jar:2.1:compile
-| | | +- org.skyscreamer:jsonassert:jar:1.5.0:test
-| | | | \- com.vaadin.external.google:android-json:jar:0.0.20131108.vaadin1:test
-| | | \- org.xmlunit:xmlunit-core:jar:2.6.3:test
-| | +- org.springframework:spring-test:jar:5.2.1.RELEASE:test
-| | +- org.jmock:jmock:jar:2.11.0:test
-| | | +- org.jmock:jmock-testjar:jar:2.11.0:test
-| | | \- org.apache-extras.beanshell:bsh:jar:2.0b6:test
-| | \- org.jmock:jmock-junit4:jar:2.11.0:test
-| | +- org.jmock:jmock-legacy:jar:2.11.0:test
-| | | \- cglib:cglib:jar:3.2.8:test
-| | \- org.jmock:jmock-imposters:jar:2.11.0:test
-| +- org.apache.isis.core:isis-integtestsupport:jar:2.0.0-M3-SNAPSHOT:test
-| +- org.hamcrest:hamcrest-library:jar:2.1:test
-| | \- org.hamcrest:hamcrest-core:jar:2.1:test
-| +- org.assertj:assertj-core:jar:3.13.2:test
-| +- com.approvaltests:approvaltests:jar:4.0.2:test
-| | \- com.approvaltests:approvaltests-util:jar:4.0.2:test
-| +- org.picocontainer:picocontainer:jar:2.15:test
-| \- org.hsqldb:hsqldb:jar:2.5.0:test
-\- org.springframework.boot:spring-boot-actuator-autoconfigure:jar:2.2.0.RELEASE:compile
- +- org.springframework.boot:spring-boot-actuator:jar:2.2.0.RELEASE:compile
- | \- org.springframework.boot:spring-boot:jar:2.2.0.RELEASE:compile
- +- org.springframework.boot:spring-boot-autoconfigure:jar:2.2.0.RELEASE:compile
- +- com.fasterxml.jackson.core:jackson-databind:jar:2.10.0:compile
- +- org.springframework:spring-core:jar:5.2.1.RELEASE:compile
- | \- org.springframework:spring-jcl:jar:5.2.1.RELEASE:compile
- +- org.springframework:spring-context:jar:5.2.1.RELEASE:compile
- | +- org.springframework:spring-aop:jar:5.2.1.RELEASE:compile
- | +- org.springframework:spring-beans:jar:5.2.1.RELEASE:compile
- | \- org.springframework:spring-expression:jar:5.2.1.RELEASE:compile
- \- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.10.0:compile
diff --git a/starters/simpleapp/application/pom.xml b/starters/simpleapp/application/pom.xml
index 5795d00..0cf979c 100644
--- a/starters/simpleapp/application/pom.xml
+++ b/starters/simpleapp/application/pom.xml
@@ -40,6 +40,7 @@
<build>
<testResources>
<testResource>
+ <filtering>false</filtering>
<directory>src/test/java</directory>
</testResource>
</testResources>
diff --git a/starters/simpleapp/application/src/test/java/domainapp/application/bdd/specs/RunIntegBddSpecs.java b/starters/simpleapp/application/src/test/java/domainapp/application/bdd/RunIntegBddSpecs.java
similarity index 97%
rename from starters/simpleapp/application/src/test/java/domainapp/application/bdd/specs/RunIntegBddSpecs.java
rename to starters/simpleapp/application/src/test/java/domainapp/application/bdd/RunIntegBddSpecs.java
index e575f7d..a50b050 100644
--- a/starters/simpleapp/application/src/test/java/domainapp/application/bdd/specs/RunIntegBddSpecs.java
+++ b/starters/simpleapp/application/src/test/java/domainapp/application/bdd/RunIntegBddSpecs.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package domainapp.application.bdd.specs;
+package domainapp.application.bdd;
import io.cucumber.junit.Cucumber;
import io.cucumber.junit.CucumberOptions;
diff --git a/starters/simpleapp/application/src/test/java/domainapp/application/bdd/specs/SimpleObjectsStepDef.java b/starters/simpleapp/application/src/test/java/domainapp/application/bdd/glue/SimpleObjectsStepDef.java
similarity index 94%
rename from starters/simpleapp/application/src/test/java/domainapp/application/bdd/specs/SimpleObjectsStepDef.java
rename to starters/simpleapp/application/src/test/java/domainapp/application/bdd/glue/SimpleObjectsStepDef.java
index 0d9147b..70efd86 100644
--- a/starters/simpleapp/application/src/test/java/domainapp/application/bdd/specs/SimpleObjectsStepDef.java
+++ b/starters/simpleapp/application/src/test/java/domainapp/application/bdd/glue/SimpleObjectsStepDef.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package domainapp.application.bdd.specs;
+package domainapp.application.bdd.glue;
import java.util.List;
import java.util.UUID;
@@ -33,7 +33,7 @@ import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import domainapp.application.fixture.scenarios.DomainAppDemo;
-import domainapp.application.integtests.SpringIntegrationTest;
+import domainapp.application.integtests.ApplicationIntegTestAbstract;
import domainapp.modules.simple.dom.impl.SimpleObject;
import domainapp.modules.simple.dom.impl.SimpleObjects;
import domainapp.modules.simple.fixture.SimpleObject_persona;
@@ -43,9 +43,7 @@ import io.cucumber.java.en.Given;
import io.cucumber.java.en.When;
import lombok.val;
-@Ignore("not a JUnit test")
-public class SimpleObjectsStepDef extends SpringIntegrationTest {
-
+public class SimpleObjectsStepDef extends ApplicationIntegTestAbstract {
@Given("^there are.* (\\d+) simple objects$")
public void there_are_N_simple_objects(int n) throws Throwable {
diff --git a/starters/simpleapp/application/src/test/java/domainapp/conf/SimpleAppManifestForTesting.java b/starters/simpleapp/application/src/test/java/domainapp/application/integtests/ApplicationIntegTestAbstract.java
similarity index 59%
rename from starters/simpleapp/application/src/test/java/domainapp/conf/SimpleAppManifestForTesting.java
rename to starters/simpleapp/application/src/test/java/domainapp/application/integtests/ApplicationIntegTestAbstract.java
index ee57a1a..b059ff0 100644
--- a/starters/simpleapp/application/src/test/java/domainapp/conf/SimpleAppManifestForTesting.java
+++ b/starters/simpleapp/application/src/test/java/domainapp/application/integtests/ApplicationIntegTestAbstract.java
@@ -16,37 +16,42 @@
* specific language governing permissions and limitations
* under the License.
*/
-package domainapp.conf;
+package domainapp.application.integtests;
-import org.apache.isis.extensions.fixtures.IsisExtFixturesModule;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.PropertySource;
-import org.springframework.context.annotation.PropertySources;
+import domainapp.application.ApplicationModule;
import org.apache.isis.config.IsisPresets;
+import org.apache.isis.extensions.fixtures.IsisExtFixturesModule;
+import org.apache.isis.integtestsupport.IsisIntegrationTestAbstract;
import org.apache.isis.jdo.IsisBootDataNucleus;
import org.apache.isis.runtime.spring.IsisBoot;
import org.apache.isis.security.bypass.IsisBootSecurityBypass;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
+import org.springframework.context.annotation.PropertySource;
+import org.springframework.context.annotation.PropertySources;
+import org.springframework.test.context.ContextConfiguration;
-import domainapp.application.ApplicationModule;
+@SpringBootTest(classes = ApplicationIntegTestAbstract.AppManifest.class)
+@ContextConfiguration
+public abstract class ApplicationIntegTestAbstract extends IsisIntegrationTestAbstract {
-/**
- * Makes the integral parts of the 'simple app' web application.
- */
-@Configuration
-@PropertySources({
- @PropertySource(IsisPresets.H2InMemory),
- @PropertySource(IsisPresets.NoTranslations),
- @PropertySource(IsisPresets.DataNucleusAutoCreate),
-})
-@Import({
- IsisBoot.class,
- IsisBootDataNucleus.class,
- IsisBootSecurityBypass.class,
- IsisExtFixturesModule.class,
- ApplicationModule.class
-})
-public class SimpleAppManifestForTesting {
+ @Configuration
+ @PropertySources({
+ @PropertySource(IsisPresets.Log4j2Test),
+ @PropertySource(IsisPresets.H2InMemory_withUniqueSchema),
+ @PropertySource(IsisPresets.NoTranslations),
+ @PropertySource(IsisPresets.DataNucleusAutoCreate),
+ })
+ @Import({
+ IsisBoot.class,
+ IsisBootDataNucleus.class,
+ IsisBootSecurityBypass.class,
+ IsisExtFixturesModule.class,
+ ApplicationModule.class
+ })
+ public static class AppManifest {
+ }
}
diff --git a/starters/simpleapp/application/src/test/java/domainapp/application/integtests/SpringIntegrationTest.java b/starters/simpleapp/application/src/test/java/domainapp/application/integtests/SpringIntegrationTest.java
deleted file mode 100644
index 8aad1bf..0000000
--- a/starters/simpleapp/application/src/test/java/domainapp/application/integtests/SpringIntegrationTest.java
+++ /dev/null
@@ -1,47 +0,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.
- */
-package domainapp.application.integtests;
-
-import javax.inject.Inject;
-
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.ContextConfiguration;
-
-import org.apache.isis.applib.services.wrapper.WrapperFactory;
-
-import domainapp.conf.SimpleAppManifestForTesting;
-
-@SpringBootTest(
- classes = SimpleAppManifestForTesting.class,
- properties = {
- "logging.config=log4j2-test.xml",
- })
-@ContextConfiguration
-public abstract class SpringIntegrationTest {
-
- @Inject protected WrapperFactory wrapperFactory;
-
- /**
- * Convenience method, simply delegates to {@link WrapperFactory#wrap(Object)}
- */
- protected <T> T wrap(final T obj) {
- return wrapperFactory.wrap(obj);
- }
-
-}
diff --git a/starters/simpleapp/application/src/test/java/domainapp/application/integtests/mml/DomainModel_IntegTest.java b/starters/simpleapp/application/src/test/java/domainapp/application/integtests/mml/DomainModel_IntegTest.java
index de35332..04c1dfa 100644
--- a/starters/simpleapp/application/src/test/java/domainapp/application/integtests/mml/DomainModel_IntegTest.java
+++ b/starters/simpleapp/application/src/test/java/domainapp/application/integtests/mml/DomainModel_IntegTest.java
@@ -26,9 +26,9 @@ import org.junit.jupiter.api.Test;
import org.apache.isis.integtestsupport.validate.ValidateDomainModel;
import org.apache.isis.metamodel.specloader.SpecificationLoader;
-import domainapp.application.integtests.SpringIntegrationTest;
+import domainapp.application.integtests.ApplicationIntegTestAbstract;
-class DomainModel_IntegTest extends SpringIntegrationTest {
+class DomainModel_IntegTest extends ApplicationIntegTestAbstract {
@Inject protected SpecificationLoader specificationLoader;
diff --git a/starters/simpleapp/application/src/test/java/domainapp/application/integtests/mml/MetaModelService_IntegTest.java b/starters/simpleapp/application/src/test/java/domainapp/application/integtests/mml/MetaModelService_IntegTest.java
index bf607ef..4fc7d4d 100644
--- a/starters/simpleapp/application/src/test/java/domainapp/application/integtests/mml/MetaModelService_IntegTest.java
+++ b/starters/simpleapp/application/src/test/java/domainapp/application/integtests/mml/MetaModelService_IntegTest.java
@@ -41,9 +41,9 @@ import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.notNullValue;
import static org.junit.Assume.assumeThat;
-import domainapp.application.integtests.SpringIntegrationTest;
+import domainapp.application.integtests.ApplicationIntegTestAbstract;
-class MetaModelService_IntegTest extends SpringIntegrationTest {
+class MetaModelService_IntegTest extends ApplicationIntegTestAbstract {
@Inject MetaModelService metaModelService;
@Inject JaxbService jaxbService;
diff --git a/starters/simpleapp/application/src/test/java/domainapp/application/integtests/smoke/Smoke_IntegTest.java b/starters/simpleapp/application/src/test/java/domainapp/application/integtests/smoke/Smoke_IntegTest.java
index 91e8b51..559c36c 100644
--- a/starters/simpleapp/application/src/test/java/domainapp/application/integtests/smoke/Smoke_IntegTest.java
+++ b/starters/simpleapp/application/src/test/java/domainapp/application/integtests/smoke/Smoke_IntegTest.java
@@ -25,17 +25,16 @@ import javax.inject.Inject;
import org.junit.jupiter.api.Test;
import org.springframework.transaction.annotation.Transactional;
-import org.apache.isis.applib.services.wrapper.WrapperFactory;
import org.apache.isis.applib.services.xactn.TransactionService;
import static org.assertj.core.api.Assertions.assertThat;
-import domainapp.application.integtests.SpringIntegrationTest;
+import domainapp.application.integtests.ApplicationIntegTestAbstract;
import domainapp.modules.simple.dom.impl.SimpleObject;
import domainapp.modules.simple.dom.impl.SimpleObjects;
@Transactional
-class Smoke_IntegTest extends SpringIntegrationTest {
+class Smoke_IntegTest extends ApplicationIntegTestAbstract {
@Inject SimpleObjects menu;
@Inject TransactionService transactionService;
diff --git a/starters/simpleapp/module-simple/build.gradle b/starters/simpleapp/module-simple/build.gradle
deleted file mode 100644
index 6bfc911..0000000
--- a/starters/simpleapp/module-simple/build.gradle
+++ /dev/null
@@ -1,72 +0,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.
-//
-/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//
-// 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/starters/simpleapp/module-simple/gradlew b/starters/simpleapp/module-simple/gradlew
deleted file mode 100644
index 27309d9..0000000
--- a/starters/simpleapp/module-simple/gradlew
+++ /dev/null
@@ -1,164 +0,0 @@
-#!/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/starters/simpleapp/module-simple/gradlew.bat b/starters/simpleapp/module-simple/gradlew.bat
deleted file mode 100644
index 832fdb6..0000000
--- a/starters/simpleapp/module-simple/gradlew.bat
+++ /dev/null
@@ -1,90 +0,0 @@
-@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/starters/simpleapp/module-simple/layouts.gradle b/starters/simpleapp/module-simple/layouts.gradle
deleted file mode 100644
index f5fa30d..0000000
--- a/starters/simpleapp/module-simple/layouts.gradle
+++ /dev/null
@@ -1,49 +0,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.
-//
-/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//
-// 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/starters/simpleapp/module-simple/liveReload.gradle b/starters/simpleapp/module-simple/liveReload.gradle
deleted file mode 100644
index adb0ab1..0000000
--- a/starters/simpleapp/module-simple/liveReload.gradle
+++ /dev/null
@@ -1,56 +0,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.
-//
-/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//
-// 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/starters/simpleapp/module-simple/log4j2-test.xml b/starters/simpleapp/module-simple/log4j2-test.xml
new file mode 100644
index 0000000..56e8ad6
--- /dev/null
+++ b/starters/simpleapp/module-simple/log4j2-test.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration status="WARN">
+ <Properties>
+ <Property name="PID">????</Property>
+ <Property name="LOG_EXCEPTION_CONVERSION_WORD">%xwEx</Property>
+ <Property name="LOG_LEVEL_PATTERN">%5p</Property>
+ <Property name="LOG_DATEFORMAT_PATTERN">yyyy-MM-dd HH:mm:ss.SSS</Property>
+ <Property name="CONSOLE_LOG_PATTERN">%clr{%d{${LOG_DATEFORMAT_PATTERN}}}{faint} %clr{${LOG_LEVEL_PATTERN}} %clr{${sys:PID}}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}</Property>
+ <Property name="FILE_LOG_PATTERN">%d{${LOG_DATEFORMAT_PATTERN}} ${LOG_LEVEL_PATTERN} ${sys:PID} --- [%t] %-40.40c{1.} : %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}</Property>
+ </Properties>
+ <Appenders>
+ <Console name="Console" target="SYSTEM_OUT" follow="true">
+ <PatternLayout pattern="${sys:CONSOLE_LOG_PATTERN}" />
+ </Console>
+ </Appenders>
+ <Loggers>
+ <Logger name="org.apache.catalina.startup.DigesterFactory" level="error" />
+ <Logger name="org.apache.catalina.util.LifecycleBase" level="error" />
+ <Logger name="org.apache.coyote.http11.Http11NioProtocol" level="warn" />
+ <logger name="org.apache.sshd.common.util.SecurityUtils" level="warn"/>
+ <Logger name="org.apache.tomcat.util.net.NioSelectorPool" level="warn" />
+ <Logger name="org.eclipse.jetty.util.component.AbstractLifeCycle" level="error" />
+ <Logger name="org.hibernate.validator.internal.util.Version" level="warn" />
+ <logger name="org.springframework.boot.actuate.endpoint.jmx" level="warn"/>
+
+ <logger name="org.apache.directory" level="warn"/>
+ <logger name="org.apache.directory.api.ldap.model.entry.Value" level="off"/>
+
+ <logger name="DataNucleus.Persistence" level="info"/>
+ <logger name="DataNucleus.Transaction" level="info"/>
+ <logger name="DataNucleus.Datastore.Schema" level="info"/>
+ <logger name="DataNucleus.Datastore.Native" level="info"/>
+
+ <Root level="info">
+ <AppenderRef ref="Console" />
+ </Root>
+ </Loggers>
+</Configuration>
+
+<!-- # DataNucleus Logging Categories -->
+<!-- DataNucleus.Persistence - All messages relating to the persistence process -->
+<!-- DataNucleus.Transaction - All messages relating to transactions -->
+<!-- DataNucleus.Connection - All messages relating to Connections. -->
+<!-- DataNucleus.Query - All messages relating to queries -->
+<!-- DataNucleus.Cache - All messages relating to the DataNucleus Cache -->
+<!-- DataNucleus.MetaData - All messages relating to MetaData -->
+<!-- DataNucleus.Datastore - All general datastore messages -->
+<!-- DataNucleus.Datastore.Schema - All schema related datastore log messages -->
+<!-- DataNucleus.Datastore.Persist - All datastore persistence messages -->
+<!-- DataNucleus.Datastore.Retrieve - All datastore retrieval messages -->
+<!-- DataNucleus.Datastore.Native - Log of all 'native' statements sent to the datastore -->
+<!-- DataNucleus.General - All general operational messages -->
+<!-- DataNucleus.Lifecycle - All messages relating to object lifecycle changes -->
+<!-- DataNucleus.ValueGeneration - All messages relating to value generation -->
+<!-- DataNucleus.Enhancer - All messages from the DataNucleus Enhancer. -->
+<!-- DataNucleus.SchemaTool - All messages from DataNucleus SchemaTool -->
+<!-- DataNucleus.JDO - All messages general to JDO -->
+<!-- DataNucleus.JPA - All messages general to JPA -->
+<!-- DataNucleus.JCA - All messages relating to Connector JCA. -->
+<!-- DataNucleus.IDE - Messages from the DataNucleus IDE. -->
\ No newline at end of file
diff --git a/starters/simpleapp/module-simple/logging-integtest.properties b/starters/simpleapp/module-simple/logging-integtest.properties
deleted file mode 100644
index a3a512b..0000000
--- a/starters/simpleapp/module-simple/logging-integtest.properties
+++ /dev/null
@@ -1,120 +0,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.
-
-
-#
-# Isis uses log4j is used to provide system logging
-#
-log4j.rootCategory=INFO, Console
-
-# 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
-#log4j.debug=true
-
-
-# DataNucleus
-# 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
-# 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
-
-
-
-
-# if using log4jdbc-remix as JDBC driver
-#log4j.logger.jdbc.sqlonly=DEBUG, sql, Console
-#log4j.additivity.jdbc.sqlonly=false
-#log4j.logger.jdbc.resultsettable=DEBUG, jdbc, Console
-#log4j.additivity.jdbc.resultsettable=false
-
-#log4j.logger.jdbc.audit=WARN,jdbc, Console
-#log4j.additivity.jdbc.audit=false
-#log4j.logger.jdbc.resultset=WARN,jdbc
-#log4j.additivity.jdbc.resultset=false
-#log4j.logger.jdbc.sqltiming=WARN,sqltiming
-#log4j.additivity.jdbc.sqltiming=false
-#log4j.logger.jdbc.connection=FATAL,connection
-#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/starters/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java b/starters/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java
index 64aeb4c..65334a1 100644
--- a/starters/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java
+++ b/starters/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java
@@ -18,16 +18,39 @@
*/
package domainapp.modules.simple.integtests;
+import domainapp.modules.simple.SimpleModule;
+
+import org.apache.isis.config.IsisPresets;
+import org.apache.isis.extensions.fixtures.IsisExtFixturesModule;
import org.apache.isis.extensions.fixtures.IsisIntegrationTestAbstractWithFixtures;
+import org.apache.isis.jdo.IsisBootDataNucleus;
+import org.apache.isis.runtime.spring.IsisBoot;
+import org.apache.isis.security.bypass.IsisBootSecurityBypass;
import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
+import org.springframework.context.annotation.PropertySource;
+import org.springframework.context.annotation.PropertySources;
-@SpringBootTest(
- classes = SimpleModuleManifestForTesting.class,
- properties = {
- "isis.objects.editing=false"
- })
+@SpringBootTest(classes = SimpleModuleIntegTestAbstract.AppManifest.class)
public abstract class SimpleModuleIntegTestAbstract extends IsisIntegrationTestAbstractWithFixtures {
+ @Configuration
+ @PropertySources({
+ @PropertySource(IsisPresets.H2InMemory_withUniqueSchema),
+ @PropertySource(IsisPresets.Log4j2Test),
+ @PropertySource(IsisPresets.DataNucleusAutoCreate),
+ })
+ @Import({
+ IsisBoot.class,
+ IsisBootSecurityBypass.class,
+ IsisBootDataNucleus.class,
+ IsisExtFixturesModule.class,
+ SimpleModule.class
+ })
+ public static class AppManifest {
+ }
+
}
diff --git a/starters/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleManifestForTesting.java b/starters/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleManifestForTesting.java
deleted file mode 100644
index fdeaf93..0000000
--- a/starters/simpleapp/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleManifestForTesting.java
+++ /dev/null
@@ -1,53 +0,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.
- */
-package domainapp.modules.simple.integtests;
-
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.PropertySource;
-import org.springframework.context.annotation.PropertySources;
-
-import org.apache.isis.config.IsisPresets;
-import org.apache.isis.extensions.fixtures.IsisExtFixturesModule;
-import org.apache.isis.jdo.IsisBootDataNucleus;
-import org.apache.isis.runtime.spring.IsisBoot;
-import org.apache.isis.security.bypass.IsisBootSecurityBypass;
-
-import domainapp.modules.simple.SimpleModule;
-
-
-/**
- * Makes the integral parts of the 'module-simple' integration tests.
- */
-@Configuration
-@PropertySources({
- @PropertySource(IsisPresets.H2InMemory),
- @PropertySource(IsisPresets.DataNucleusAutoCreate),
-})
-@Import({
- IsisBoot.class,
- IsisBootSecurityBypass.class,
- IsisBootDataNucleus.class,
- IsisExtFixturesModule.class,
- SimpleModule.class
-})
-public class SimpleModuleManifestForTesting {
-
-}
diff --git a/starters/simpleapp/webapp/src/main/java/domainapp/webapp/SimpleApp.java b/starters/simpleapp/webapp/src/main/java/domainapp/webapp/SimpleApp.java
index f58ca67..e4396e0 100644
--- a/starters/simpleapp/webapp/src/main/java/domainapp/webapp/SimpleApp.java
+++ b/starters/simpleapp/webapp/src/main/java/domainapp/webapp/SimpleApp.java
@@ -18,26 +18,53 @@
*/
package domainapp.webapp;
+import domainapp.application.ApplicationModule;
+import domainapp.application.fixture.scenarios.DomainAppDemo;
+
+import org.apache.isis.extensions.fixtures.IsisExtFixturesModule;
+import org.apache.isis.jdo.IsisBootDataNucleus;
+import org.apache.isis.runtime.spring.IsisBoot;
+import org.apache.isis.security.shiro.IsisBootSecurityShiro;
+import org.apache.isis.viewer.restfulobjects.IsisBootViewerRestfulObjects;
+import org.apache.isis.viewer.wicket.viewer.IsisBootViewerWicket;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
+import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.apache.isis.config.IsisPresets;
+import org.springframework.context.annotation.PropertySource;
+import org.springframework.context.annotation.PropertySources;
-/**
- * Bootstrap the application.
- */
@SpringBootApplication
@Import({
- SimpleAppManifest.class,
+ SimpleApp.AppManifest.class,
})
public class SimpleApp extends SpringBootServletInitializer {
+ @Configuration
+ @PropertySources({
+ @PropertySource(IsisPresets.NoTranslations),
+ @PropertySource(IsisPresets.DataNucleusAutoCreate),
+ })
+ @Import({
+ IsisBoot.class,
+ IsisBootSecurityShiro.class,
+ IsisBootDataNucleus.class,
+ IsisBootViewerRestfulObjects.class,
+ IsisBootViewerWicket.class,
+
+ IsisExtFixturesModule.class,
+
+ ApplicationModule.class,
+ DomainAppDemo.class // register this fixture
+ })
+ public static class AppManifest {
+ }
+
/**
- *
- * @param args
- * @implNote this is to support the <em>Spring Boot Maven Plugin</em>, which auto-detects an
+ * @implNote this is to support the <em>Spring Boot Maven Plugin</em>, which auto-detects an
* entry point by searching for classes having a {@code main(...)}
*/
public static void main(String[] args) {
diff --git a/starters/simpleapp/webapp/src/main/java/domainapp/webapp/SimpleAppManifest.java b/starters/simpleapp/webapp/src/main/java/domainapp/webapp/SimpleAppManifest.java
deleted file mode 100644
index 5c05c68..0000000
--- a/starters/simpleapp/webapp/src/main/java/domainapp/webapp/SimpleAppManifest.java
+++ /dev/null
@@ -1,61 +0,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.
- */
-package domainapp.webapp;
-
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.PropertySource;
-import org.springframework.context.annotation.PropertySources;
-
-import org.apache.isis.config.IsisPresets;
-import org.apache.isis.extensions.fixtures.IsisExtFixturesModule;
-import org.apache.isis.jdo.IsisBootDataNucleus;
-import org.apache.isis.runtime.spring.IsisBoot;
-import org.apache.isis.security.shiro.IsisBootSecurityShiro;
-import org.apache.isis.viewer.restfulobjects.IsisBootViewerRestfulObjects;
-import org.apache.isis.viewer.wicket.viewer.IsisBootViewerWicket;
-
-import domainapp.application.ApplicationModule;
-import domainapp.application.fixture.scenarios.DomainAppDemo;
-
-/**
- * Makes the integral parts of the 'simple app' web application.
- */
-@Configuration
-@PropertySources({
- @PropertySource(IsisPresets.H2InMemory),
- @PropertySource(IsisPresets.NoTranslations),
- @PropertySource(IsisPresets.DataNucleusAutoCreate),
-})
-@Import({
- IsisBoot.class,
- IsisBootSecurityShiro.class,
- IsisBootDataNucleus.class,
- IsisBootViewerRestfulObjects.class,
- IsisBootViewerWicket.class,
- IsisExtFixturesModule.class,
-
- ApplicationModule.class,
-
- DomainAppDemo.class // register this fixture
-})
-public class SimpleAppManifest {
-
-
-}
diff --git a/starters/simpleapp/webapp/src/main/resources/application.yml b/starters/simpleapp/webapp/src/main/resources/application.yml
index e39f4f7..b2936ed 100644
--- a/starters/simpleapp/webapp/src/main/resources/application.yml
+++ b/starters/simpleapp/webapp/src/main/resources/application.yml
@@ -1,3 +1,8 @@
+#
+# Recommend use for static configuration that does not change between environments.
+#
+# See also config/application.properties
+#
isis:
reflector:
validator:
@@ -135,4 +140,6 @@ isis:
standaloneCollection:
bulkLoad: false
-
+spring:
+ banner:
+ location: banner.txt
diff --git a/starters/simpleapp/webapp/src/main/resources/banner.txt b/starters/simpleapp/webapp/src/main/resources/banner.txt
new file mode 100644
index 0000000..3f593d9
--- /dev/null
+++ b/starters/simpleapp/webapp/src/main/resources/banner.txt
@@ -0,0 +1,6 @@
+ ,---. ,--. ,--. ,--.
+ / O \ ,---. ,--,--. ,---. | ,---. ,---. | | ,---. `--' ,---.
+| .-. | | .-. | ' ,-. | | .--' | .-. | | .-. : | | ( .-' ,--. ( .-'
+| | | | | '-' ' \ '-' | \ `--. | | | | \ --. | | .-' `) | | .-' `)
+`--' `--' | |-' `--`--' `---' `--' `--' `----' `--' `----' `--' `----'
+ `--'
diff --git a/starters/simpleapp/webapp/src/main/resources/config/application.properties b/starters/simpleapp/webapp/src/main/resources/config/application.properties
index e69de29..13ec292 100644
--- a/starters/simpleapp/webapp/src/main/resources/config/application.properties
+++ b/starters/simpleapp/webapp/src/main/resources/config/application.properties
@@ -0,0 +1,12 @@
+#
+# Recommend use for configuration that changes between environments.
+#
+# To override externally, see Spring Boot docs
+# https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config
+#
+# See also /application.yml
+#
+isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionURL = jdbc:h2:mem:test
+isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionDriverName = org.h2.Driver
+isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionUserName = sa
+isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionPassword =
\ No newline at end of file