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 2021/03/11 07:14:03 UTC

[isis-app-simpleapp] 02/07: more rationalizing

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

danhaywood pushed a commit to branch jpa
in repository https://gitbox.apache.org/repos/asf/isis-app-simpleapp.git

commit 5c8288ad274b858ca98d1136366bc58703d28bd7
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Mar 9 22:02:49 2021 +0000

    more rationalizing
---
 .../modules/simple/dom/so/SimpleObjects.java       | 19 +++----
 .../modules/simple/dom/so/SimpleObjects_Test.java  |  7 ++-
 .../integtests/SimpleModuleIntegTestAbstract.java  |  7 ++-
 ...Jpa.java => SimpleModuleTestConfiguration.java} |  2 +-
 .../integtests/tests/SimpleObjects_IntegTest.java  |  3 +-
 .../src/test/resources/application-test.yml        |  4 ++
 pom.xml                                            |  2 +-
 .../services/health/HealthCheckServiceImpl.java    |  1 -
 .../webapp/custom/restapi/CustomController.java    | 45 +++++++++--------
 .../domainapp/webapp/bdd/CucumberTestAbstract.java | 12 ++---
 .../stepdefs/infrastructure/BootstrapStepDef.java  |  4 +-
 .../integtests/ApplicationIntegTestAbstract.java   | 25 ---------
 .../webapp/integtests/WebAppIntegTestAbstract.java | 58 +++++++++++++++++++++
 .../metamodel/SwaggerExport_IntegTest.java         |  4 +-
 .../metamodel/ValidateDomainModel_IntegTest.java   | 10 ++--
 .../lockdown/LockDownMetaModel_IntegTest.java      |  6 +--
 .../SimpleWebAppTestConfiguration_usingJpa.java    | 59 ----------------------
 .../webapp/integtests/smoke/Smoke_IntegTest.java   |  4 +-
 .../util/CurrentVsApprovedApprovalTextWriter.java  | 25 +--------
 webapp/src/test/resources/application-test.yml     |  4 ++
 20 files changed, 128 insertions(+), 173 deletions(-)

diff --git a/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObjects.java b/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObjects.java
index b3e42c5..3eb9a5c 100644
--- a/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObjects.java
+++ b/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObjects.java
@@ -64,17 +64,14 @@ public class SimpleObjects {
 
     @Programmatic
     public void ping() {
-        jpaSupportService.getEntityManager(SimpleObject.class).ifSuccess(x -> {
-            final TypedQuery<SimpleObject> q = x.createQuery("SELECT p FROM SimpleObject p ORDER BY p.name",
-                    SimpleObject.class).setMaxResults(1);
-            q.getResultList();
-        });
-
-//        final TypedQuery<SimpleObject> q = entityManager.createQuery("SELECT p FROM SimpleObject p ORDER BY p.name",
-//                SimpleObject.class).setMaxResults(1);
-//        q.getResultList();
+        jpaSupportService.getEntityManager(SimpleObject.class)
+            .ifSuccess(entityManager -> {
+                final TypedQuery<SimpleObject> q = entityManager.createQuery(
+                        "SELECT p FROM SimpleObject p ORDER BY p.name",
+                        SimpleObject.class)
+                    .setMaxResults(1);
+                q.getResultList();
+            });
     }
 
-//    @PersistenceContext EntityManager entityManager;
-
 }
diff --git a/module-simple/src/test/java/domainapp/modules/simple/dom/so/SimpleObjects_Test.java b/module-simple/src/test/java/domainapp/modules/simple/dom/so/SimpleObjects_Test.java
index 9d9dbc3..88eaeb0 100644
--- a/module-simple/src/test/java/domainapp/modules/simple/dom/so/SimpleObjects_Test.java
+++ b/module-simple/src/test/java/domainapp/modules/simple/dom/so/SimpleObjects_Test.java
@@ -5,7 +5,6 @@ import java.util.List;
 import java.util.Objects;
 
 import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -14,13 +13,13 @@ import org.mockito.Mock;
 import org.mockito.junit.jupiter.MockitoExtension;
 import org.mockito.stubbing.Answer;
 
-import org.apache.isis.applib.services.repository.RepositoryService;
-import org.apache.isis.persistence.jpa.applib.services.JpaSupportService;
-
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.ArgumentMatchers.argThat;
 import static org.mockito.Mockito.when;
 
+import org.apache.isis.applib.services.repository.RepositoryService;
+import org.apache.isis.persistence.jpa.applib.services.JpaSupportService;
+
 @ExtendWith(MockitoExtension.class)
 class SimpleObjects_Test {
 
diff --git a/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java b/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java
index 952f6e4..dc42df0 100644
--- a/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java
+++ b/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java
@@ -1,16 +1,15 @@
 package domainapp.modules.simple.integtests;
 
 import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.ActiveProfiles;
 
 import org.apache.isis.testing.fixtures.applib.IsisIntegrationTestAbstractWithFixtures;
 
 
 @SpringBootTest(
-        classes = {
-                SimpleModuleTestConfiguration_usingJpa.class
-        },
-        properties = "isis.persistence.jpa.auto-create-schemas=simple"
+        classes = SimpleModuleTestConfiguration.class
 )
+@ActiveProfiles("test")
 public abstract class SimpleModuleIntegTestAbstract extends IsisIntegrationTestAbstractWithFixtures {
 
 }
diff --git a/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleTestConfiguration_usingJpa.java b/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleTestConfiguration.java
similarity index 97%
rename from module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleTestConfiguration_usingJpa.java
rename to module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleTestConfiguration.java
index 599f571..c2a63fb 100644
--- a/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleTestConfiguration_usingJpa.java
+++ b/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleTestConfiguration.java
@@ -53,7 +53,7 @@ import domainapp.modules.simple.SimpleModule;
     @PropertySource(IsisPresets.H2InMemory_withUniqueSchema),
     @PropertySource(IsisPresets.UseLog4j2Test),
 })
-public class SimpleModuleTestConfiguration_usingJpa {
+public class SimpleModuleTestConfiguration {
 
 
 }
diff --git a/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObjects_IntegTest.java b/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObjects_IntegTest.java
index b3e1b02..443045c 100644
--- a/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObjects_IntegTest.java
+++ b/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObjects_IntegTest.java
@@ -6,6 +6,7 @@ import javax.inject.Inject;
 
 import org.hamcrest.MatcherAssert;
 import org.junit.jupiter.api.Test;
+import org.springframework.dao.DuplicateKeyException;
 import org.springframework.orm.jpa.JpaSystemException;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -82,7 +83,7 @@ public class SimpleObjects_IntegTest extends SimpleModuleIntegTestAbstract {
 
             // also expect
             MatcherAssert.assertThat(cause,
-                    ThrowableMatchers.causedBy(JpaSystemException.class));
+                    ThrowableMatchers.causedBy(DuplicateKeyException.class));
 
         }
 
diff --git a/module-simple/src/test/resources/application-test.yml b/module-simple/src/test/resources/application-test.yml
new file mode 100644
index 0000000..3a68cae
--- /dev/null
+++ b/module-simple/src/test/resources/application-test.yml
@@ -0,0 +1,4 @@
+isis:
+  persistence:
+    schema:
+      auto-create-schemas: "simple"
diff --git a/pom.xml b/pom.xml
index 4a3dc3a..2d61f86 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
     <parent>
         <groupId>org.apache.isis.app</groupId>
         <artifactId>isis-app-starter-parent</artifactId>
-        <version>2.0.0-SNAPSHOT</version>
+        <version>2.0.0-M5</version>
         <relativePath/>
     </parent>
 
diff --git a/webapp/src/main/java/domainapp/webapp/application/services/health/HealthCheckServiceImpl.java b/webapp/src/main/java/domainapp/webapp/application/services/health/HealthCheckServiceImpl.java
index 19a0dca..4f16352 100644
--- a/webapp/src/main/java/domainapp/webapp/application/services/health/HealthCheckServiceImpl.java
+++ b/webapp/src/main/java/domainapp/webapp/application/services/health/HealthCheckServiceImpl.java
@@ -12,7 +12,6 @@ import domainapp.modules.simple.dom.so.SimpleObjects;
 
 @Service
 @Named("domainapp.HealthCheckServiceImpl")
-//@Log4j2
 public class HealthCheckServiceImpl implements HealthCheckService {
 
     private final SimpleObjects simpleObjects;
diff --git a/webapp/src/main/java/domainapp/webapp/custom/restapi/CustomController.java b/webapp/src/main/java/domainapp/webapp/custom/restapi/CustomController.java
index 53f86bc..39972d8 100644
--- a/webapp/src/main/java/domainapp/webapp/custom/restapi/CustomController.java
+++ b/webapp/src/main/java/domainapp/webapp/custom/restapi/CustomController.java
@@ -23,26 +23,27 @@ import domainapp.modules.simple.dom.so.SimpleObjects;
 @RequiredArgsConstructor
 class CustomController {
 
-  private final InteractionFactory interactionFactory;
-  private final TransactionalProcessor transactionalProcessor;
-  private final SimpleObjects repository;
-
-  @GetMapping("/custom/simpleObjects")
-  List<SimpleObject> all() {
-    return callAuthenticated(newAuthentication(), () -> repository.listAll())
-            .optionalElseFail() // re-throws exception that has occurred, if any
-            .orElse(Collections.emptyList()); // handles null case, if required
-  }
-
-  private SimpleAuthentication newAuthentication() {
-    return SimpleAuthentication.validOf(UserMemento.ofName("sven"));
-  }
-
-  private <T> Result<T> callAuthenticated(
-          final Authentication authentication,
-          final Callable<T> task) {
-    return interactionFactory.callAuthenticated(
-            authentication,
-            () -> transactionalProcessor.callWithinCurrentTransactionElseCreateNew(task));
-  }
+    private final InteractionFactory interactionFactory;
+    private final TransactionalProcessor transactionalProcessor;
+    private final SimpleObjects repository;
+
+    @GetMapping("/custom/simpleObjects")
+    List<SimpleObject> all() {
+        return callAuthenticated(newAuthentication(), () -> repository.listAll())
+                .optionalElseFail() // re-throws exception that has occurred, if any
+                .orElse(Collections.emptyList()); // handles null case, if required
+    }
+
+    private SimpleAuthentication newAuthentication() {
+        return SimpleAuthentication.validOf(UserMemento.ofName("sven"));
+    }
+
+    private <T> Result<T> callAuthenticated(
+            final Authentication authentication,
+            final Callable<T> task) {
+
+        return interactionFactory.callAuthenticated(
+                authentication,
+                () -> transactionalProcessor.callWithinCurrentTransactionElseCreateNew(task));
+    }
 }
diff --git a/webapp/src/test/java/domainapp/webapp/bdd/CucumberTestAbstract.java b/webapp/src/test/java/domainapp/webapp/bdd/CucumberTestAbstract.java
index 57f44c5..43c9e50 100644
--- a/webapp/src/test/java/domainapp/webapp/bdd/CucumberTestAbstract.java
+++ b/webapp/src/test/java/domainapp/webapp/bdd/CucumberTestAbstract.java
@@ -18,17 +18,17 @@
  */
 package domainapp.webapp.bdd;
 
-import domainapp.webapp.integtests.ApplicationIntegTestAbstract;
+import domainapp.webapp.integtests.WebAppIntegTestAbstract;
 import io.cucumber.spring.CucumberContextConfiguration;
 
 /**
- * 
- * Provides the App's Spring Context for testing with Cucumber. 
+ *
+ * Provides the App's Spring Context for testing with Cucumber.
  *
  */
 @CucumberContextConfiguration
-public abstract class CucumberTestAbstract extends ApplicationIntegTestAbstract {
+public abstract class CucumberTestAbstract extends WebAppIntegTestAbstract {
+
+    // any cucumber specific stuff might go here
 
-    // any cucumber specific stuff might go here 
-    
 }
diff --git a/webapp/src/test/java/domainapp/webapp/bdd/stepdefs/infrastructure/BootstrapStepDef.java b/webapp/src/test/java/domainapp/webapp/bdd/stepdefs/infrastructure/BootstrapStepDef.java
index 860f6da..28e88b9 100644
--- a/webapp/src/test/java/domainapp/webapp/bdd/stepdefs/infrastructure/BootstrapStepDef.java
+++ b/webapp/src/test/java/domainapp/webapp/bdd/stepdefs/infrastructure/BootstrapStepDef.java
@@ -2,9 +2,9 @@ package domainapp.webapp.bdd.stepdefs.infrastructure;
 
 import org.apache.isis.applib.annotation.OrderPrecedence;
 
-import domainapp.webapp.integtests.ApplicationIntegTestAbstract;
+import domainapp.webapp.integtests.WebAppIntegTestAbstract;
 
-public class BootstrapStepDef extends ApplicationIntegTestAbstract {
+public class BootstrapStepDef extends WebAppIntegTestAbstract {
 
     @io.cucumber.java.Before(order= OrderPrecedence.FIRST)
     public void bootstrap() {
diff --git a/webapp/src/test/java/domainapp/webapp/integtests/ApplicationIntegTestAbstract.java b/webapp/src/test/java/domainapp/webapp/integtests/ApplicationIntegTestAbstract.java
deleted file mode 100644
index 475b547..0000000
--- a/webapp/src/test/java/domainapp/webapp/integtests/ApplicationIntegTestAbstract.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package domainapp.webapp.integtests;
-
-import org.springframework.boot.test.context.SpringBootTest;
-
-import org.apache.isis.testing.integtestsupport.applib.IsisIntegrationTestAbstract;
-
-import domainapp.webapp.application.ApplicationModule;
-import domainapp.webapp.bdd.stepdefs.BddStepDefsModule;
-import domainapp.webapp.integtests.smoke.SimpleWebAppTestConfiguration_usingJpa;
-
-@SpringBootTest(
-    classes = {
-            // we use a slightly different confuguration compared to the production (AppManifest/webapp)
-            SimpleWebAppTestConfiguration_usingJpa.class,
-            BddStepDefsModule.class,
-            ApplicationModule.class,
-    },
-    properties = {
-            // "logging.level.io.cucumber.core.runner.Runner=DEBUG",
-            "isis.persistence.jpa.auto-create-schemas=simple"
-    }
-)
-public abstract class ApplicationIntegTestAbstract extends IsisIntegrationTestAbstract {
-
-}
diff --git a/webapp/src/test/java/domainapp/webapp/integtests/WebAppIntegTestAbstract.java b/webapp/src/test/java/domainapp/webapp/integtests/WebAppIntegTestAbstract.java
new file mode 100644
index 0000000..06ed6e2
--- /dev/null
+++ b/webapp/src/test/java/domainapp/webapp/integtests/WebAppIntegTestAbstract.java
@@ -0,0 +1,58 @@
+package domainapp.webapp.integtests;
+
+import org.springframework.boot.SpringBootConfiguration;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.context.annotation.Import;
+import org.springframework.context.annotation.PropertySource;
+import org.springframework.context.annotation.PropertySources;
+import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
+import org.springframework.test.context.ActiveProfiles;
+
+import org.apache.isis.core.config.presets.IsisPresets;
+import org.apache.isis.core.runtimeservices.IsisModuleCoreRuntimeServices;
+import org.apache.isis.persistence.jpa.eclipselink.IsisModuleJpaEclipselink;
+import org.apache.isis.security.bypass.IsisModuleSecurityBypass;
+import org.apache.isis.testing.fixtures.applib.IsisModuleTestingFixturesApplib;
+import org.apache.isis.testing.integtestsupport.applib.IsisIntegrationTestAbstract;
+
+import domainapp.modules.simple.SimpleModule;
+import domainapp.webapp.application.ApplicationModule;
+import domainapp.webapp.bdd.stepdefs.BddStepDefsModule;
+
+@SpringBootTest(
+    classes = {
+            // we use a slightly different configuration compared to the production (AppManifest/webapp)
+            WebAppIntegTestAbstract.TestApp.class,
+            BddStepDefsModule.class,
+            ApplicationModule.class,
+    }
+)
+@ActiveProfiles("test")
+public abstract class WebAppIntegTestAbstract extends IsisIntegrationTestAbstract {
+
+
+    /**
+     * Compared to the production app manifest <code>domainapp.webapp.AppManifest</code>,
+     * here we in effect disable security checks, and we exclude any web/UI modules.
+     */
+    @SpringBootConfiguration
+    @EnableAutoConfiguration
+    @EnableJpaRepositories
+    @Import({
+
+            IsisModuleCoreRuntimeServices.class,
+            IsisModuleSecurityBypass.class,
+            IsisModuleJpaEclipselink.class,
+            IsisModuleTestingFixturesApplib.class,
+
+            SimpleModule.class
+    })
+    @PropertySources({
+            @PropertySource(IsisPresets.H2InMemory_withUniqueSchema),
+            @PropertySource(IsisPresets.UseLog4j2Test),
+    })
+    public static class TestApp {
+
+    }
+}
diff --git a/webapp/src/test/java/domainapp/webapp/integtests/metamodel/SwaggerExport_IntegTest.java b/webapp/src/test/java/domainapp/webapp/integtests/metamodel/SwaggerExport_IntegTest.java
index bbe3c92..8b7dea9 100644
--- a/webapp/src/test/java/domainapp/webapp/integtests/metamodel/SwaggerExport_IntegTest.java
+++ b/webapp/src/test/java/domainapp/webapp/integtests/metamodel/SwaggerExport_IntegTest.java
@@ -15,12 +15,12 @@ import org.apache.isis.viewer.restfulobjects.jaxrsresteasy4.IsisModuleViewerRest
 
 import lombok.val;
 
-import domainapp.webapp.integtests.ApplicationIntegTestAbstract;
+import domainapp.webapp.integtests.WebAppIntegTestAbstract;
 
 @Import({
         IsisModuleViewerRestfulObjectsJaxrsResteasy4.class
 })
-class SwaggerExport_IntegTest extends ApplicationIntegTestAbstract {
+class SwaggerExport_IntegTest extends WebAppIntegTestAbstract {
 
     @Inject ServiceRegistry serviceRegistry;
 
diff --git a/webapp/src/test/java/domainapp/webapp/integtests/metamodel/ValidateDomainModel_IntegTest.java b/webapp/src/test/java/domainapp/webapp/integtests/metamodel/ValidateDomainModel_IntegTest.java
index 80bf4aa..84b9b0c 100644
--- a/webapp/src/test/java/domainapp/webapp/integtests/metamodel/ValidateDomainModel_IntegTest.java
+++ b/webapp/src/test/java/domainapp/webapp/integtests/metamodel/ValidateDomainModel_IntegTest.java
@@ -4,15 +4,13 @@ import javax.inject.Inject;
 
 import org.junit.jupiter.api.Test;
 
-import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.testing.integtestsupport.applib.validate.DomainModelValidator;
-import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 
-import domainapp.webapp.integtests.ApplicationIntegTestAbstract;
+import domainapp.webapp.integtests.WebAppIntegTestAbstract;
+
+class ValidateDomainModel_IntegTest extends WebAppIntegTestAbstract {
 
-class ValidateDomainModel_IntegTest extends ApplicationIntegTestAbstract {
-    
     @Inject ServiceRegistry serviceRegistry;
 
     @Test
@@ -21,4 +19,4 @@ class ValidateDomainModel_IntegTest extends ApplicationIntegTestAbstract {
     }
 
 
-}
\ No newline at end of file
+}
diff --git a/webapp/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/LockDownMetaModel_IntegTest.java b/webapp/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/LockDownMetaModel_IntegTest.java
index 97dc0b9..b59d5d8 100644
--- a/webapp/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/LockDownMetaModel_IntegTest.java
+++ b/webapp/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/LockDownMetaModel_IntegTest.java
@@ -22,10 +22,10 @@ import org.apache.isis.applib.services.metamodel.MetaModelService;
 import org.apache.isis.schema.metamodel.v2.DomainClassDto;
 import org.apache.isis.schema.metamodel.v2.MetamodelDto;
 
-import domainapp.webapp.integtests.ApplicationIntegTestAbstract;
+import domainapp.webapp.integtests.WebAppIntegTestAbstract;
 import domainapp.webapp.util.CurrentVsApprovedApprovalTextWriter;
 
-class LockDownMetaModel_IntegTest extends ApplicationIntegTestAbstract {
+class LockDownMetaModel_IntegTest extends WebAppIntegTestAbstract {
 
     @Inject MetaModelService metaModelService;
     @Inject JaxbService jaxbService;
@@ -77,4 +77,4 @@ class LockDownMetaModel_IntegTest extends ApplicationIntegTestAbstract {
                 }, getReporter());
     }
 
-}
\ No newline at end of file
+}
diff --git a/webapp/src/test/java/domainapp/webapp/integtests/smoke/SimpleWebAppTestConfiguration_usingJpa.java b/webapp/src/test/java/domainapp/webapp/integtests/smoke/SimpleWebAppTestConfiguration_usingJpa.java
deleted file mode 100644
index b3d0fe1..0000000
--- a/webapp/src/test/java/domainapp/webapp/integtests/smoke/SimpleWebAppTestConfiguration_usingJpa.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.webapp.integtests.smoke;
-
-import org.springframework.boot.SpringBootConfiguration;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.PropertySource;
-import org.springframework.context.annotation.PropertySources;
-import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
-
-import org.apache.isis.core.config.presets.IsisPresets;
-import org.apache.isis.core.runtimeservices.IsisModuleCoreRuntimeServices;
-import org.apache.isis.persistence.jpa.eclipselink.IsisModuleJpaEclipselink;
-import org.apache.isis.security.bypass.IsisModuleSecurityBypass;
-import org.apache.isis.testing.fixtures.applib.IsisModuleTestingFixturesApplib;
-
-import domainapp.modules.simple.SimpleModule;
-
-/**
- * Compared to the production app manifest <code>domainapp.webapp.AppManifest</code>,
- * here we in effect disable security checks, and we exclude any web/UI modules.
- */
-@SpringBootConfiguration
-@EnableAutoConfiguration
-@EnableJpaRepositories
-@Import({
-
-    IsisModuleCoreRuntimeServices.class,
-    IsisModuleSecurityBypass.class,
-    IsisModuleJpaEclipselink.class,
-    IsisModuleTestingFixturesApplib.class,
-
-    SimpleModule.class
-})
-@PropertySources({
-    @PropertySource(IsisPresets.H2InMemory_withUniqueSchema),
-    @PropertySource(IsisPresets.UseLog4j2Test),
-})
-public class SimpleWebAppTestConfiguration_usingJpa {
-
-
-}
diff --git a/webapp/src/test/java/domainapp/webapp/integtests/smoke/Smoke_IntegTest.java b/webapp/src/test/java/domainapp/webapp/integtests/smoke/Smoke_IntegTest.java
index 94465ee..f8c5b56 100644
--- a/webapp/src/test/java/domainapp/webapp/integtests/smoke/Smoke_IntegTest.java
+++ b/webapp/src/test/java/domainapp/webapp/integtests/smoke/Smoke_IntegTest.java
@@ -13,12 +13,12 @@ import org.apache.isis.applib.services.xactn.TransactionService;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import domainapp.webapp.integtests.ApplicationIntegTestAbstract;
+import domainapp.webapp.integtests.WebAppIntegTestAbstract;
 import domainapp.modules.simple.dom.so.SimpleObject;
 import domainapp.modules.simple.dom.so.SimpleObjects;
 
 @Transactional
-class Smoke_IntegTest extends ApplicationIntegTestAbstract {
+class Smoke_IntegTest extends WebAppIntegTestAbstract {
 
     @Inject SimpleObjects menu;
     @Inject TransactionService transactionService;
diff --git a/webapp/src/test/java/domainapp/webapp/util/CurrentVsApprovedApprovalTextWriter.java b/webapp/src/test/java/domainapp/webapp/util/CurrentVsApprovedApprovalTextWriter.java
index 8efe087..85e5073 100644
--- a/webapp/src/test/java/domainapp/webapp/util/CurrentVsApprovedApprovalTextWriter.java
+++ b/webapp/src/test/java/domainapp/webapp/util/CurrentVsApprovedApprovalTextWriter.java
@@ -5,30 +5,9 @@ import org.approvaltests.writers.ApprovalTextWriter;
 
 public class CurrentVsApprovedApprovalTextWriter extends ApprovalTextWriter {
 
-//    private final String fileExtensionWithoutDot;
-
     public CurrentVsApprovedApprovalTextWriter(String received, String fileExtensionWithoutDot) {
-        super(received, new Options().forFile().withExtension(fileExtensionWithoutDot));
-        //this.fileExtensionWithoutDot = fileExtensionWithoutDot;
+        super(received, new Options().forFile()
+                .withExtension(fileExtensionWithoutDot));
     }
 
-//    @Override
-//    public String getReceivedFilename(final String base) {
-//        return toFilename("current", base);
-//    }
-//
-//    @Override
-//    public String getApprovalFilename(final String base) {
-//        return toFilename("approved", base);
-//    }
-//
-//    private String toFilename(final String prefix, final String base) {
-//        final File file = new File(base);
-//        final File parentFile = file.getParentFile();
-//        final String localName = file.getName();
-//        final File newDir = new File(parentFile, prefix);
-//        final File newFile = new File(newDir, localName + "." + fileExtensionWithoutDot);
-//        return newFile.toString();
-//    }
-
 }
diff --git a/webapp/src/test/resources/application-test.yml b/webapp/src/test/resources/application-test.yml
new file mode 100644
index 0000000..3a68cae
--- /dev/null
+++ b/webapp/src/test/resources/application-test.yml
@@ -0,0 +1,4 @@
+isis:
+  persistence:
+    schema:
+      auto-create-schemas: "simple"