I can imagine that providing an alternative to using DataNucleus, at least in initial development/prototyping could be possible? You could make use of the JDO annotations to add a simple ORM layer via the isis metamodel. If you don't enhance the classes the JDO annotations are still there to be used.
Then when you were happy with the data-model and moving on to adding more complex behaviour and/or seeking better performance, to switch over to class enhancement. Just a thought, datanucleus obviously has good and not so good aspects in the context of Isis. Regards Steve C On Fri, Jul 31, 2015 at 9:13 PM, Dan Haywood <[email protected]> wrote: > I've been meaning to do add some docs and a quick screencast about DCEVM > for a while; maybe this weekend.. > > To answer Martin's question: in fact, if running in prototype mode, then > the Wicket viewer automatically invalidates the metamodel of the (class of > the) displayed object... this is why editing the .layout.json file and > reloading changes causes updates to be picked up automatically. > > What is more tricky is if the entity is changed itself, ie its > structure/method signatures. If the internals are changed then regular > Java Hotspot can mostly cope, and I suspect that DCEVM would make that more > reliable still. But if the entity has changed then the class needs > re-enhancing. Unfortunately DN doesn't provide any easy way to do that, so > there's little point in Isis providing an API to invalidate a class if the > underlying DN metamodel hasn't also been updated. > > One reasonable workaround is to use contributed actions, and/or event bus, > and have them in essence "decorate" the class. As your app gets larger > you'll probably want to be using these anyway. And the contributing > services can be reloaded by DCEVM without requiring any enhancing going on. > > ~~~ > Alternatively you could dust off the JRebel plugin that I worked on [1]. I > did get this working reasonably well for me, though I'm not sure if anyone > else did. (And, having said that I haven't found myself reaching for it, > but partly because I switch context between projects all the time). > Anyway, perhaps worth checking out. > > HTH > Dan > > > [1] https://github.com/isisaddons/isis-jrebel-plugin > > > > On 31 July 2015 at 09:03, Martin Grigorov <[email protected]> wrote: > > > Hi, > > > > I use DCEVM for code reloading. It is free and there is nothing to learn. > > But it doesn't help with updating Isis meta model. > > It would be nice if Isis exposes REST/JMX/... interface that triggers > > rebuild of the model. > > @Dan: is this possible with the code of isis-mavel-plugin? > > On Jul 31, 2015 7:45 AM, "Stephen Cameron" <[email protected]> > > wrote: > > > > > Hi again, > > > > > > After playing around with options I now think there isn't much > > opportunity > > > to speed things up, other than to use JRebel or change the way I > develop > > > (not start the webapp so much). The webapp project looks for jars in > the > > > maven repository not the war, so I only need to do maven install on the > > dom > > > project when I change a dom class. That should have been apparent > sooner > > :( > > > > > > Bottomline: the webapp takes some time to start, but that is fine. > > > > > > > > > > > > On Fri, Jul 31, 2015 at 11:27 AM, Stephen Cameron < > > > [email protected]> wrote: > > > > > > > Hi, > > > > > > > > I would greatly appreciate some advice on speeding up development in > > > > Eclipse. Using the simpleapp project with separate dom, fixture, > > > integtest > > > > and webapp subprojects. > > > > > > > > I'd at least like the webserver (jetty,tomcat) to restart when I > > modify a > > > > dom class. This is what I am used to with Dynamic Web Projects, > however > > > > after a bit of trying today I still cannot get that to work, using > > > Tomcat. > > > > > > > > It seems most are using JRebel with IntelliJ, but I am not so keen to > > go > > > > there yet as I am (re)learning on many fronts at present. > > > > > > > > The issue with Tomcat is a jetty dependancy, this was noted > previously > > > > [1], but I could not get around it by removing > > > > jetty-all-9.2.11.v20150529.jar as suggested, I then got a > null-pointer > > > > exception. > > > > > > > > At the moment I have to rebuild the whole project after a class > change > > in > > > > the dom-project then restart the server to see the change. Is the > > because > > > > the .war has to be rebuilt for mvn jetty:run to use the new version > of > > > the > > > > class file? > > > > > > > > I've just tried to use the eclipse jetty plugin but that is telling > me > > > > that the dom classes have not been enhanced by datanucleus. > > > > > > > > Hoping for some insights. > > > > > > > > Thanks > > > > Steve C > > > > > > > > > > > > [1] > > > http://permalink.gmane.org/gmane.comp.apache.incubator.isis.devel/9931 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >
