Oops, embarrasement++ No public no-args constructor! On Sun, Oct 25, 2015 at 10:09 PM, Stephen Cameron < [email protected]> wrote:
> Just removing the 'offending' class allows the webapp to run... Will try > to figure out what it might be that is offensive tomorrow. > > On Sun, Oct 25, 2015 at 7:05 AM, Stephen Cameron < > [email protected]> wrote: > >> Seems its not a classpath issue, the built jetty-console jar has the same >> problem, that has the app dom jar inside it. Not solved but I looking for >> an answer in the wrong place it appears. >> >> On Sat, Oct 24, 2015 at 9:32 PM, Dan Haywood < >> [email protected]> wrote: >> >>> With Eclipse (as I'm sure you know) the m2e plugin generates the .project >>> and .classpath files from the maven pom.xml files. Doing an update >>> project >>> from the context menu of the package explorer view is generally pretty >>> reliable. Thereafter Eclipse just uses its .classpath and .project. >>> >>> Another thing to do is to look at the dependency tree tab of the pom.xml, >>> check it looks correct. It's also possible to view the dependencies as >>> per >>> the .classpath file, by viewing the build path, eg [1] >>> >>> When you run the app up, the Debug view (IIRC) shows the actual Java >>> command that Eclipse constructs, along with all the JARs constructed from >>> the classpath. That might also provide some clues. >>> >>> HTH >>> Dan >>> >>> >>> [1] http://www.tutorialspoint.com/eclipse/eclipse_java_build_path.htm >>> >>> On 24 October 2015 at 11:27, Stephen Cameron <[email protected] >>> > >>> wrote: >>> >>> > Hi >>> > >>> > I'll have another go tomorrow, I am using Eclipse and can get the >>> simpleapp >>> > on Isis 1.10.0 imported and webapp starting fine, its just when I try >>> to go >>> > from there by adding my dom classes and changing the dom module >>> 'marker' >>> > class something breaks, also going from a fresh install of my app and >>> > updating the poms from the simpleapp too. >>> > >>> > I assume if Guice cannot find a class file it gives that error, so its >>> > seems my classes are not be on the classpath, but as to why is where my >>> > knowledge is not very good. I was just hoping someone else might have >>> had >>> > the same thing happen. >>> > >>> > On Sat, Oct 24, 2015 at 9:16 PM, Jeroen van der Wal < >>> [email protected]> >>> > wrote: >>> > >>> > > And removing ~/,m2/repository/org/apache/isis before mvn clean >>> install is >>> > > also worth trying. >>> > > >>> > > On 24 October 2015 at 12:13, Jeroen van der Wal <[email protected] >>> > >>> > > wrote: >>> > > >>> > > > You could try a mvn clean install and reimport the project into >>> > Intellij. >>> > > > >>> > > > On 24 October 2015 at 03:01, Stephen Cameron < >>> > [email protected] >>> > > > >>> > > > wrote: >>> > > > >>> > > >> What do I have to change to go from 1.9.0 to 1.10.0-SNAPSHOT? >>> > > >> >>> > > >> I just changed version number in pom.xml but then I get the >>> dreaded >>> > > guice >>> > > >> cannot instantiate class ... error, last time I fixed this by >>> updating >>> > > >> simpleapp with my classes. Now it looks like the same thing is >>> > required >>> > > >> again to get a working version :( >>> > > >> >>> > > >> >>> > > >> >>> > > >> On Thu, Oct 22, 2015 at 12:44 AM, Cesar Lugo < >>> > [email protected]> >>> > > >> wrote: >>> > > >> >>> > > >> > Great! >>> > > >> > >>> > > >> > -----Original Message----- >>> > > >> > From: Dan Haywood [mailto:[email protected]] >>> > > >> > Sent: Wednesday, October 21, 2015 2:57 AM >>> > > >> > To: users >>> > > >> > Subject: Re: Automatic created-by and modified-by property >>> updates >>> > > >> > >>> > > >> > Just to close off this thread... in 1.10.0-SNAPSHOT there is >>> > built-in >>> > > >> > support for this feature... just implement Timetstampable [1] >>> > > >> > >>> > > >> > Cheers >>> > > >> > Dan >>> > > >> > >>> > > >> > [1] http://isis.apache.org/guides/rg.html#_rg_classes_roles >>> > > >> > >>> > > >> > On 28 September 2015 at 04:01, Stephen Cameron < >>> > > >> [email protected] >>> > > >> > > >>> > > >> > wrote: >>> > > >> > >>> > > >> > > Hi Dan, >>> > > >> > > >>> > > >> > > I tried this and its not correct, I get the open and close >>> methods >>> > > >> > > being called over and over whenever I open and close an >>> object in >>> > > the >>> > > >> > > UI. but the jdo listener method preStore >>> (InstanceLifecycleEvent >>> > > >> > > event) never gets called. >>> > > >> > > >>> > > >> > > I pictured open() and close() being called just once as the >>> > DOMAIN >>> > > >> > > service singleton is created by Isis and then it listens on >>> the >>> > JDO >>> > > >> > > events as each entity goes through its lifecycle. >>> > > >> > > >>> > > >> > > I will put this aside as its not the main priority. I'll >>> read up >>> > > and >>> > > >> > > understand the jdo events to find an answer, this must be >>> close to >>> > > >> > correct. >>> > > >> > > >>> > > >> > > >>> > > >> > > On Wed, Sep 16, 2015 at 4:02 PM, Dan Haywood >>> > > >> > > <[email protected] >>> > > >> > > > >>> > > >> > > wrote: >>> > > >> > > >>> > > >> > > > Hi Steve, >>> > > >> > > > >>> > > >> > > > Although there isn't any direct support for this, it's >>> should be >>> > > >> > > relatively >>> > > >> > > > easy to do by using the underlying JDO API. >>> > > >> > > > >>> > > >> > > > As a quick code sketch: >>> > > >> > > > >>> > > >> > > > public interface CreateTrackingEntity { >>> > > >> > > > void setCreatedBy(String createdBy); >>> > > >> > > > void setCreatedOn(DateTime createdOn); } >>> > > >> > > > >>> > > >> > > > public interface ModifyTrackingEntity { >>> > > >> > > > void setModifiedBy(String username); >>> > > >> > > > void setModifiedOn(DateTime modifiedOn); } >>> > > >> > > > >>> > > >> > > > >>> > > >> > > > Your entity should implement one or both of the above. >>> > > >> > > > >>> > > >> > > > Then, define a service such as: >>> > > >> > > > >>> > > >> > > > @RequestScoped >>> > > >> > > > @DomainService(nature=NatureOfService.DOMAIN) >>> > > >> > > > public class UpdateableEntityServices implements >>> > > >> > > > javax.jdo.listener.StoreLifecycleListener { >>> > > >> > > > >>> > > >> > > > @PostConstruct >>> > > >> > > > public void open() { >>> > > >> > > > >>> > > >> > > > >>> > > >> > > > >>> > > >> > > >>> > > >> > >>> > > >> >>> > > >>> > >>> isisJdoSupport.getJdoPersistenceManager().addInstanceLifecycleListener(this); >>> > > >> > > > } >>> > > >> > > > >>> > > >> > > > @PreDestroy >>> > > >> > > > public void close() { >>> > > >> > > > >>> > > >> > > > >>> > > >> > > > >>> > > >> > > >>> > > >> > >>> > > >> >>> > > >>> > >>> isisJdoSupport.getJdoPersistenceManager().removeInstanceLifecycleListener(this); >>> > > >> > > > } >>> > > >> > > > >>> > > >> > > > @Programmatic >>> > > >> > > > public void preStore (InstanceLifecycleEvent event) { >>> > > >> > > > >>> > > >> > > > final Object pi = event.getPersistentInstance(); >>> > > >> > > > >>> > > >> > > > if(pi instanceof >>> > org.datanucleus.enhancement.Persistable) >>> > > { >>> > > >> > > > boolean isPersistent = >>> > > >> > > > >>> ((org.datanucleus.enhancement.Persistable)pi).dnIsPersistent(); >>> > > >> > > > >>> > > >> > > > if(!isPersistent) { >>> > > >> > > > if(pi instanceof CreateTrackingEntity) { >>> > > >> > > > >>> > > >> > > > >>> > ((CreateTrackingEntity)pi).setCreatedBy(container.getUserName()); >>> > > >> > > > >>> > > >> > > > >>> > > >> >>> ((CreateTrackingEntity)pi).setCreatedOn(clockService.nowAsDateTime()); >>> > > >> > > > } >>> > > >> > > > } else { >>> > > >> > > > if(pi instanceof ModifyTrackingEntity) { >>> > > >> > > > >>> > > >> > > > >>> > > ((ModifyTrackingEntity)pi).setModifiedBy(container.getUserName()); >>> > > >> > > > >>> > > >> > > > >>> > > >> >>> ((ModifyTrackingEntity)pi).setModifedOn(clockService.nowAsDateTime()); >>> > > >> > > > } >>> > > >> > > > } >>> > > >> > > > } >>> > > >> > > > } >>> > > >> > > > >>> > > >> > > > @Programmatic >>> > > >> > > > public void postStore (InstanceLifecycleEvent event) { >>> > > >> > > > // no-op >>> > > >> > > > } >>> > > >> > > > >>> > > >> > > > @Inject >>> > > >> > > > private DomainObjectContainer container; >>> > > >> > > > >>> > > >> > > > @Inject >>> > > >> > > > private ClockService clockService; >>> > > >> > > > >>> > > >> > > > @Inject >>> > > >> > > > private IsisJdoSupport isisJdoSupport; >>> > > >> > > > } >>> > > >> > > > >>> > > >> > > > >>> > > >> > > > >>> > > >> > > > ~~~~~~~~~~~~ >>> > > >> > > > There is actually a ticket in JIRA for this [1], so I'll >>> > formalize >>> > > >> this >>> > > >> > > as >>> > > >> > > > a service in Isis 1.10.0. >>> > > >> > > > >>> > > >> > > > HTH >>> > > >> > > > Dan >>> > > >> > > > >>> > > >> > > > [1] https://issues.apache.org/jira/browse/ISIS-867 >>> > > >> > > > >>> > > >> > > > >>> > > >> > > > On 16 September 2015 at 05:18, Stephen Cameron < >>> > > >> > > [email protected] >>> > > >> > > > > >>> > > >> > > > wrote: >>> > > >> > > > >>> > > >> > > > > Hi, >>> > > >> > > > > >>> > > >> > > > > Could someone please assist me in adding this capability, >>> to >>> > > >> automate >>> > > >> > > the >>> > > >> > > > > creation and update of values in these standard fields >>> > > >> > > > > >>> > > >> > > > > created_by >>> > > >> > > > > created_on >>> > > >> > > > > modified_by >>> > > >> > > > > modified_on >>> > > >> > > > > >>> > > >> > > > > That is I need to set the first two on creating a new >>> object, >>> > > and >>> > > >> the >>> > > >> > > > last >>> > > >> > > > > two on modifying an object. >>> > > >> > > > > >>> > > >> > > > > Thanks >>> > > >> > > > > Steve Cameron >>> > > >> > > > > >>> > > >> > > > >>> > > >> > > >>> > > >> > >>> > > >> > >>> > > >> > --- >>> > > >> > This email has been checked for viruses by Avast antivirus >>> software. >>> > > >> > https://www.avast.com/antivirus >>> > > >> > >>> > > >> > >>> > > >> >>> > > > >>> > > > >>> > > >>> > >>> >> >> >
