Hey Dan, Thanks for the fast response. I just check to see if the wrapper issue exists with version 1.16.2 and I see the same behaviour there.
> Am 02.09.2018 um 18:42 schrieb Dan Haywood <d...@haywood-associates.co.uk>: > > Hi Gabriel, > > Thanks for reporting this, nice to know that our first milestone towards > 2.0.0 is being played with. > > The issues you've reported make sense, I'll take a look into them this week. > > If you get the time, perhaps you could tell me whether the wrapping issue > is also a problem for 1.16.2? The code you've written ought to work, but > then again I'm not sure if the integ tests we have in our own main app do > this, so maybe it's broken in 1.16.x also? > > Meantime, feel free to raise a ticket in Jira for each of the issues. > > Thanks, > Dan. > > On Sun, 2 Sep 2018, 17:03 Gabriel Terwesten, <gabr...@terwesten.net> wrote: > >> I just started experimenting with Apache Isis and had some issues running >> integration tests. >> >> 1. Integration tests are not executed in module `module-simple`. >> >> This is only true for projects generated from the 2.0.0-M1 archetype. The >> integration tests in module `application` are executed. >> >> To reproduce generate a project: >> >> mvn archetype:generate \ >> -D archetypeGroupId=org.apache.isis.archetype \ >> -D archetypeArtifactId=simpleapp-archetype \ >> -D archetypeVersion=2.0.0-M1 \ >> -D groupId=com.mycompany \ >> -D artifactId=isis-2 \ >> -D version=1.0-SNAPSHOT \ >> -B >> >> Then execute: >> >> - mvn clean install >> - mvn -pl module-simple verify >> >> The test output for integration tests is empty. >> >> 2. Integration test logging includes a lot of log events twice. >> >> During the bootstrapping of Isis for the integration test there seem to be >> two appenders. The lines starting with the current time come from the >> appender configured in `logging-integtest.properties`. I was not able to >> understand where the second appender is configured. This is not a big >> problem just a bit distracting. >> >> Here is an example: >> >> [INFO] >> [INFO] --- maven-surefire-plugin:2.19.1:test (integ-bddspecs) @ >> isis-2-application --- >> >> ------------------------------------------------------- >> T E S T S >> ------------------------------------------------------- >> Running domainapp.application.bdd.specs.RunIntegBddSpecs >> 17:23:27,766 [HeadlessWithBootstrappingAbstract main INFO ] >> isis.integTest.module = null >> 17:23:27,767 [HeadlessWithBootstrappingAbstract main INFO ] >> isis.headless.module = null >> 17:23:27,840 [IsisConfigurationDefault main INFO ] adding >> isis.appManifest = org.apache.isis.applib.AppManifestAbstract2$Default >> 74 [IsisConfigurationDefault main INFO ] adding >> isis.appManifest = org.apache.isis.applib.AppManifestAbstract2$Default >> 17:23:28,077 [Reflections main INFO ] Reflections took >> 195 ms to scan 12 urls, producing 319 keys and 1050 values >> 311 [Reflections main INFO ] Reflections took 195 >> ms to scan 12 urls, producing 319 keys and 1050 values >> 17:23:28,204 [IsisConfigurationDefault main INFO ] adding >> isis.services.ServicesInstallerFromAnnotation.packagePrefix = >> domainapp.modules.simple,domainapp.application >> 438 [IsisConfigurationDefault main INFO ] adding >> isis.services.ServicesInstallerFromAnnotation.packagePrefix = >> domainapp.modules.simple,domainapp.application >> 17:23:28,205 [IsisConfigurationDefault main INFO ] adding >> isis.persistor.datanucleus.RegisterEntities.packagePrefix = >> domainapp.modules.simple,domainapp.application >> 439 [IsisConfigurationDefault main INFO ] adding >> isis.persistor.datanucleus.RegisterEntities.packagePrefix = >> domainapp.modules.simple,domainapp.application >> 17:23:28,207 [IsisConfigurationDefault main INFO ] adding >> isis.services = >> org.apache.isis.core.integtestsupport.components.HeadlessTransactionSupportDefault >> 441 [IsisConfigurationDefault main INFO ] adding isis.services = >> org.apache.isis.core.integtestsupport.components.HeadlessTransactionSupportDefault >> 17:23:28,207 [IsisConfigurationDefault main INFO ] adding >> isis.deploymentType = server_prototype >> 441 [IsisConfigurationDefault main INFO ] adding >> isis.deploymentType = server_prototype >> 17:23:28,207 [IsisConfigurationDefault main INFO ] adding >> isis.persistor.datanucleus.impl.datanucleus.cache.level2.type = none >> 441 [IsisConfigurationDefault main INFO ] adding >> isis.persistor.datanucleus.impl.datanucleus.cache.level2.type = none >> 17:23:28,207 [IsisConfigurationDefault main INFO ] adding >> isis.persistor.datanucleus.impl.datanucleus.persistenceByReachabilityAtCommit >> = false >> 441 [IsisConfigurationDefault main INFO ] adding >> isis.persistor.datanucleus.impl.datanucleus.persistenceByReachabilityAtCommit >> = false >> 17:23:28,208 [IsisConfigurationDefault main INFO ] adding >> isis.persistor.datanucleus.impl.datanucleus.cache.level2.mode = >> ENABLE_SELECTIVE >> 442 [IsisConfigurationDefault main INFO ] adding >> isis.persistor.datanucleus.impl.datanucleus.cache.level2.mode = >> ENABLE_SELECTIVE >> 17:23:28,208 [IsisConfigurationDefault main INFO ] adding >> isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionDriverName = >> org.hsqldb.jdbcDriver >> 442 [IsisConfigurationDefault main INFO ] adding >> isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionDriverName = >> org.hsqldb.jdbcDriver >> 17:23:28,208 [IsisConfigurationDefault main INFO ] adding >> isis.persistor.datanucleus.impl.datanucleus.schema.validateAll = false >> 442 [IsisConfigurationDefault main INFO ] adding >> isis.persistor.datanucleus.impl.datanucleus.schema.validateAll = false >> 17:23:28,208 [IsisConfigurationDefault main INFO ] adding >> isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionPassword = >> ******** >> 442 [IsisConfigurationDefault main INFO ] adding >> isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionPassword = >> ******** >> 17:23:28,209 [IsisConfigurationDefault main INFO ] adding >> isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionURL = >> jdbc:hsqldb:mem:test-07b19913-71b6-4994-8d71-6a3aaaf79e00 >> 443 [IsisConfigurationDefault main INFO ] adding >> isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionURL = >> jdbc:hsqldb:mem:test-07b19913-71b6-4994-8d71-6a3aaaf79e00 >> >> 3. Unexpected error when accessing collection through wrapper. >> >> Inside of integration tests i can’t seem to access collections through the >> getter if the object is wrapped. From the documentation I got the >> impression that that should be possible. >> >> This is the offending line: >> >> assertThat(wrap(food).getCustomUnits()).hasSize(1); >> >> This is the error I see: >> >> java.lang.IllegalArgumentException: >> domainapp.modules.core.dom.impl.Food#customUnits: more than one >> ImperativeFacet for method getCustomUnits , with inconsistent intents: >> [CollectionAccessorFacetViaAccessor[type=PropertyOrCollectionAccessorFacet,method=public >> java.util.SortedSet domainapp.modules.core.dom.impl.Food.getCustomUnits()], >> CollectionClearFacetViaAccessor[type=CollectionClearFacet,method=public >> java.util.SortedSet domainapp.modules.core.dom.impl.Food.getCustomUnits()], >> CollectionAddToFacetViaAccessor[type=CollectionAddToFacet,method=public >> java.util.SortedSet domainapp.modules.core.dom.impl.Food.getCustomUnits()], >> CollectionRemoveFromFacetViaAccessor[type=CollectionRemoveFromFacet,method=public >> java.util.SortedSet domainapp.modules.core.dom.impl.Food.getCustomUnits()]] >> >> at >> org.apache.isis.core.metamodel.facets.ImperativeFacet$Util.getIntent(ImperativeFacet.java:167) >> at >> org.apache.isis.core.wrapper.handlers.DomainObjectInvocationHandler.invoke(DomainObjectInvocationHandler.java:199) >> at >> domainapp.modules.core.dom.impl.Food$bb$VbQPvDRl.getCustomUnits(Unknown >> Source) >> at >> domainapp.modules.core.integtests.tests.Food_IntegTest$AddUnit.shouldWork(Food_IntegTest.java:32) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> at java.lang.reflect.Method.invoke(Method.java:498) >> at >> org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:513) >> at >> org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:115) >> at >> org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$6(TestMethodTestDescriptor.java:170) >> at >> org.junit.jupiter.engine.execution.ThrowableCollector.execute(ThrowableCollector.java:40) >> at >> org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:166) >> at >> org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:113) >> at >> org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:58) >> at >> org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.lambda$executeRecursively$3(HierarchicalTestExecutor.java:113) >> at >> org.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66) >> at >> org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.executeRecursively(HierarchicalTestExecutor.java:108) >> at >> org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.execute(HierarchicalTestExecutor.java:79) >> at >> org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.lambda$executeRecursively$2(HierarchicalTestExecutor.java:121) >> at >> java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) >> at >> java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) >> at java.util.Iterator.forEachRemaining(Iterator.java:116) >> at >> java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) >> at >> java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) >> at >> java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) >> at >> java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) >> at >> java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) >> at >> java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) >> at >> java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) >> at >> org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.lambda$executeRecursively$3(HierarchicalTestExecutor.java:121) >> at >> org.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66) >> at >> org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.executeRecursively(HierarchicalTestExecutor.java:108) >> at >> org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.execute(HierarchicalTestExecutor.java:79) >> at >> org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.lambda$executeRecursively$2(HierarchicalTestExecutor.java:121) >> at >> java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) >> at >> java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) >> at java.util.Iterator.forEachRemaining(Iterator.java:116) >> at >> java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) >> at >> java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) >> at >> java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) >> at >> java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) >> at >> java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) >> at >> java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) >> at >> java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) >> at >> org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.lambda$executeRecursively$3(HierarchicalTestExecutor.java:121) >> at >> org.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66) >> at >> org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.executeRecursively(HierarchicalTestExecutor.java:108) >> at >> org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor$NodeExecutor.execute(HierarchicalTestExecutor.java:79) >> at >> org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:55) >> at >> org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:43) >> at >> org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:170) >> at >> org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:154) >> at >> org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:90) >> at >> com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:74) >> at >> com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47) >> at >> com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242) >> at >> com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70) >> >> I can provide a demo repo if this needs some investigation but maybe I’m >> making some obvious mistake here. >> >> Thanks four your help. >> >> -- > DISCLAIMER: This e-mail is from Haywood Associates Ltd (Registered Number > 3525455) and it and its attachments may be confidential and are intended > solely for the use of the individual to whom it is addressed. Any > unauthorised use or dissemination of this communication is strictly > prohibited. Any information provided to Haywood Associates Ltd shall be > retained and used in accordance with our Privacy Statement at > http://www.haywood-associates.co.uk/privacy. If you have received this > communication in error, please immediately notify the sender by return > e-mail message and delete all copies of the original communication.