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 2019/09/13 20:32:28 UTC

[isis] branch v2 updated: ISIS-2158 fixes simple-app`s 'Smoke_IntegTest'

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

ahuber pushed a commit to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/v2 by this push:
     new b98ddd0  ISIS-2158 fixes simple-app`s 'Smoke_IntegTest'
b98ddd0 is described below

commit b98ddd04a52862835e402ecb23b6fbc82f82bb6b
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Sep 13 22:32:19 2019 +0200

    ISIS-2158 fixes simple-app`s 'Smoke_IntegTest'
---
 .../application/manifest/SimpleAppManifest.java    |  3 ++
 ...ifest.java => SimpleAppManifestForTesting.java} | 37 ++++------------------
 .../bdd/specs/SimpleObjectsStepDef.java            |  5 ++-
 .../integtests/SpringIntegrationTest.java          |  8 +++--
 .../integtests/smoke/Smoke_IntegTest.java          | 10 ++++--
 .../domainapp/modules/simple/SimpleModule.java     | 17 ++++++----
 .../fixtures/fixturescripts/FixtureScripts.java    |  4 +--
 7 files changed, 40 insertions(+), 44 deletions(-)

diff --git a/examples/apps/simpleapp/application/src/main/java/domainapp/application/manifest/SimpleAppManifest.java b/examples/apps/simpleapp/application/src/main/java/domainapp/application/manifest/SimpleAppManifest.java
index f67f195..2450890 100644
--- a/examples/apps/simpleapp/application/src/main/java/domainapp/application/manifest/SimpleAppManifest.java
+++ b/examples/apps/simpleapp/application/src/main/java/domainapp/application/manifest/SimpleAppManifest.java
@@ -20,6 +20,7 @@ package domainapp.application.manifest;
 
 import javax.inject.Singleton;
 
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.ComponentScan.Filter;
@@ -72,6 +73,8 @@ import domainapp.modules.simple.SimpleModule;
         includeFilters= {
                 @Filter(type = FilterType.CUSTOM, classes= {IsisBeanScanInterceptorForSpring.class})
         })
+//enable this default config to be picked up by Spring (when property NOT set: integtest=true)
+@ConditionalOnProperty(value = "integtest", havingValue = "false", matchIfMissing = true)
 public class SimpleAppManifest {
 
     @Bean @Singleton
diff --git a/examples/apps/simpleapp/application/src/main/java/domainapp/application/manifest/SimpleAppManifest.java b/examples/apps/simpleapp/application/src/main/java/domainapp/application/manifest/SimpleAppManifestForTesting.java
similarity index 63%
copy from examples/apps/simpleapp/application/src/main/java/domainapp/application/manifest/SimpleAppManifest.java
copy to examples/apps/simpleapp/application/src/main/java/domainapp/application/manifest/SimpleAppManifestForTesting.java
index f67f195..de786c0 100644
--- a/examples/apps/simpleapp/application/src/main/java/domainapp/application/manifest/SimpleAppManifest.java
+++ b/examples/apps/simpleapp/application/src/main/java/domainapp/application/manifest/SimpleAppManifestForTesting.java
@@ -18,9 +18,7 @@
  */
 package domainapp.application.manifest;
 
-import javax.inject.Singleton;
-
-import org.springframework.context.annotation.Bean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.ComponentScan.Filter;
 import org.springframework.context.annotation.Configuration;
@@ -28,20 +26,14 @@ import org.springframework.context.annotation.FilterType;
 import org.springframework.context.annotation.Import;
 import org.springframework.context.annotation.PropertySource;
 import org.springframework.context.annotation.PropertySources;
-import org.springframework.core.io.ClassPathResource;
 
 import org.apache.isis.config.IsisPresets;
 import org.apache.isis.config.beans.IsisBeanScanInterceptorForSpring;
-import org.apache.isis.config.beans.WebAppConfigBean;
-import org.apache.isis.extensions.fixtures.IsisBootFixtures;
 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.IsisBootWebRestfulObjects;
-import org.apache.isis.viewer.wicket.viewer.IsisBootWebWicket;
+import org.apache.isis.security.IsisBootSecurityBypass;
 
 import domainapp.application.DomainAppApplicationModule;
-import domainapp.application.fixture.scenarios.DomainAppDemo;
 import domainapp.modules.simple.SimpleModule;
 
 /**
@@ -51,18 +43,13 @@ import domainapp.modules.simple.SimpleModule;
 @PropertySources({
     @PropertySource("classpath:/domainapp/application/manifest/isis-non-changing.properties"),
     @PropertySource(IsisPresets.H2InMemory),
-    //@PropertySource(IsisPresets.NoTranslations),
+    @PropertySource(IsisPresets.NoTranslations),
     @PropertySource(IsisPresets.DataNucleusAutoCreate),
 })
 @Import({
     IsisBoot.class,
-    IsisBootSecurityShiro.class,
+    IsisBootSecurityBypass.class,
     IsisBootDataNucleus.class,
-    IsisBootWebRestfulObjects.class,
-    IsisBootWebWicket.class,
-    IsisBootFixtures.class,
-    
-    DomainAppDemo.class // register this fixture
 })
 @ComponentScan(
         basePackageClasses= {
@@ -72,18 +59,8 @@ import domainapp.modules.simple.SimpleModule;
         includeFilters= {
                 @Filter(type = FilterType.CUSTOM, classes= {IsisBeanScanInterceptorForSpring.class})
         })
-public class SimpleAppManifest {
-
-    @Bean @Singleton
-    public WebAppConfigBean webAppConfigBean() {
-        return WebAppConfigBean.builder()
-                .menubarsLayoutXml(new ClassPathResource("menubars.layout.xml", this.getClass()))
-                .brandLogoHeader("/images/apache-isis/logo-48x48.png")
-                .applicationCss("css/application.css")
-                .applicationJs("scripts/application.js")
-                .applicationName("Apache Isis Simple App")
-                .faviconUrl("/images/favicon.png")
-                .build();
-    }
+//enable integtest specific config to be picked up by Spring (when property set: integtest=true)
+@ConditionalOnProperty(value = "integtest", havingValue = "true", matchIfMissing = false)
+public class SimpleAppManifestForTesting {
 
 }
diff --git a/examples/apps/simpleapp/application/src/test/java/domainapp/application/bdd/specs/SimpleObjectsStepDef.java b/examples/apps/simpleapp/application/src/test/java/domainapp/application/bdd/specs/SimpleObjectsStepDef.java
index 65074d5..3ae347f 100644
--- a/examples/apps/simpleapp/application/src/test/java/domainapp/application/bdd/specs/SimpleObjectsStepDef.java
+++ b/examples/apps/simpleapp/application/src/test/java/domainapp/application/bdd/specs/SimpleObjectsStepDef.java
@@ -66,7 +66,10 @@ public class SimpleObjectsStepDef extends SpringIntegrationTest {
             txTemplate.getTransactionManager().rollback(status);
         };
 
-		fixtureScripts.runPersonas(SimpleObject_persona.BANG, SimpleObject_persona.BAR, SimpleObject_persona.BAZ);
+		fixtureScripts.runPersonas(
+		        SimpleObject_persona.BANG, 
+		        SimpleObject_persona.BAR, 
+		        SimpleObject_persona.BAZ);
 
         status.flush();
     } 
diff --git a/examples/apps/simpleapp/application/src/test/java/domainapp/application/integtests/SpringIntegrationTest.java b/examples/apps/simpleapp/application/src/test/java/domainapp/application/integtests/SpringIntegrationTest.java
index b00f73c..78a8f81 100644
--- a/examples/apps/simpleapp/application/src/test/java/domainapp/application/integtests/SpringIntegrationTest.java
+++ b/examples/apps/simpleapp/application/src/test/java/domainapp/application/integtests/SpringIntegrationTest.java
@@ -25,9 +25,13 @@ import org.springframework.test.context.ContextConfiguration;
 
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
 
-import domainapp.application.manifest.SimpleAppManifest;
+import domainapp.application.manifest.SimpleAppManifestForTesting;
 
-@SpringBootTest(classes = SimpleAppManifest.class)
+@SpringBootTest(
+        classes = SimpleAppManifestForTesting.class,
+        properties = {
+                "integtest=true", // enable testing specific config to be picked up by Spring
+        })
 @ContextConfiguration
 public abstract class SpringIntegrationTest {
 
diff --git a/examples/apps/simpleapp/application/src/test/java/domainapp/application/integtests/smoke/Smoke_IntegTest.java b/examples/apps/simpleapp/application/src/test/java/domainapp/application/integtests/smoke/Smoke_IntegTest.java
index f119dc0..47a9fb9 100644
--- a/examples/apps/simpleapp/application/src/test/java/domainapp/application/integtests/smoke/Smoke_IntegTest.java
+++ b/examples/apps/simpleapp/application/src/test/java/domainapp/application/integtests/smoke/Smoke_IntegTest.java
@@ -24,17 +24,23 @@ import javax.inject.Inject;
 
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.test.context.SpringBootTest;
+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.manifest.SimpleAppManifest;
+import domainapp.application.manifest.SimpleAppManifestForTesting;
 import domainapp.modules.simple.dom.impl.SimpleObject;
 import domainapp.modules.simple.dom.impl.SimpleObjects;
 
-@SpringBootTest(classes = SimpleAppManifest.class)
+@SpringBootTest(
+        classes = SimpleAppManifestForTesting.class,
+        properties = {
+                "integtest=true", // enable testing specific config to be picked up by Spring
+        })
+@Transactional
 class Smoke_IntegTest {
 
     @Inject SimpleObjects menu;
diff --git a/examples/apps/simpleapp/module-simple/src/main/java/domainapp/modules/simple/SimpleModule.java b/examples/apps/simpleapp/module-simple/src/main/java/domainapp/modules/simple/SimpleModule.java
index 6e2512c..0093cfb 100644
--- a/examples/apps/simpleapp/module-simple/src/main/java/domainapp/modules/simple/SimpleModule.java
+++ b/examples/apps/simpleapp/module-simple/src/main/java/domainapp/modules/simple/SimpleModule.java
@@ -18,12 +18,10 @@
  */
 package domainapp.modules.simple;
 
-import javax.xml.bind.annotation.XmlRootElement;
-
-@XmlRootElement(name = "module")
+//@XmlRootElement(name = "module")
 public class SimpleModule /*extends ModuleAbstract*/ {
 
-    //FIXME[2112] needs migration
+    //XXX migrated from
     //    @Override
     //    public FixtureScript getTeardownFixture() {
     //        return new TeardownFixtureAbstract2() {
@@ -35,9 +33,14 @@ public class SimpleModule /*extends ModuleAbstract*/ {
     //    }
 
     public static class PropertyDomainEvent<S,T>
-    extends org.apache.isis.applib.events.domain.PropertyDomainEvent<S,T> {}
+    extends org.apache.isis.applib.events.domain.PropertyDomainEvent<S,T> {
+        private static final long serialVersionUID = 1L;}
+    
     public static class CollectionDomainEvent<S,T>
-    extends org.apache.isis.applib.events.domain.CollectionDomainEvent<S,T> {}
+    extends org.apache.isis.applib.events.domain.CollectionDomainEvent<S,T> {
+        private static final long serialVersionUID = 1L;}
+    
     public static class ActionDomainEvent<S> extends
-    org.apache.isis.applib.events.domain.ActionDomainEvent<S> {}
+    org.apache.isis.applib.events.domain.ActionDomainEvent<S> {
+        private static final long serialVersionUID = 1L;}
 }
diff --git a/extensions/fixtures/src/main/java/org/apache/isis/extensions/fixtures/fixturescripts/FixtureScripts.java b/extensions/fixtures/src/main/java/org/apache/isis/extensions/fixtures/fixturescripts/FixtureScripts.java
index 38b1393..e1c1c6a 100644
--- a/extensions/fixtures/src/main/java/org/apache/isis/extensions/fixtures/fixturescripts/FixtureScripts.java
+++ b/extensions/fixtures/src/main/java/org/apache/isis/extensions/fixtures/fixturescripts/FixtureScripts.java
@@ -361,8 +361,8 @@ public abstract class FixtureScripts extends AbstractService {
 
     @SuppressWarnings("unchecked")
     @Programmatic
-    public <T> void runPersonas(final PersonaWithBuilderScript<? extends BuilderScriptAbstract<T>>... personaScripts) {
-        for (PersonaWithBuilderScript<? extends BuilderScriptAbstract<T>> personaWithBuilderScript : personaScripts) {
+    public final void runPersonas(@SuppressWarnings("rawtypes") final PersonaWithBuilderScript ... personaScripts) {
+        for (PersonaWithBuilderScript<? extends BuilderScriptAbstract<?>> personaWithBuilderScript : personaScripts) {
             runPersona(personaWithBuilderScript);
         }
     }