Oh! I forgot to change the QuickStart pom! Sure that's it. I'll let you know.
Thanks > El 03/02/2014, a las 08:12, Dan Haywood <[email protected]> > escribió: > > Hi Oscar, > You need to use trunk (1.4.0-SNAPSHOT) rather than 1.3.1; I think that's > the problem. > Let me know > Cheers > Dan > > Sorry to be brief, sent from my phone > On 2 Feb 2014 19:08, "GESCONSULTOR - Óscar Bou" <[email protected]> > wrote: > >> >> Hi, Dan. >> >> I'm very excited about the possibility to use the JRebel plugin, as it can >> accelerate a lot the workflow. >> I've downloaded and configured it, and I'm working over the latest >> quickstart archetype. >> >> I've added 1 new property to the TodoItem entity, and it has not been >> showed on the interface. >> >> These are the detailed steps followed. >> >> >> >> >> 1. Quickstart prototype. >> >> I create a new folder and run maven to create a project based on the >> latest Isis quickstart: >> >> mvn archetype:generate -D archetypeGroupId=org.apache.isis.archetype >> -D archetypeArtifactId=quickstart_wicket_restful_jdo-archetype -D >> archetypeVersion=1.3.1 -D groupId=com.mycompany -D artifactId=myapp >> -D version=1.0-SNAPSHOT -B >> >> >> 2. JRebel configuration. >> >> I've installed JRebel, and on the JRebel Config Center I've marked the >> "dom" and "webapp" projects. to be followed for changes by JRebel. >> >> I've downloaded from [1] the >> danhaywood-isis-jrebel-plugin-1.0.0-SNAPSHOT.jar plugin and copied it on >> the lib folder of the "webapp" module. >> >> I've copied the ToDoApp-no-fixtures-PROTOTYPE.launch on the "webapp" >> module to a new ToDoApp-no-fixtures-PROTOTYPE-Rebel.launch file, and added: >> >> <stringAttribute >> key="org.eclipse.jdt.launching.VM_ARGUMENTS" >> value="${jrebel_args} -Drebel.log=false >> -Drebel.plugins=./lib/danhaywood-isis-jrebel-plugin-1.0.0-SNAPSHOT.jar >> -Disis-jrebel-plugin.packagePrefix=dom.simple -XX:MaxPermSize=128m"/> >> >> 3. DataNucleus. >> >> I assume that the "DataNucleus - auto-enhancement" option must be enabled >> on the "dom" module. >> That originates that, each time the Enhancer is executed (that's after any >> change on any file on the module) a JRebel dialog asks: >> "You are launching a JRebel-enabled application without the JRebel agent. >> JRebel will not work without it." >> For avoiding that, I've checked the "Don't perform this check again (you >> can restore it from preferences)", and have chosen the "Not this time" >> option. >> >> 4. Run the webapp. >> >> I've launched the newly created Eclipse configuration and navigated to " >> http://localhost:8080/wicket/". >> I've installed the fixtures. >> >> 5. Changes in code. >> >> I add a new field to the ToDoItem entity. The following message appears on >> Eclipse: >> >> Class 'xxx' has a new non-sttic field 'newField', it will be null on >> existing instances. >> >> But after refreshing the webapp entity page, the field it's not showed. >> I've waited enough time. In fact, the following messages have been logged: >> >> 2014-02-02 19:56:40 JRebel: Reloading class 'dom.todo.ToDoItem'. >> 19:56:40,515 [Native 1238094722@qtp-1337505800-5 DEBUG] >> SELECT >> "A0"."category","A0"."complete","A0"."cost","A0"."description","A0"."dueBy","A0"."notes","A0"."ownedBy","A0"."subcategory","A0"."version" >> FROM "ToDoItem" "A0" WHERE "A0"."id" = <11> >> 2014-02-02 19:56:40 JRebel: Reloading class 'dom.todo.ToDoItem$Category'. >> 2014-02-02 19:56:40 JRebel: Reloading class 'dom.todo.ToDoItem$Category$1'. >> 2014-02-02 19:56:40 JRebel: Reloading class >> 'dom.todo.ToDoItem$Subcategory'. >> 2014-02-02 19:56:40 JRebel: Reloading class >> 'dom.todo.ToDoItem$Subcategory$1'. >> 2014-02-02 19:56:40 JRebel: Reinitialized class >> 'dom.todo.ToDoItem$Subcategory'. >> 2014-02-02 19:56:40 JRebel: Reinitialized class >> 'dom.todo.ToDoItem$Category$1'. >> 2014-02-02 19:56:40 JRebel: Reloading class 'dom.todo.ToDoItem$Category$2'. >> 2014-02-02 19:56:40 JRebel: Reinitialized class >> 'dom.todo.ToDoItem$Category$2'. >> 2014-02-02 19:56:40 JRebel: Reloading class 'dom.todo.ToDoItem$Category$3'. >> 2014-02-02 19:56:40 JRebel: Reinitialized class >> 'dom.todo.ToDoItem$Category$3'. >> 2014-02-02 19:56:40 JRebel: Reinitialized class >> 'dom.todo.ToDoItem$Category'. >> 19:56:40,697 [Native 1238094722@qtp-1337505800-5 DEBUG] >> SELECT 'dom.todo.ToDoItem' AS >> NUCLEUS_TYPE,"A1"."category","A1"."complete","A1"."cost","A1"."description","A1"."dueBy","A1"."notes","A1"."ownedBy","A1"."subcategory","A1"."id","A1"."version" >> FROM "ToDoItemDependencies" "A0" INNER JOIN "ToDoItem" "A1" ON >> "A0"."dependentId" = "A1"."id" WHERE "A0"."dependingId" = <11> >> 2014-02-02 19:56:40 JRebel: Reloading class >> 'dom.todo.ToDoItem$DependenciesComparator'. >> 2014-02-02 19:56:40 JRebel: Reloading class >> 'dom.todo.ToDoItem$DependenciesComparator$1'. >> 19:56:40,771 [Native 1238094722@qtp-1337505800-5 DEBUG] >> SELECT 'dom.todo.ToDoItem' AS >> NUCLEUS_TYPE,"A0"."category","A0"."complete","A0"."cost","A0"."description","A0"."dueBy","A0"."notes","A0"."ownedBy","A0"."subcategory","A0"."id","A0"."version" >> FROM "ToDoItem" "A0" WHERE "A0"."ownedBy" = <'sven'> AND "A0"."category" = >> <'Professional'> >> 19:56:40,789 [Native 1238094722@qtp-1337505800-5 DEBUG] >> SELECT "A0"."attachment","A0"."version" FROM "ToDoItem" "A0" WHERE >> "A0"."id" = <9> >> 19:56:40,806 [Native 1238094722@qtp-1337505800-5 DEBUG] >> SELECT "A0"."attachment","A0"."version" FROM "ToDoItem" "A0" WHERE >> "A0"."id" = <10> >> 19:56:40,812 [Native 1238094722@qtp-1337505800-5 DEBUG] >> SELECT "A0"."attachment","A0"."version" FROM "ToDoItem" "A0" WHERE >> "A0"."id" = <8> >> 19:56:41,351 [ResourceServlet 447422450@qtp-1337505800-2 INFO ] >> request: css/application.css >> 19:56:41,351 [ResourceServlet 1203999762@qtp-1337505800-0 INFO ] >> request: scripts/application.js >> 19:56:41,362 [ResourceServlet 1238094722@qtp-1337505800-5 INFO ] >> request: images/spinning-icon.gif >> >> >> >> On this state, if I press Edit and try to change the ToDoItem description, >> the following exception is logged: >> >> >> org.mortbay.jetty.bio.SocketConnector$Connection#run(SocketConnector.java:228) >> >> org.mortbay.thread.QueuedThreadPool$PoolThread#run(QueuedThreadPool.java:582) >> java.lang.NullPointerException >> >> org.datanucleus.state.JDOStateManager#setObjectField(JDOStateManager.java:1843) >> dom.todo.ToDoItem#setSubcategory(ToDoItem.java:-1) >> >> sun.reflect.NativeMethodAccessorImpl#invoke0(NativeMethodAccessorImpl.java:-2) >> >> sun.reflect.NativeMethodAccessorImpl#invoke(NativeMethodAccessorImpl.java:39) >> >> sun.reflect.DelegatingMethodAccessorImpl#invoke(DelegatingMethodAccessorImpl.java:25) >> java.lang.reflect.Method#invoke(Method.java:597) >> >> org.apache.isis.core.commons.lang.MethodExtensions#invoke(MethodExtensions.java:50) >> >> org.apache.isis.core.commons.lang.MethodExtensions#invoke(MethodExtensions.java:45) >> >> org.apache.isis.core.metamodel.adapter.util.AdapterInvokeUtils#invoke(AdapterInvokeUtils.java:44) >> >> org.apache.isis.core.progmodel.facets.properties.modify.PropertyClearFacetViaSetterMethod#clearProperty(PropertyClearFacetViaSetterMethod.java:62) >> >> org.apache.isis.core.runtime.transaction.facets.PropertyClearFacetWrapTransaction$1#execute(PropertyClearFacetWrapTransaction.java:55) >> >> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager#executeWithinTransaction(IsisTransactionManager.java:175) >> >> org.apache.isis.core.runtime.transaction.facets.PropertyClearFacetWrapTransaction#clearProperty(PropertyClearFacetWrapTransaction.java:52) >> >> org.apache.isis.core.metamodel.specloader.specimpl.OneToOneAssociationImpl#clearValue(OneToOneAssociationImpl.java:200) >> >> org.apache.isis.core.metamodel.specloader.specimpl.OneToOneAssociationImpl#set(OneToOneAssociationImpl.java:164) >> >> org.apache.isis.viewer.wicket.model.models.EntityModel#apply(EntityModel.java:427) >> >> org.apache.isis.viewer.wicket.ui.components.entity.properties.EntityPropertiesForm$2#onSubmit(EntityPropertiesForm.java:365) >> org.apache.wicket.markup.html.form.Form#delegateSubmit(Form.java:1253) >> org.apache.wicket.markup.html.form.Form#process(Form.java:925) >> >> org.apache.isis.viewer.wicket.ui.panels.FormAbstract#process(FormAbstract.java:118) >> org.apache.wicket.markup.html.form.Form#onFormSubmitted(Form.java:771) >> org.apache.wicket.markup.html.form.Form#onFormSubmitted(Form.java:704) >> >> sun.reflect.NativeMethodAccessorImpl#invoke0(NativeMethodAccessorImpl.java:-2) >> >> sun.reflect.NativeMethodAccessorImpl#invoke(NativeMethodAccessorImpl.java:39) >> >> sun.reflect.DelegatingMethodAccessorImpl#invoke(DelegatingMethodAccessorImpl.java:25) >> java.lang.reflect.Method#invoke(Method.java:597) >> >> org.apache.wicket.RequestListenerInterface#internalInvoke(RequestListenerInterface.java:258) >> >> org.apache.wicket.RequestListenerInterface#invoke(RequestListenerInterface.java:216) >> >> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler#invokeListener(ListenerInterfaceRequestHandler.java:240) >> >> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler#respond(ListenerInterfaceRequestHandler.java:226) >> >> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor#respond(RequestCycle.java:861) >> >> org.apache.wicket.request.RequestHandlerStack#execute(RequestHandlerStack.java:64) >> org.apache.wicket.request.cycle.RequestCycle#execute(RequestCycle.java:261) >> >> org.apache.wicket.request.cycle.RequestCycle#processRequest(RequestCycle.java:218) >> >> org.apache.wicket.request.cycle.RequestCycle#processRequestAndDetach(RequestCycle.java:289) >> >> org.apache.wicket.protocol.http.WicketFilter#processRequestCycle(WicketFilter.java:259) >> >> org.apache.wicket.protocol.http.WicketFilter#processRequest(WicketFilter.java:201) >> >> org.apache.wicket.protocol.http.WicketFilter#doFilter(WicketFilter.java:282) >> >> org.mortbay.jetty.servlet.ServletHandler$CachedChain#doFilter(ServletHandler.java:1212) >> >> org.apache.shiro.web.servlet.AbstractShiroFilter#executeChain(AbstractShiroFilter.java:449) >> >> org.apache.shiro.web.servlet.AbstractShiroFilter$1#call(AbstractShiroFilter.java:365) >> >> org.apache.shiro.subject.support.SubjectCallable#doCall(SubjectCallable.java:90) >> >> org.apache.shiro.subject.support.SubjectCallable#call(SubjectCallable.java:83) >> >> org.apache.shiro.subject.support.DelegatingSubject#execute(DelegatingSubject.java:383) >> >> org.apache.shiro.web.servlet.AbstractShiroFilter#doFilterInternal(AbstractShiroFilter.java:362) >> >> org.apache.shiro.web.servlet.OncePerRequestFilter#doFilter(OncePerRequestFilter.java:125) >> >> org.mortbay.jetty.servlet.ServletHandler$CachedChain#doFilter(ServletHandler.java:1212) >> org.mortbay.jetty.servlet.ServletHandler#handle(ServletHandler.java:399) >> org.mortbay.jetty.security.SecurityHandler#handle(SecurityHandler.java:216) >> org.mortbay.jetty.servlet.SessionHandler#handle(SessionHandler.java:182) >> org.mortbay.jetty.handler.ContextHandler#__handle(ContextHandler.java:766) >> org.mortbay.jetty.handler.ContextHandler#handle(ContextHandler.java:-1) >> org.mortbay.jetty.webapp.WebAppContext#handle(WebAppContext.java:450) >> org.mortbay.jetty.handler.HandlerWrapper#handle(HandlerWrapper.java:152) >> org.mortbay.jetty.Server#handle(Server.java:326) >> org.mortbay.jetty.HttpConnection#handleRequest(HttpConnection.java:542) >> >> org.mortbay.jetty.HttpConnection$RequestHandler#content(HttpConnection.java:945) >> org.mortbay.jetty.HttpParser#parseNext(HttpParser.java:756) >> org.mortbay.jetty.HttpParser#parseAvailable(HttpParser.java:218) >> org.mortbay.jetty.HttpConnection#handle(HttpConnection.java:404) >> >> org.mortbay.jetty.bio.SocketConnector$Connection#run(SocketConnector.java:228) >> >> org.mortbay.thread.QueuedThreadPool$PoolThread#run(QueuedThreadPool.java:582) >> >> >> [1] https://github.com/danhaywood/isis-jrebel-plugin.git
