You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2021/01/22 08:46:54 UTC

[isis-app-simpleapp] 01/01: fixes webapp launch with build against current Apache Isis 'master'

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

ahuber pushed a commit to branch v2.0.0-jdo-SNAPSHOT
in repository https://gitbox.apache.org/repos/asf/isis-app-simpleapp.git

commit ddf5559993bf06a3091bdbd16148f6352019974c
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Jan 22 09:46:16 2021 +0100

    fixes webapp launch with build against current Apache Isis 'master'
    
    some tests still fail
---
 .../domainapp/modules/simple/SimpleModule.java     |  8 ++--
 .../modules/simple/dom/so/SimpleObject.java        |  4 +-
 .../integtests/SimpleModuleIntegTestAbstract.java  | 28 +----------
 .../SimpleModuleTestConfiguration_usingJdo.java    | 55 ++++++++++++++++++++++
 webapp/pom.xml                                     |  8 ++++
 .../main/java/domainapp/webapp/AppManifest.java    |  7 ++-
 .../integtests/ApplicationIntegTestAbstract.java   | 40 +++-------------
 .../metamodel/SwaggerExport_IntegTest.java         | 12 ++---
 8 files changed, 84 insertions(+), 78 deletions(-)

diff --git a/module-simple/src/main/java/domainapp/modules/simple/SimpleModule.java b/module-simple/src/main/java/domainapp/modules/simple/SimpleModule.java
index a5fd57f..a5868f8 100644
--- a/module-simple/src/main/java/domainapp/modules/simple/SimpleModule.java
+++ b/module-simple/src/main/java/domainapp/modules/simple/SimpleModule.java
@@ -3,11 +3,9 @@ package domainapp.modules.simple;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Import;
 import org.springframework.validation.annotation.Validated;
 
 import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScript;
-import org.apache.isis.testing.fixtures.applib.teardown.TeardownFixtureAbstract;
 import org.apache.isis.testing.fixtures.applib.modules.ModuleWithFixtures;
 
 import lombok.Data;
@@ -15,7 +13,7 @@ import lombok.Data;
 import domainapp.modules.simple.dom.so.SimpleObject;
 
 @org.springframework.context.annotation.Configuration
-@Import({})
+//@Import({})
 @ComponentScan
 @EnableConfigurationProperties({
         SimpleModule.Configuration.class,
@@ -24,10 +22,10 @@ public class SimpleModule implements ModuleWithFixtures {
 
     @Override
     public FixtureScript getTeardownFixture() {
-        return new TeardownFixtureAbstract() {
+        return new FixtureScript() {
             @Override
             protected void execute(ExecutionContext executionContext) {
-                deleteFrom(SimpleObject.class);
+                repositoryService.removeAll(SimpleObject.class);
             }
         };
     }
diff --git a/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObject.java b/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObject.java
index 7155a96..8fbf95a 100644
--- a/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObject.java
+++ b/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObject.java
@@ -67,7 +67,7 @@ public class SimpleObject implements Comparable<SimpleObject> {
     private String notes;
 
 
-    public static class UpdateNameActionDomainEvent extends SimpleObject.ActionDomainEvent {}
+    public static class UpdateNameActionDomainEvent extends ActionDomainEvent {}
     @Action(semantics = IDEMPOTENT,
             commandPublishing = Publishing.ENABLED, executionPublishing = Publishing.ENABLED,
             associateWith = "name", domainEvent = UpdateNameActionDomainEvent.class)
@@ -81,7 +81,7 @@ public class SimpleObject implements Comparable<SimpleObject> {
         return getName();
     }
 
-    public static class DeleteActionDomainEvent extends SimpleObject.ActionDomainEvent {}
+    public static class DeleteActionDomainEvent extends ActionDomainEvent {}
     @Action(semantics = NON_IDEMPOTENT_ARE_YOU_SURE, domainEvent = DeleteActionDomainEvent.class)
     public void delete() {
         final String title = titleService.titleOf(this);
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 6e76bd2..c225444 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,39 +1,13 @@
 package domainapp.modules.simple.integtests;
 
 import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-import org.springframework.test.context.TestPropertySource;
 
-import org.apache.isis.core.config.presets.IsisPresets;
-import org.apache.isis.core.runtimeservices.IsisModuleCoreRuntimeServices;
-import org.apache.isis.persistence.jdo.integration.IsisModuleJdoIntegration;
-import org.apache.isis.security.bypass.IsisModuleSecurityBypass;
 import org.apache.isis.testing.fixtures.applib.IsisIntegrationTestAbstractWithFixtures;
-import org.apache.isis.testing.fixtures.applib.IsisModuleTestingFixturesApplib;
-
-import domainapp.modules.simple.SimpleModule;
 
 
 @SpringBootTest(
-        classes = SimpleModuleIntegTestAbstract.AppManifest.class
+        classes = SimpleModuleTestConfiguration_usingJdo.class
 )
-@TestPropertySource({
-        IsisPresets.H2InMemory_withUniqueSchema,
-        IsisPresets.DataNucleusAutoCreate,
-        IsisPresets.UseLog4j2Test,
-})
 public abstract class SimpleModuleIntegTestAbstract extends IsisIntegrationTestAbstractWithFixtures {
 
-    @Configuration
-    @Import({
-        IsisModuleCoreRuntimeServices.class,
-        IsisModuleSecurityBypass.class,
-        IsisModuleJdoIntegration.class,
-        IsisModuleTestingFixturesApplib.class,
-
-        SimpleModule.class
-    })
-    public static class AppManifest {
-    }
 }
diff --git a/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleTestConfiguration_usingJdo.java b/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleTestConfiguration_usingJdo.java
new file mode 100644
index 0000000..0174a63
--- /dev/null
+++ b/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleTestConfiguration_usingJdo.java
@@ -0,0 +1,55 @@
+/*
+ *  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.boot.SpringBootConfiguration;
+import org.springframework.context.annotation.Import;
+import org.springframework.context.annotation.PropertySource;
+import org.springframework.context.annotation.PropertySources;
+
+import org.apache.isis.core.config.presets.IsisPresets;
+import org.apache.isis.core.runtimeservices.IsisModuleCoreRuntimeServices;
+import org.apache.isis.persistence.jdo.datanucleus.IsisModuleJdoDatanucleus;
+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
+@Import({
+
+    IsisModuleCoreRuntimeServices.class,
+    IsisModuleSecurityBypass.class,
+    IsisModuleJdoDatanucleus.class,
+    IsisModuleTestingFixturesApplib.class,
+
+    SimpleModule.class
+})
+@PropertySources({
+    @PropertySource(IsisPresets.H2InMemory_withUniqueSchema),
+    @PropertySource(IsisPresets.UseLog4j2Test),
+})
+public class SimpleModuleTestConfiguration_usingJdo {
+
+
+}
\ No newline at end of file
diff --git a/webapp/pom.xml b/webapp/pom.xml
index 8f5240b..bc012c6 100644
--- a/webapp/pom.xml
+++ b/webapp/pom.xml
@@ -174,6 +174,14 @@
         </dependency>
 
         <!-- TESTING -->
+
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>simpleapp-module-simple</artifactId>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+        
         <dependency>
             <groupId>org.apache.isis.mavendeps</groupId>
             <artifactId>isis-mavendeps-integtests</artifactId>
diff --git a/webapp/src/main/java/domainapp/webapp/AppManifest.java b/webapp/src/main/java/domainapp/webapp/AppManifest.java
index 262063d..be1f35f 100644
--- a/webapp/src/main/java/domainapp/webapp/AppManifest.java
+++ b/webapp/src/main/java/domainapp/webapp/AppManifest.java
@@ -8,7 +8,7 @@ import org.springframework.context.annotation.PropertySources;
 import org.apache.isis.core.config.presets.IsisPresets;
 import org.apache.isis.core.runtimeservices.IsisModuleCoreRuntimeServices;
 import org.apache.isis.extensions.flyway.impl.IsisModuleExtFlywayImpl;
-import org.apache.isis.persistence.jdo.integration.IsisModuleJdoIntegration;
+import org.apache.isis.persistence.jdo.datanucleus.IsisModuleJdoDatanucleus;
 import org.apache.isis.security.shiro.IsisModuleSecurityShiro;
 import org.apache.isis.testing.fixtures.applib.IsisModuleTestingFixturesApplib;
 import org.apache.isis.testing.h2console.ui.IsisModuleTestingH2ConsoleUi;
@@ -17,13 +17,14 @@ import org.apache.isis.viewer.wicket.viewer.IsisModuleViewerWicketViewer;
 
 import domainapp.webapp.application.ApplicationModule;
 import domainapp.webapp.application.fixture.scenarios.DomainAppDemo;
+import domainapp.webapp.application.services.health.HealthCheckServiceImpl;
 import domainapp.webapp.custom.CustomModule;
 
 @Configuration
 @Import({
         IsisModuleCoreRuntimeServices.class,
         IsisModuleSecurityShiro.class,
-        IsisModuleJdoIntegration.class,
+        IsisModuleJdoDatanucleus.class,
         IsisModuleViewerRestfulObjectsJaxrsResteasy4.class,
         IsisModuleViewerWicketViewer.class,
 
@@ -34,6 +35,8 @@ import domainapp.webapp.custom.CustomModule;
 
         ApplicationModule.class,
         CustomModule.class,
+        
+        HealthCheckServiceImpl.class,
 
         // discoverable fixtures
         DomainAppDemo.class
diff --git a/webapp/src/test/java/domainapp/webapp/integtests/ApplicationIntegTestAbstract.java b/webapp/src/test/java/domainapp/webapp/integtests/ApplicationIntegTestAbstract.java
index 1d37d79..082f5da 100644
--- a/webapp/src/test/java/domainapp/webapp/integtests/ApplicationIntegTestAbstract.java
+++ b/webapp/src/test/java/domainapp/webapp/integtests/ApplicationIntegTestAbstract.java
@@ -1,51 +1,23 @@
 package domainapp.webapp.integtests;
 
 import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.TestPropertySource;
 
-import org.apache.isis.core.config.presets.IsisPresets;
-import org.apache.isis.core.runtimeservices.IsisModuleCoreRuntimeServices;
-import org.apache.isis.persistence.jdo.integration.IsisModuleJdoIntegration;
-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.integtests.SimpleModuleTestConfiguration_usingJdo;
 import domainapp.webapp.application.ApplicationModule;
 import domainapp.webapp.bdd.stepdefs.BddStepDefsModule;
 
 @SpringBootTest(
-    // we use a slightly different AppManifest compared to the production webapp (defined below)
-    classes = ApplicationIntegTestAbstract.AppManifest.class,
+    classes = {
+            SimpleModuleTestConfiguration_usingJdo.class,
+            BddStepDefsModule.class,
+            ApplicationModule.class,
+    },
     properties = {
             // "logging.level.io.cucumber.core.runner.Runner=DEBUG"
     }
 )
-@TestPropertySource({
-        IsisPresets.H2InMemory_withUniqueSchema,
-        IsisPresets.DataNucleusAutoCreate,
-        IsisPresets.UseLog4j2Test,
-})
-@ContextConfiguration
 public abstract class ApplicationIntegTestAbstract 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.
-     */
-    @Configuration
-    @Import({
-        IsisModuleCoreRuntimeServices.class,
-        IsisModuleJdoIntegration.class,
-        IsisModuleSecurityBypass.class,
-        IsisModuleTestingFixturesApplib.class,
-
-        BddStepDefsModule.class,
-        ApplicationModule.class,
-    })
-    public static class AppManifest {
-    }
-
 }
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 a7226a1..f622c73 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
@@ -5,24 +5,20 @@ import java.io.IOException;
 import javax.inject.Inject;
 
 import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.context.annotation.Import;
 
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.applib.services.swagger.SwaggerService;
 import org.apache.isis.testing.integtestsupport.applib.swagger.SwaggerExporter;
-import org.apache.isis.testing.integtestsupport.applib.validate.DomainModelValidator;
 import org.apache.isis.viewer.restfulobjects.jaxrsresteasy4.IsisModuleViewerRestfulObjectsJaxrsResteasy4;
 
 import lombok.val;
 
 import domainapp.webapp.integtests.ApplicationIntegTestAbstract;
 
-@SpringBootTest(
-        classes = {
-                ApplicationIntegTestAbstract.AppManifest.class,
-                IsisModuleViewerRestfulObjectsJaxrsResteasy4.class
-        }
-)
+@Import({
+    IsisModuleViewerRestfulObjectsJaxrsResteasy4.class
+})
 class SwaggerExport_IntegTest extends ApplicationIntegTestAbstract {
     
     @Inject ServiceRegistry serviceRegistry;