I'm loving IDEA. Debugging is better, and the Maven integration works great. Glad I can finally be part of the 'cool kids'. When I was younger, geek != cool; and I only knew one other kid with an Amiga - but he edged on the side of nerd ;-)
Thanks for the info on the stack trace. I don’t understand object mapping yet, but I'm getting there. Question - Should the Object Specification contain enhanced method names? Example - "public java.lang.String dom.todo.ToDoItem.dnGetnotes()" -> "Action [id=dnGetnotes,name='Dn Getnotes',type=USER,returns=ObjectSpecificationDefault@233d897[class=java.lang.String,type=Object,persistable=User Persistable,superclass=Object],parameters={}]" [moved on to a new exception now] I know this is a generic error, "user lacks privilege or object not found", but the stack trace may indicate something I'm not seeing. canBeUpToSixDaysInPast(integration.tests.ToDoItemIntegTest$Properties$DueBy) Time elapsed: 0.003 sec <<< ERROR! org.apache.isis.core.runtime.persistence.ObjectPersistenceException: Failed to executeSql: delete from "ToDoItem" where "ownedBy" = 'tester' at org.apache.isis.objectstore.jdo.datanucleus.service.support.IsisJdoSupportImpl.executeUpdate(IsisJdoSupportImpl.java:145) at org.apache.isis.objectstore.jdo.datanucleus.service.support.IsisJdoSupportImpl.executeUpdate(IsisJdoSupportImpl.java:104) at fixture.todo.items.delete.ToDoItemsDelete.execute(ToDoItemsDelete.java:29) at org.apache.isis.applib.fixturescripts.FixtureScript$ExecutionContext.executeChildIfNotAlready(FixtureScript.java:408) at org.apache.isis.applib.fixturescripts.FixtureScript$ExecutionContext.executeChild(FixtureScript.java:389) at org.apache.isis.applib.fixturescripts.FixtureScript$ExecutionContext.executeChild(FixtureScript.java:374) at fixture.todo.scenarios.ToDoItemsRecreateAndCompleteSeveral.execute(ToDoItemsRecreateAndCompleteSeveral.java:66) at org.apache.isis.applib.fixturescripts.FixtureScript$ExecutionContext.executeChildIfNotAlready(FixtureScript.java:408) at org.apache.isis.applib.fixturescripts.FixtureScript$ExecutionContext.access$100(FixtureScript.java:242) at org.apache.isis.applib.fixturescripts.FixtureScript.run(FixtureScript.java:504) at org.apache.isis.applib.fixturescripts.FixtureScripts.runFixtureScript(FixtureScripts.java:266) at fixture.todo.ToDoItemsFixturesService.runFixtureScript(ToDoItemsFixturesService.java:58) at integration.tests.ToDoItemIntegTest.setUpData(ToDoItemIntegTest.java:70) at sun.reflect.GeneratedMethodAccessor15.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) at org.apache.isis.core.integtestsupport.IntegrationTestAbstract$IsisTransactionRule$1.evaluate(IntegrationTestAbstract.java:199) at org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2$1.evaluate(JUnitRuleMockery2.java:146) at org.junit.rules.ExpectedException$ExpectedExceptionStatement.evaluate(ExpectedException.java:168) at org.junit.rules.RunRules.evaluate(RunRules.java:20) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) at org.junit.runners.ParentRunner.run(ParentRunner.java:309) at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124) at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103) Caused by: java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: ToDoItem at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source) at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source) at org.hsqldb.jdbc.JDBCStatement.fetchResult(Unknown Source) at org.hsqldb.jdbc.JDBCStatement.executeUpdate(Unknown Source) at org.datanucleus.store.rdbms.datasource.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:210) at org.datanucleus.store.rdbms.datasource.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:210) at org.apache.isis.objectstore.jdo.datanucleus.service.support.IsisJdoSupportImpl.executeUpdate(IsisJdoSupportImpl.java:142) Jeremy D. Branham Tel: **DOTNET -----Original Message----- From: Dan Haywood [mailto:d...@haywood-associates.co.uk] Sent: Tuesday, December 30, 2014 12:36 PM To: users Subject: Re: Working on a branch with latest datanucleus On 30 December 2014 at 17:28, Branham, Jeremy [HR] < jeremy.d.bran...@sprint.com> wrote: > Thanks, I've downloaded IDEA to give it a go. > > Like Martin, I'm also an ex-Eclipse user (2003 to 2014 !) and used IDEA in 2011 but missed Eclipse's incremental compilation. Now that IDEA supports that feature, it's definitely superior. In particular, because there's no dependency on the slightly flaky Eclipse DataNucleus plugin, it makes for a better developer experience. And its's also nice to be using the same tool as all the cool kids! > > Any thoughts on this? > > I can tell you what the error means, but not sure (exactly) how to fix it. In Isis we maintain two hashmaps which map from the pojo -> ObjectAdapter and from the OID to the ObjectAdapter. Historically Isis didn't use JDO/DataNucleus, and so it used these hashmaps to manage the lifecycle of the objects. For example, the OID and ObjectAdapter between them keep track of the lazy loading. However, since we now use JDO/DataNucleus, which performs its own lazy loading etc, it means that Isis' maps is basically subservient to JDO, and (I strongly suspect) is actually redundant. There's a class called FrameworkSynchronizer which adds a bunch of listeners to the JDO runtime, and aims to keep Isis' maps in sync. With DN 3.x this all seems to work reliably enough. Anyway, as you can see in the stacktrace, what's happening with your branch is that things have got out of whack. My intention to deal with all this ugliness is basically to get rid of those two hashmaps, and instead to simply instantiate and then discard the ObjectAdapters whenever they are needed. But I haven't done the analysis on the methods of ObjectAdapter and Oid to figure out if there's any impact on any of that. Just looking at your particular stack trace, it seems that the error is being thrown immediately when the objects being loaded are mapped (in loadInstancesAndAdapt). That suggests in turn that the map was in an invalid state from the previous interaction; or perhaps things didn't get cleared down at the end of the previous interaction. Or... perhaps there's a (new?) error in the Oid class so that it no longer acting correctly as a value type as the key in the Oid/adapter map. Hope that some of the above helps you figure out the issue.... Cheers Dan > ....... > 22:15:23,207 [AdapterManagerDefault main DEBUG] remapAsPersistent: > !org.apache.isis.objectstore.jdo.datanucleus.service.support.IsisJdoSupportImpl:c51ca8f2-48d1-412b-979c-11622a382faf > 22:15:23,207 [AdapterManagerDefault main DEBUG] removing root > adapter from oid map > 22:15:23,207 [OidAdapterHashMap main DEBUG] remove oid: > !org.apache.isis.objectstore.jdo.datanucleus.service.support.IsisJdoSupportImpl:c51ca8f2-48d1-412b-979c-11622a382faf > 22:15:23,207 [AdapterManagerDefault main DEBUG] removing > collection adapter(s) from oid map > 22:15:23,207 [AdapterManagerDefault main DEBUG] updating the Oid > 22:15:23,207 [AdapterManagerDefault main DEBUG] replacing Oid for > root adapter and re-adding into maps; oid is now: > org.apache.isis.objectstore.jdo.datanucleus.service.support.IsisJdoSupportImpl:1 > (was: > !org.apache.isis.objectstore.jdo.datanucleus.service.support.IsisJdoSupportImpl:c51ca8f2-48d1-412b-979c-11622a382faf) > 22:15:23,207 [OidAdapterHashMap main DEBUG] add oid: > org.apache.isis.objectstore.jdo.datanucleus.service.support.IsisJdoSupportImpl:1 > ; oid.hashCode: + #102ac45e ; adapter.hashCode(): #5e65eee4 > 22:15:23,207 [AdapterManagerDefault main DEBUG] replacing Oids for > collection adapter(s) and re-adding into maps > 22:15:23,207 [AdapterManagerDefault main DEBUG] synchronizing > collection pojos, remapping in pojo map if required > 22:15:23,207 [AdapterManagerDefault main DEBUG] made persistent > PojoAdapter@5e65eee4 > [PR~:org.apache.isis.objectstore.jdo.datanucleus.service.support.IsisJdoSupportImpl:1,specification=IsisJdoSupportImpl,version=null,pojo-toString=org.apache.isis.objectstore.jdo.datanucleus.service.support.IsisJdoSupportImpl@1dd1b36,pojo-hash=#1dd1b36]; > was > !org.apache.isis.objectstore.jdo.datanucleus.service.support.IsisJdoSupportImpl:c51ca8f2-48d1-412b-979c-11622a382faf > Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.051 sec > <<< FAILURE! - in integration.tests.ToDoItemsIntegTest$Finders > complete_and_notYetComplete(integration.tests.ToDoItemsIntegTest$Finders) > Time elapsed: 0.051 sec <<< ERROR! > java.lang.RuntimeException: java.lang.IllegalArgumentException: mismatch > in OidAdapter map: adapter's Oid: TODO:1^1:tester:, provided adapter's OID: > TODO:1^1:tester:; map's adapter's Oid: TODO:1^1:tester: > at org.apache.isis.core.commons.ensure.Ensure.ensureThatArg(Ensure.java:75) > at > org.apache.isis.core.runtime.persistence.adaptermanager.AdapterManagerDefault.ensureOidAdapterMapConsistent(AdapterManagerDefault.java:810) > at > org.apache.isis.core.runtime.persistence.adaptermanager.AdapterManagerDefault.ensureMapsConsistent(AdapterManagerDefault.java:780) > at > org.apache.isis.core.runtime.persistence.adaptermanager.AdapterManagerDefault.removeAdapter(AdapterManagerDefault.java:459) > at > org.apache.isis.core.runtime.persistence.adaptermanager.AdapterManagerDefault.remapRecreatedPojo(AdapterManagerDefault.java:368) > at > org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$1.run(FrameworkSynchronizer.java:95) > at > org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$8.call(FrameworkSynchronizer.java:352) > at > org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer$8.call(FrameworkSynchronizer.java:348) > at > org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:337) > at > org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:348) > at > org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.postLoadProcessingFor(FrameworkSynchronizer.java:75) > at > org.apache.isis.objectstore.jdo.datanucleus.persistence.queries.PersistenceQueryProcessorAbstract.loadAdapters(PersistenceQueryProcessorAbstract.java:85) > at > org.apache.isis.objectstore.jdo.datanucleus.persistence.queries.PersistenceQueryFindAllInstancesProcessor.process(PersistenceQueryFindAllInstancesProcessor.java:57) > at > org.apache.isis.objectstore.jdo.datanucleus.persistence.queries.PersistenceQueryFindAllInstancesProcessor.process(PersistenceQueryFindAllInstancesProcessor.java:34) > at > org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.processPersistenceQuery(DataNucleusObjectStore.java:520) > at > org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.loadInstancesAndAdapt(DataNucleusObjectStore.java:515) > at > org.apache.isis.core.runtime.system.persistence.PersistenceSession$1.execute(PersistenceSession.java:420) > at > org.apache.isis.core.runtime.system.persistence.PersistenceSession$1.execute(PersistenceSession.java:417) > at > org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.executeWithinTransaction(IsisTransactionManager.java:205) > at > org.apache.isis.core.runtime.system.persistence.PersistenceSession.getInstancesFromPersistenceLayer(PersistenceSession.java:417) > at > org.apache.isis.core.runtime.system.persistence.PersistenceSession.getInstances(PersistenceSession.java:413) > at > org.apache.isis.core.runtime.system.persistence.PersistenceSession.findInstances(PersistenceSession.java:394) > at > org.apache.isis.core.runtime.system.persistence.PersistenceSession.findInstances(PersistenceSession.java:377) > at > org.apache.isis.core.runtime.persistence.internal.RuntimeContextFromSession$8.allMatchingQuery(RuntimeContextFromSession.java:282) > at > org.apache.isis.core.metamodel.services.container.DomainObjectContainerDefault.allMatches(DomainObjectContainerDefault.java:438) > at > org.apache.isis.core.metamodel.services.container.DomainObjectContainerDefault.allInstances(DomainObjectContainerDefault.java:396) > at > fixture.todo.items.actions.complete.ToDoItemCompleteAbstract.findToDoItem(ToDoItemCompleteAbstract.java:42) > at > fixture.todo.items.actions.complete.ToDoItemCompleteAbstract.complete(ToDoItemCompleteAbstract.java:36) > at > fixture.todo.items.actions.complete.ToDoItemCompleteForBuyStamps.execute(ToDoItemCompleteForBuyStamps.java:27) > at > org.apache.isis.applib.fixturescripts.FixtureScript$ExecutionContext.executeChildIfNotAlready(FixtureScript.java:408) > at > org.apache.isis.applib.fixturescripts.FixtureScript$ExecutionContext.executeChild(FixtureScript.java:389) > at > org.apache.isis.applib.fixturescripts.FixtureScript$ExecutionContext.executeChild(FixtureScript.java:374) > at > fixture.todo.scenarios.ToDoItemsRecreateAndCompleteSeveral.execute(ToDoItemsRecreateAndCompleteSeveral.java:83) > at > org.apache.isis.applib.fixturescripts.FixtureScript$ExecutionContext.executeChildIfNotAlready(FixtureScript.java:408) > at > org.apache.isis.applib.fixturescripts.FixtureScript$ExecutionContext.executeChild(FixtureScript.java:389) > at > org.apache.isis.applib.fixturescripts.FixtureScript$ExecutionContext.executeChild(FixtureScript.java:374) > at > fixture.todo.integtests.ToDoItemsIntegTestFixture.execute(ToDoItemsIntegTestFixture.java:37) > at > org.apache.isis.applib.fixturescripts.FixtureScript$ExecutionContext.executeChildIfNotAlready(FixtureScript.java:408) > at > org.apache.isis.applib.fixturescripts.FixtureScript$ExecutionContext.access$100(FixtureScript.java:242) > at > org.apache.isis.applib.fixturescripts.FixtureScript.run(FixtureScript.java:504) > at > org.apache.isis.applib.fixturescripts.FixtureScripts.runFixtureScript(FixtureScripts.java:266) > at > fixture.todo.ToDoItemsFixturesService.runFixtureScript(ToDoItemsFixturesService.java:58) > at > integration.tests.ToDoItemsIntegTest$Finders.setUpData(ToDoItemsIntegTest.java:49) > > > > Jeremy D. Branham > Tel: **DOTNET > > > -----Original Message----- > From: Martin Grigorov [mailto:mgrigo...@apache.org] > Sent: Monday, December 29, 2014 11:08 PM > To: users > Subject: RE: Working on a branch with latest datanucleus > > Hi, > > On Dec 30, 2014 5:39 AM, "Branham, Jeremy [HR]" < > jeremy.d.bran...@sprint.com> > wrote: > > > > There ended up being a lot of refactoring to swap PersistenceCapable > > for > Persistable throughout. > > > > Currently trying to understand this - > > > > java.lang.IllegalArgumentException: mismatch in OidAdapter map: > > adapter's > Oid: TODO:1^1:tester:, provided adapter's OID: TODO:1^1:tester:; map's > adapter's Oid: TODO:1^1:tester: > > at > org.apache.isis.core.commons.ensure.Ensure.ensureThatArg(Ensure.java:75) > > > > > > I'm having difficulty getting MyEclipse to attach and stop at the > breakpoints during a Maven build, so this process has been needlessly > complicated. > > > > This is off topic, but I'm curious what other folks are using. > > Eclipse, > IDEA, other? > > I'm ex-Eclipse user and now I use IDEA for 2+ years. I'm very happy with > the switch! Debugging Maven build usually is very easy by using IDEA's > Maven integration ! > > Some ideas: > 1) use mvnDebug to start Maven on command line with remote debugging > enabled. It will suspend before starting the process so you can attach the > debugger > > 2) run the failing test directly from the IDE > > Thanks for helping us with this! > Have fun! > > > > > > > Jeremy D. Branham > > Tel: **DOTNET > > > > > > -----Original Message----- > > From: Branham, Jeremy [HR] > > Sent: Monday, December 29, 2014 4:47 PM > > To: users@isis.apache.org > > Subject: RE: Working on a branch with latest datanucleus > > > > > > I've added the factories to the ' IsisConfigurationForJdoIntegTests' > > and > adjusted the DataNucleus properties to match 4.x > > > > I can see the tables are getting created but there is a cast exception. > > I won't flood the email distribution again until I'm stuck for a few > hours. =] Looks like it's pretty close now. > > > > > > Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.031 > > sec > <<< FAILURE! - in integration.tests.ToDoItemsIntegTest$NewToDo_and_Delete > > happyCase(integration.tests.ToDoItemsIntegTest$NewToDo_and_Delete) > > Time > elapsed: 0.031 sec <<< ERROR! > > java.lang.ClassCastException: dom.todo.ToDoItem cannot be cast to > javax.jdo.spi.PersistenceCapable > > > > > > ------------------------- > > 16:35:20,986 [Schema main DEBUG] CREATE TABLE > "ToDoItem" > > ( > > "id" BIGINT GENERATED BY DEFAULT AS IDENTITY, > > "attachment_name" BLOB NULL, > > "category" NVARCHAR(255) NOT NULL, > > "complete" BOOLEAN NOT NULL, > > "cost" DECIMAL(19,2) NULL, > > "description" NVARCHAR(100) NOT NULL, > > "doc_name" BLOB NULL, > > "dueBy" DATE NULL, > > "notes" NVARCHAR(400) NULL, > > "ownedBy" NVARCHAR(255) NOT NULL, > > "subcategory" NVARCHAR(255) NULL, > > "version" BIGINT NOT NULL, > > CONSTRAINT "ToDoItem_PK" PRIMARY KEY ("id") > > ) > > 16:35:20,986 [Schema main DEBUG] Execution Time = 0 > ms > > 16:35:21,002 [Schema main DEBUG] Check of existence > of "ToDoItemDependencies" returned no table > > 16:35:21,002 [Schema main DEBUG] Creating table > "ToDoItemDependencies" > > 16:35:21,002 [Schema main DEBUG] CREATE TABLE > "ToDoItemDependencies" > > ( > > "dependingId" BIGINT NOT NULL, > > "dependentId" BIGINT NOT NULL, > > CONSTRAINT "ToDoItemDependencies_PK" PRIMARY KEY > ("dependingId","dependentId") > > ) > > > > > > > > > > > > > > Jeremy D. Branham > > Tel: **DOTNET > > > > > > -----Original Message----- > > From: Branham, Jeremy [HR] > > Sent: Monday, December 29, 2014 3:31 PM > > To: users@isis.apache.org > > Subject: RE: Working on a branch with latest datanucleus > > > > Forgot to mention - > > I updated the 'JDOStateManagerForIsis' to use Persistable instead of > PersistanceCapable. > > > > public class JDOStateManagerForIsis extends > > ReferentialStateManagerImpl { > ... > > } > > > > > > Jeremy D. Branham > > Tel: **DOTNET > > > > > > -----Original Message----- > > From: Branham, Jeremy [HR] > > Sent: Monday, December 29, 2014 3:26 PM > > To: users@isis.apache.org > > Subject: RE: Working on a branch with latest datanucleus > > > > Thanks, that has got me started. > > For now I am just working with the RDMS capable statemanager, and will > focus on the Neo4j compatibility later. > > > > I've added two ' AbstractRemoveMethodsFacetFactory' > > > > [Finds 25 methods] > > public RemoveDatanucleusPersistableTypesFacetFactory() { > > super("org.datanucleus.enhancer.Persistable"); > > } > > > > And > > > > [org.apache.isis.core.commons.factory.UnavailableClassException: The > default type 'javax.jdo.spi.Persistable' cannot be found] > > public RemoveJdoPersistableEnhancementTypesFacetFactory() { > > super("javax.jdo.spi.Persistable"); > > } > > > > > > > > In the 'FacetedMethodsBuilder# getActionFacetedMethods' I do see this > > - > [It looks like it is stripping off the dn methods, does this look right?] > > > > associationFacetMethodsCollections$UnmodifiableRandomAccessList<E> > (id=289) [PROPERTY Peer > [identifier="dom.simple.SimpleObject#name()",type=java.lang.String ]] > > > > introspectedClassClass<T> (dom.simple.SimpleObject) (id=291) class > dom.simple.SimpleObject > > > > methodsArrays$ArrayList<E> (id=293) > > [null, null, null, null, public static java.lang.Class > dom.simple.SimpleObject.___jdo$loadClass(java.lang.String), null, null, > null, null, null, null, null, null, null, null, null, null, null, null, > null, null, null, null, null, null, null, null, null, null, null, null, > null, null, null, null, null, null, null, null, null, null] > > > > > > Is it ok that the 'SimpleObject.___jdo$loadClass' method is listed there? > > > > > > > > Although, this exception is getting thrown now - > > > > // assert is persistent > > if(!pojo.jdoIsPersistent()) { > > throw new IllegalStateException("Pojo JDO state is > not persistent! pojo dnOid: " + JDOHelper.getObjectId(pojo)); > > } > > > > > > Is there still something wrong with the method filtering? Or is this a > different issue? > > > > > > > > Jeremy D. Branham > > Tel: **DOTNET > > > > > > -----Original Message----- > > From: Dan Haywood [mailto:d...@haywood-associates.co.uk] > > Sent: Monday, December 29, 2014 11:33 AM > > To: users > > Subject: Re: Working on a branch with latest datanucleus > > > > Hi Jeremy, > > > > Having not looked at DN 4.x at all yet, can't specfically advise; have > > a > few general thoughts though. > > > > Just to recap on stuff that you probably know/have figured out... > > > > * With respect to javax.jdo.spi.PersistenceCapable vs > javax.jdo.spi.Persistable, in DN 3.x I know the enhancer makes all > enhanced objects implement the javax.jdo.spi.PersistenceCapable interface. > Looking at the javax.jdo.spi.Persistable interface for DN 3.x it seems like > its a placeholder, with a comment "Note that this is not yet used by > DataNucleus, but is intended as something for the future." > > > > * My guess for DN 4.x is that Andy Jefferson (maintainer of DN) has > > now > made this change, and generalized things to work with > javax.jdo.spi.Persistable instead of, or perhaps as well as, > PersistenceCapable. (This might explain the new dnReplaceFields(...) > methods rather than jdoReplaceFields(...) methods that you saw before). > > > > * I can tell you that JDOStateManagerForIsis is kinda important, as > > its > the point where we tell Isis about the objects that are brought into > memory by DN, to map them and inject services into them. So you will need > to find some sort of implementation of it. > > > > ~~~ > > From its name, I'm guessing that ReferentialJDOStateManager is for > > RDBMS > stores, whereas of course you are using Neo4J instead. So you probably > need to inherit from AbstractStateManager or something else higher up in > the inheritance hierarchy. > > > > In terms of getting Isis to work with your own improved version of > JdoStateManagerForIsis, it looks like the implementation is specified in > > > > DataNucleusPersistenceMechanismInstaller#addDataNucleusPropertiesIfRequired(...) > > ... so you can probably just add your impl to isis.properties. > > > > Also, I notice that there's a thread-local in JdoStateManagerForIsis > > that > is referenced by EventBusServiceJdo, but that could easily be moved out > into some other class. > > > > ~~ > > If none of the above helps, you might want to try posting a question > > on > the DN forum [1], though I know that Andy does also answer DN questions on > SO also. The question will need to be framed in terms of DN rather than > Isis though. > > > > If you get nowhere, I can ping Andy also (so long as I'm clear about > > what > I'm asking, which I'm not quite, at the moment). > > > > HTH > > Dan > > > > > > [1] http://www.datanucleus.org/support.html > > > > > > > > On 29 December 2014 at 16:52, Branham, Jeremy [HR] < > jeremy.d.bran...@sprint.com> wrote: > > > > > I thought I was being clever changing over to 'Persitable' in the > > > 'JDOStateManagerForIsis', but I get errors about the 'SimpleObject' > > > not being persistable at runtime. > > > > > > --------------- > > > > > > I have a question about the ReferentialJDOStateManager in DataNucleus. > > > The JDOStateManager extended this class in DN 3.x but it is not > > > present in DN 4.x > > > > > > Affected class in Isis - > > > public class JDOStateManagerForIsis extends > > > ReferentialJDOStateManager implements StateManager, ObjectProvider > > > > > > I do see this class - > > > org.datanucleus.state.ReferentialStateManagerImpl > > > > > > I thought this might be the appropriate replacement, but if I extend > > > ReferentialStateManagerImpl, there are problems... > > > > > > The problem I encounter when extending the new class - > > > ReferentialStateManagerImpl extends StateManagerImpl. Which extends > > > AbstractStateManager<Persistable> > > > > > > The current JDOStateManagerForIsis is setup to handle > > > PersistenceCapable objects rather than Persistable objects. > > > > > > I'm not sure where to go from here. > > > > > > Also posted on SO - > > > > > > http://stackoverflow.com/questions/27692754/is-referentialjdostatema > > > na > > > ger-not-used-in-datanucleus-4-x > > > > > > > > > > > > > > > Jeremy D. Branham > > > Tel: **DOTNET > > > > > > > > > -----Original Message----- > > > From: Dan Haywood [mailto:d...@haywood-associates.co.uk] > > > Sent: Friday, December 26, 2014 1:42 AM > > > To: users > > > Subject: Re: Working on a branch with latest datanucleus > > > > > > With Isis we have: > > > > > > > > > > > > org.apache.isis.core.metamodel.facets.object.ignore.jdo.RemoveJdoEnh > > > an > > > cementTypesFacetFactory > > > > > > that ensures that Isis ignores all the methods in the > > > javax,jdo.spi.PersistenceCapable interface. That interface defines > > > a bunch of methods called jdoReplaceFields(int[]) and so on. > > > > > > My guess is that with DN 4.0 that this has changed so that there is > > > a similar DN-specific interface that the enhancer makes the > > > persistence-capable objects implement. > > > > > > Have a go at writing a similar facet factory and register it in > > > isis.properties using the "isis.reflector.facets.include" property, > > > see [1]... If it works we can incorporate into Isis proper for a > > > future > version. > > > > > > Let us know how you get on. > > > > > > Dan > > > > > > > > > [1] > > > > > > http://isis.apache.org/more-advanced-topics/metamodel-finetuning-the > > > -p > > > rogramming-model.html > > > > > > > > > On 25 December 2014 at 00:43, Branham, Jeremy [HR] < > > > jeremy.d.bran...@sprint.com> wrote: > > > > > > > Thanks for checking Dan. > > > > I solved that particular issue, but I'm not sure it's a valid > solution. > > > > > > > > Changed - > > > > > > > > https://github.com/jdbranham/isis/blob/DN_404/core/metamodel/src/m > > > > ai > > > > n/ > > > > java/org/apache/isis/core/metamodel/specloader/classsubstitutor/Cl > > > > as > > > > sS > > > > ubstitutor.java#L53-L55 > > > > > > > > > > > > New Issue I'm working on - > > > > > > > > Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: > > > > 0.197 sec <<< FAILURE! - in > > > > integration.tests.ToDoItemIntegTest$Properties$Description > > > > integration.tests.ToDoItemIntegTest$Properties$Description Time > elapsed: > > > > 0.197 sec <<< ERROR! > > > > java.lang.RuntimeException: > > > > org.apache.isis.core.commons.exceptions.UnknownTypeException: > > > > collections not supported as parameters: > > > > dom.todo.ToDoItem#dnProvideFields([I) > > > > at > > > > org.apache.isis.core.integtestsupport.IsisSystemForTest.setUpSyste > > > > m( > > > > Is > > > > isSystemForTest.java:314) > > > > > > > > > > > > Jeremy D. Branham > > > > Tel: **DOTNET > > > > > > > > > > > > -----Original Message----- > > > > From: Dan Haywood [mailto:d...@haywood-associates.co.uk] > > > > Sent: Wednesday, December 24, 2014 12:05 PM > > > > To: users > > > > Subject: Re: Working on a branch with latest datanucleus > > > > > > > > Hi Jeremy, > > > > > > > > sorry, it's not clear to me if you had an issue but then resolved > > > > it, or whether there is still an issue? > > > > > > > > With respect to moving to DN 4.0, that's certainly the intention, > > > > and is a prerequisite for us to support Java8. Given that Java7 > > > > support finishes in April 2015, it's clearly something that we > > > > need to do be tackling quite soon. > > > > > > > > Thx > > > > Dan > > > > > > > > > > > > On 24 December 2014 at 05:24, Branham, Jeremy [HR] < > > > > jeremy.d.bran...@sprint.com> wrote: > > > > > > > > > The line numbers didn't match because a different version of the > > > > > class was being loaded. > > > > > I added a null check that solved the issue, but the code running > > > > > hadn't picked up the change yet. > > > > > > > > > > > > > > > Jeremy D. Branham > > > > > Tel: **DOTNET > > > > > > > > > > > > > > > -----Original Message----- > > > > > From: Branham, Jeremy [HR] > > > > > Sent: Tuesday, December 23, 2014 11:04 PM > > > > > To: users@isis.apache.org > > > > > Subject: Working on a branch with latest datanucleus > > > > > > > > > > Sorry for the massive stack trace, but I was looking for some > > > > > pointers on what might be happing here. > > > > > I'm having a bit of difficulty debugging because the line > > > > > numbers reported don't seem to match the source files, and even > > > > > when stepping through the code. [maybe something wrong in my dev > > > > > env] > > > > > > > > > > I'm working on a branch with a newer datanucleus support [4.0.4] > > > > > and seems to be an issue with the spec loader. > > > > > I understand if there is no support for this yet. > > > > > > > > > > > > > > > 22:52:01,445 [Reflections main INFO ] Reflections > took > > > > > 421 ms to scan 7 urls, producing 148 keys and 716 values > > > > > 22:52:01,523 [ServiceInstantiator main DEBUG] loading > class > > > for > > > > > service: dom.simple.SimpleObjects > > > > > 22:52:01,523 [ServiceInstantiator main DEBUG] loading > class > > > for > > > > > service: fixture.simple.SimpleObjectsFixturesService > > > > > 22:52:01,523 [ServiceInstantiator main DEBUG] loading > class > > > for > > > > > service: org.apache.isis.applib.annotation.Bulk$InteractionContext > > > > > 22:52:01,571 [ServiceInstantiator main DEBUG] loading > class > > > for > > > > > service: > > > > > > > > > org.apache.isis.applib.services.bookmark.BookmarkHolderActionContr > > > > ib > > > > ut > > > > ions > > > > > 22:52:01,571 [ServiceInstantiator main DEBUG] loading > class > > > for > > > > > service: > > > > > > > > > org.apache.isis.applib.services.classdiscovery.ClassDiscoveryServi > > > > ce > > > > Us > > > > ingReflections > > > > > 22:52:01,571 [ServiceInstantiator main DEBUG] loading > class > > > for > > > > > service: org.apache.isis.applib.services.clock.ClockService > > > > > 22:52:01,571 [ServiceInstantiator main DEBUG] loading > class > > > for > > > > > service: org.apache.isis.applib.services.command.CommandContext > > > > > 22:52:01,571 [ServiceInstantiator main DEBUG] loading > class > > > for > > > > > service: > > > > org.apache.isis.applib.services.queryresultscache.QueryResultsCach > > > > e > > > > > 22:52:01,571 [ServiceInstantiator main DEBUG] loading > class > > > for > > > > > service: org.apache.isis.applib.services.scratchpad.Scratchpad > > > > > 22:52:01,571 [ServiceInstantiator main DEBUG] loading > class > > > for > > > > > service: > > > > > > > > org.apache.isis.core.metamodel.services.bookmarks.BookmarkServiceDef > > > au > > > lt > > > > > 22:52:01,571 [ServiceInstantiator main DEBUG] loading > class > > > for > > > > > service: > > > > > > > > > org.apache.isis.core.metamodel.services.container.DomainObjectCont > > > > ai > > > > ne > > > > rDefault > > > > > 22:52:01,571 [ServiceInstantiator main DEBUG] loading > class > > > for > > > > > service: > > > > > > > > org.apache.isis.core.runtime.services.background.BackgroundServiceDe > > > fa > > > ult > > > > > 22:52:01,571 [ServiceInstantiator main DEBUG] loading > class > > > for > > > > > service: > > > > org.apache.isis.core.runtime.services.memento.MementoServiceDefaul > > > > t > > > > > 22:52:01,571 [ServiceInstantiator main DEBUG] loading > class > > > for > > > > > service: > > > > > > > > > org.apache.isis.core.runtime.services.xmlsnapshot.XmlSnapshotServi > > > > ce > > > > De > > > > fault > > > > > 22:52:01,571 [ServiceInstantiator main DEBUG] loading > class > > > for > > > > > service: org.apache.isis.core.wrapper.WrapperFactoryDefault > > > > > 22:52:01,587 [ServiceInstantiator main DEBUG] loading > class > > > for > > > > > service: > > > > > > > > > org.apache.isis.objectstore.jdo.applib.service.exceprecog.Exceptio > > > > nR > > > > ec > > > > ognizerCompositeForJdoObjectStore > > > > > 22:52:01,618 [ServiceInstantiator main DEBUG] loading > class > > > for > > > > > service: > > > > > > > > > org.apache.isis.objectstore.jdo.datanucleus.service.eventbus.Event > > > > Bu > > > > sS > > > > erviceJdo > > > > > 22:52:01,618 [ServiceInstantiator main DEBUG] loading > class > > > for > > > > > service: > > > > > > > > > org.apache.isis.objectstore.jdo.datanucleus.service.support.IsisJd > > > > oS > > > > up > > > > portImpl > > > > > 22:52:01,618 [ServiceInstantiator main DEBUG] loading > class > > > for > > > > > service: > > > > > > > > > org.apache.isis.viewer.restfulobjects.rendering.service.Representa > > > > ti > > > > on > > > > ServiceForRestfulObjects > > > > > 22:52:01,712 [ServicesInjectorDefault main DEBUG] injected > > > > > org.apache.isis.core.metamodel.services.container.DomainObjectCo > > > > > nt > > > > > ai > > > > > ne > > > > > rDefault@397c8a21 > > > > > into SimpleObjects@529d935d[] > > > > > 22:52:01,712 [ServicesInjectorDefault main DEBUG] injected > > > > > org.apache.isis.core.runtime.services.memento.MementoServiceDefa > > > > > ul t@ 6c dd377c into SimpleObjectsFixturesService@2f65e5ba[] > > > > > 22:52:01,712 [ServicesInjectorDefault main DEBUG] injected > > > > > org.apache.isis.core.metamodel.services.bookmarks.BookmarkServic > > > > > eD > > > > > ef > > > > > au > > > > > lt@4acd2ea5 into SimpleObjectsFixturesService@2f65e5ba[] > > > > > 22:52:01,712 [ServicesInjectorDefault main DEBUG] injected > > > > > org.apache.isis.applib.services.classdiscovery.ClassDiscoverySer > > > > > vi > > > > > ce > > > > > Us > > > > > ingReflections@64b17900 into SimpleObjectsFixturesService@2f65e5ba > [] > > > > > 22:52:01,712 [ServicesInjectorDefault main DEBUG] injected > > > > > org.apache.isis.core.metamodel.services.container.DomainObjectCo > > > > > nt > > > > > ai > > > > > ne > > > > > rDefault@397c8a21 into SimpleObjectsFixturesService@2f65e5ba[] > > > > > 22:52:01,712 [ServicesInjectorDefault main DEBUG] injected > > > > > org.apache.isis.core.metamodel.services.bookmarks.BookmarkServic > > > > > eD > > > > > ef > > > > > au > > > > > lt@4acd2ea5 into BookmarkHolderActionContributions@3f7f22a5[] > > > > > 22:52:01,712 [ServicesInjectorDefault main DEBUG] injected > > > > > org.apache.isis.core.metamodel.services.container.DomainObjectCo > > > > > nt > > > > > ai > > > > > ne > > > > > rDefault@397c8a21 into > > > > > ClassDiscoveryServiceUsingReflections@64b17900[] > > > > > 22:52:01,712 [ServicesInjectorDefault main DEBUG] injected > > > > > org.apache.isis.core.wrapper.WrapperFactoryDefault@33bb9f34 into > > > > > BookmarkServiceDefault@4acd2ea5[] > > > > > 22:52:01,712 [ServicesInjectorDefault main DEBUG] injected > > > > > org.apache.isis.core.wrapper.WrapperFactoryDefault@33bb9f34 into > > > > > DomainObjectContainerDefault@397c8a21[] > > > > > 22:52:01,712 [ServicesInjectorDefault main DEBUG] injected > > > > > org.apache.isis.core.metamodel.services.bookmarks.BookmarkServic > > > > > eD > > > > > ef > > > > > au > > > > > lt@4acd2ea5 into BackgroundServiceDefault@4898c8f9[] > > > > > 22:52:01,712 [ServicesInjectorDefault main DEBUG] injected > > > > > org.apache.isis.core.runtime.services.ServiceInstantiator$2@26b2 > > > > > 78 ab into BackgroundServiceDefault@4898c8f9[] > > > > > 22:52:01,727 [ObjectReflectorDefault main DEBUG] > initialising > > > > > > > > org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault@1e6 > > > 14 > > > 4db > > > > > 22:52:01,727 [ServicesInjectorDefault main DEBUG] injected > > > > > org.apache.isis.core.metamodel.services.container.DomainObjectCo > > > > > nt > > > > > ai > > > > > ne > > > > > rDefault@397c8a21 > > > > > into SimpleObjects@529d935d[] > > > > > 22:52:01,727 [ServicesInjectorDefault main DEBUG] injected > > > > > org.apache.isis.core.runtime.services.memento.MementoServiceDefa > > > > > ul t@ 6c dd377c into SimpleObjectsFixturesService@2f65e5ba[] > > > > > 22:52:01,727 [ServicesInjectorDefault main DEBUG] injected > > > > > org.apache.isis.core.metamodel.services.bookmarks.BookmarkServic > > > > > eD > > > > > ef > > > > > au > > > > > lt@4acd2ea5 into SimpleObjectsFixturesService@2f65e5ba[] > > > > > 22:52:01,727 [ServicesInjectorDefault main DEBUG] injected > > > > > org.apache.isis.applib.services.classdiscovery.ClassDiscoverySer > > > > > vi > > > > > ce > > > > > Us > > > > > ingReflections@64b17900 into SimpleObjectsFixturesService@2f65e5ba > [] > > > > > 22:52:01,727 [ServicesInjectorDefault main DEBUG] injected > > > > > org.apache.isis.core.metamodel.services.container.DomainObjectCo > > > > > nt > > > > > ai > > > > > ne > > > > > rDefault@397c8a21 into SimpleObjectsFixturesService@2f65e5ba[] > > > > > 22:52:01,727 [ServicesInjectorDefault main DEBUG] injected > > > > > org.apache.isis.core.metamodel.services.bookmarks.BookmarkServic > > > > > eD > > > > > ef > > > > > au > > > > > lt@4acd2ea5 into BookmarkHolderActionContributions@3f7f22a5[] > > > > > 22:52:01,727 [ServicesInjectorDefault main DEBUG] injected > > > > > org.apache.isis.core.metamodel.services.container.DomainObjectCo > > > > > nt > > > > > ai > > > > > ne > > > > > rDefault@397c8a21 into > > > > > ClassDiscoveryServiceUsingReflections@64b17900[] > > > > > 22:52:01,727 [ServicesInjectorDefault main DEBUG] injected > > > > > org.apache.isis.core.wrapper.WrapperFactoryDefault@33bb9f34 into > > > > > BookmarkServiceDefault@4acd2ea5[] > > > > > 22:52:01,727 [ServicesInjectorDefault main DEBUG] injected > > > > > org.apache.isis.core.wrapper.WrapperFactoryDefault@33bb9f34 into > > > > > DomainObjectContainerDefault@397c8a21[] > > > > > 22:52:01,727 [ServicesInjectorDefault main DEBUG] injected > > > > > org.apache.isis.core.metamodel.services.bookmarks.BookmarkServic > > > > > eD > > > > > ef > > > > > au > > > > > lt@4acd2ea5 into BackgroundServiceDefault@4898c8f9[] > > > > > 22:52:01,727 [ServicesInjectorDefault main DEBUG] injected > > > > > org.apache.isis.core.runtime.services.ServiceInstantiator$2@26b2 > > > > > 78 ab into BackgroundServiceDefault@4898c8f9[] > > > > > 22:52:14,042 [ObjectSpecificationAbstract main DEBUG] > > > > Superclass > > > > > java.lang.Object > > > > > 22:52:14,152 [ObjectSpecificationAbstract main DEBUG] > > > > Superclass > > > > > java.lang.Object > > > > > 22:52:14,167 [IsisWicketApplication main ERROR] Failed to > > > > > initialize > > > > > com.google.inject.ProvisionException: Guice provision errors: > > > > > > > > > > 1) Error in custom provider, java.lang.NullPointerException > > > > > at > > > > > > > > > org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSy > > > > st > > > > em > > > > (IsisInjectModule.java:132) > > > > > at > > > > > > > > > org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSy > > > > st > > > > em > > > > (IsisInjectModule.java:132) > > > > > while locating org.apache.isis.core.runtime.system.IsisSystem > > > > > for field at > > > > > > > > > org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.system( > > > > Is > > > > is > > > > WicketApplication.java:138) > > > > > while locating webapp.SimpleApplication > > > > > > > > > > 1 error > > > > > at > > > > > > > > > com.google.inject.internal.Errors.throwProvisionExceptionIfErrorsE > > > > xi > > > > st > > > > (Errors.java:451) > > > > > at > > > > > > > > > com.google.inject.internal.MembersInjectorImpl.injectMembers(Membe > > > > rs > > > > In > > > > jectorImpl.java:65) > > > > > at > > > > > > > > > com.google.inject.internal.InjectorImpl.injectMembers(InjectorImpl > > > > .j > > > > av > > > > a:944) > > > > > at > > > > > > > > > org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.init(Is > > > > is > > > > Wi > > > > cketApplication.java:248) > > > > > at webapp.SimpleApplication.init(SimpleApplication.java:81) > > > > > at > > > > > org.apache.wicket.Application.initApplication(Application.java:823) > > > > > at > > > > > > > > org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java: > > > 42 > > > 4) > > > > > at > > > > > > > > org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java: > > > 35 > > > 1) > > > > > at > > > > > > org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97) > > > > > at > > > > > > > > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java > > > :5 > > > 0) > > > > > at > > > > > > > > > org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler > > > > .j > > > > av > > > > a:713) > > > > > at > > > > org.mortbay.jetty.servlet.Context.startContext(Context.java:140) > > > > > at > > > > > > > > > org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext. > > > > ja > > > > va > > > > :1282) > > > > > at > > > > > > > > org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java > > > :5 > > > 18) > > > > > at > > > > > > org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499) > > > > > at > > > > > > > > > org.mortbay.jetty.plugin.Jetty6PluginWebAppContext.doStart(Jetty6P > > > > lu > > > > gi > > > > nWebAppContext.java:115) > > > > > at > > > > > > > > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java > > > :5 > > > 0) > > > > > at > > > > > > > > > > org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection. > > > > java:152) > > > > > at > > > > > > > > > org.mortbay.jetty.handler.ContextHandlerCollection.doStart(Context > > > > Ha > > > > nd > > > > lerCollection.java:156) > > > > > at > > > > > > > > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java > > > :5 > > > 0) > > > > > at > > > > > > > > > > org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection. > > > > java:152) > > > > > at > > > > > > > > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java > > > :5 > > > 0) > > > > > at > > > > > > > > org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java > > > :1 > > > 30) > > > > > at org.mortbay.jetty.Server.doStart(Server.java:224) > > > > > at > > > > > > > > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java > > > :5 > > > 0) > > > > > at > > > > > > > > > org.mortbay.jetty.plugin.Jetty6PluginServer.start(Jetty6PluginServ > > > > er > > > > .j > > > > ava:132) > > > > > at > > > > > > > > > org.mortbay.jetty.plugin.AbstractJettyMojo.startJetty(AbstractJett > > > > yM > > > > oj > > > > o.java:454) > > > > > at > > > > > > > > > org.mortbay.jetty.plugin.AbstractJettyMojo.execute(AbstractJettyMo > > > > jo > > > > .j > > > > ava:396) > > > > > at > > > > > > > > > org.mortbay.jetty.plugin.AbstractJettyRunMojo.execute(AbstractJett > > > > yR > > > > un > > > > Mojo.java:210) > > > > > at > > > > > > org.mortbay.jetty.plugin.Jetty6RunMojo.execute(Jetty6RunMojo.java:184) > > > > > at > > > > > > > > > org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(Defa > > > > ul > > > > tB > > > > uildPluginManager.java:106) > > > > > at > > > > > > > > > > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor. > > > > java:208) > > > > > at > > > > > > > > > > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor. > > > > java:153) > > > > > at > > > > > > > > > > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor. > > > > java:145) > > > > > at > > > > > > > > > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildPr > > > > oj > > > > ec > > > > t(LifecycleModuleBuilder.java:84) > > > > > at > > > > > > > > > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildPr > > > > oj > > > > ec > > > > t(LifecycleModuleBuilder.java:59) > > > > > at > > > > > > > > > org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreade > > > > dB > > > > ui > > > > ld(LifecycleStarter.java:183) > > > > > at > > > > > > > > > org.apache.maven.lifecycle.internal.LifecycleStarter.execute(Lifec > > > > yc > > > > le > > > > Starter.java:161) > > > > > at > > > org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:317) > > > > > at > org.apache.maven.DefaultMaven.execute(DefaultMaven.java:152) > > > > > at org.apache.maven.cli.MavenCli.execute(MavenCli.java:555) > > > > > at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:214) > > > > > at org.apache.maven.cli.MavenCli.main(MavenCli.java:158) > > > > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > Method) > > > > > at > > > > > > > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorIm > > > > pl > > > > .j > > > > ava:57) > > > > > at > > > > > > > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAc > > > > ce > > > > ss > > > > orImpl.java:43) > > > > > at java.lang.reflect.Method.invoke(Method.java:606) > > > > > at > > > > > > > > > org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(L > > > > au > > > > nc > > > > her.java:289) > > > > > at > > > > > > > > > org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher. > > > > ja > > > > va > > > > :229) > > > > > at > > > > > > > > > org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode > > > > (L > > > > au > > > > ncher.java:415) > > > > > at > > > > > > > > org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java > > > :3 > > > 56) > > > > > at > > > > > org.codehaus.classworlds.Launcher.main(Launcher.java:46) > > > > > Caused by: java.lang.NullPointerException > > > > > at > > > > > > > > > org.apache.isis.core.metamodel.specloader.classsubstitutor.ClassSu > > > > bs > > > > ti > > > > tutor.getClass(ClassSubstitutor.java:54) > > > > > at > > > > > > > > > org.apache.isis.core.metamodel.specloader.classsubstitutor.ClassSu > > > > bs > > > > ti > > > > tutor.getClass(ClassSubstitutor.java:55) > > > > > at > > > > > > > > > org.apache.isis.core.metamodel.specloader.specimpl.dflt.ObjectSpec > > > > if > > > > ic > > > > ationDefault.introspectTypeHierarchyAndMembers(ObjectSpecification > > > > De > > > > fa > > > > ult.java:146) > > > > > at > > > > > > > > > org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault.i > > > > nt > > > > ro > > > > spectIfRequired(ObjectReflectorDefault.java:499) > > > > > at > > > > > > > > > org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault.l > > > > oa > > > > dS > > > > pecificationForSubstitutedClass(ObjectReflectorDefault.java:400) > > > > > at > > > > > > > > > org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault.i > > > > nt > > > > er > > > > nalLoadSpecification(ObjectReflectorDefault.java:378) > > > > > at > > > > > > > > > org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault.l > > > > oa > > > > dS > > > > pecifications(ObjectReflectorDefault.java:415) > > > > > at > > > > > > > > > org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault.l > > > > oa > > > > dS > > > > pecifications(ObjectReflectorDefault.java:428) > > > > > at > > > > > > > > > org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsB > > > > ui > > > > ld > > > > er.representsAction(FacetedMethodsBuilder.java:455) > > > > > at > > > > > > > > > org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsB > > > > ui > > > > ld > > > > er.findActionFacetedMethod(FacetedMethodsBuilder.java:404) > > > > > at > > > > > > > > > org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsB > > > > ui > > > > ld > > > > er.findActionFacetedMethods(FacetedMethodsBuilder.java:388) > > > > > at > > > > > > > > > org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsB > > > > ui > > > > ld > > > > er.findActionFacetedMethods(FacetedMethodsBuilder.java:367) > > > > > at > > > > > > > > > org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsB > > > > ui > > > > ld > > > > er.getActionFacetedMethods(FacetedMethodsBuilder.java:343) > > > > > at > > > > > > > > > org.apache.isis.core.metamodel.specloader.specimpl.dflt.ObjectSpec > > > > if > > > > ic > > > > ationDefault.createActions(ObjectSpecificationDefault.java:222) > > > > > at > > > > > > > > > org.apache.isis.core.metamodel.specloader.specimpl.dflt.ObjectSpec > > > > if > > > > ic > > > > ationDefault.introspectTypeHierarchyAndMembers(ObjectSpecification > > > > De > > > > fa > > > > ult.java:167) > > > > > at > > > > > > > > > org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault.i > > > > nt > > > > ro > > > > spectIfRequired(ObjectReflectorDefault.java:499) > > > > > at > > > > > > > > > org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault.l > > > > oa > > > > dS > > > > pecificationForSubstitutedClass(ObjectReflectorDefault.java:400) > > > > > at > > > > > > > > > org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault.i > > > > nt > > > > er > > > > nalLoadSpecification(ObjectReflectorDefault.java:378) > > > > > at > > > > > > > > > org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault.p > > > > ri > > > > me > > > > Cache(ObjectReflectorDefault.java:269) > > > > > at > > > > > > > > > org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault.i > > > > ni > > > > tA > > > > ndValidate(ObjectReflectorDefault.java:244) > > > > > at > > > > > > > > > org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault.i > > > > ni > > > > t( > > > > ObjectReflectorDefault.java:205) > > > > > at > > > > > > > > > > org.apache.isis.core.runtime.system.session.IsisSessionFactoryDefault. > > > > init(IsisSessionFactoryDefault.java:192) > > > > > at > > > > > > > > > org.apache.isis.core.runtime.system.IsisSystemFixturesHookAbstract > > > > .i > > > > ni > > > > t(IsisSystemFixturesHookAbstract.java:120) > > > > > at > > > > > > > > > org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSy > > > > st > > > > em > > > > (IsisInjectModule.java:133) > > > > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > Method) > > > > > at > > > > > > > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorIm > > > > pl > > > > .j > > > > ava:57) > > > > > at > > > > > > > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAc > > > > ce > > > > ss > > > > orImpl.java:43) > > > > > at java.lang.reflect.Method.invoke(Method.java:606) > > > > > at > > > > > > com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:104) > > > > > at > > > > > > > > > com.google.inject.internal.InternalFactoryToProviderAdapter.get(In > > > > te > > > > rn > > > > alFactoryToProviderAdapter.java:40) > > > > > at > > > > > > > > > com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call > > > > (P > > > > ro > > > > viderToInternalFactoryAdapter.java:46) > > > > > at > > > > > > > > > com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl > > > > .j > > > > av > > > > a:1031) > > > > > at > > > > > > > > > com.google.inject.internal.ProviderToInternalFactoryAdapter.get(Pr > > > > ov > > > > id > > > > erToInternalFactoryAdapter.java:40) > > > > > at com.google.inject.Scopes$1$1.get(Scopes.java:65) > > > > > at > > > > > > > > > com.google.inject.internal.InternalFactoryToProviderAdapter.get(In > > > > te > > > > rn > > > > alFactoryToProviderAdapter.java:40) > > > > > at > > > > > > > > > com.google.inject.internal.SingleFieldInjector.inject(SingleFieldI > > > > nj > > > > ec > > > > tor.java:53) > > > > > at > > > > > > > > > com.google.inject.internal.MembersInjectorImpl.injectMembers(Membe > > > > rs > > > > In > > > > jectorImpl.java:110) > > > > > at > > > > > > > > > com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjec > > > > to > > > > rI > > > > mpl.java:75) > > > > > at > > > > > > > > > com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjec > > > > to > > > > rI > > > > mpl.java:73) > > > > > at > > > > > > > > > com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl > > > > .j > > > > av > > > > a:1024) > > > > > at > > > > > > > > > com.google.inject.internal.MembersInjectorImpl.injectAndNotify(Mem > > > > be > > > > rs > > > > InjectorImpl.java:73) > > > > > at > > > > > > > > > com.google.inject.internal.MembersInjectorImpl.injectMembers(Membe > > > > rs > > > > In > > > > jectorImpl.java:60) > > > > > ... 50 more > > > > > 22:52:14,167 [WicketFilter main ERROR] The > > > initialization > > > > > of an application with name 'WicketFilter' has failed. > > > > > com.google.inject.ProvisionException: Guice provision errors: > > > > > > > > > > > > > > > > > > > > ________________________________ > > > > > > > > > > This e-mail may contain Sprint proprietary information intended > > > > > for the sole use of the recipient(s). Any use by others is > prohibited. > > > > > If you are not the intended recipient, please contact the sender > > > > > and delete all copies of the message. > > > > > > > > > > ________________________________ > > > > > > > > > > This e-mail may contain Sprint proprietary information intended > > > > > for the sole use of the recipient(s). Any use by others is > prohibited. > > > > > If you are not the intended recipient, please contact the sender > > > > > and delete all copies of the message. > > > > > > > > > > > > > ________________________________ > > > > > > > > This e-mail may contain Sprint proprietary information intended > > > > for the sole use of the recipient(s). Any use by others is > prohibited. > > > > If you are not the intended recipient, please contact the sender > > > > and delete all copies of the message. > > > > > > > > > > ________________________________ > > > > > > This e-mail may contain Sprint proprietary information intended for > > > the sole use of the recipient(s). Any use by others is prohibited. > > > If you are not the intended recipient, please contact the sender and > > > delete all copies of the message. > > > > > > > ________________________________ > > > > This e-mail may contain Sprint proprietary information intended for > > the > sole use of the recipient(s). Any use by others is prohibited. If you are > not the intended recipient, please contact the sender and delete all copies > of the message. > > > > ________________________________ > > > > This e-mail may contain Sprint proprietary information intended for > > the > sole use of the recipient(s). Any use by others is prohibited. If you are > not the intended recipient, please contact the sender and delete all copies > of the message. > > > > ________________________________ > > > > This e-mail may contain Sprint proprietary information intended for > > the > sole use of the recipient(s). Any use by others is prohibited. If you are > not the intended recipient, please contact the sender and delete all copies > of the message. > > ________________________________ > > This e-mail may contain Sprint proprietary information intended for the > sole use of the recipient(s). Any use by others is prohibited. If you are > not the intended recipient, please contact the sender and delete all copies > of the message. > ________________________________ This e-mail may contain Sprint proprietary information intended for the sole use of the recipient(s). Any use by others is prohibited. If you are not the intended recipient, please contact the sender and delete all copies of the message.