Glad you sorted it.

Which class was it - presumably a domain service?  If so, I wonder if we
could add something in Isis to provide better diagnostics?

Dan

On 25 October 2015 at 20:59, Stephen Cameron <[email protected]>
wrote:

> Ironic, in writing tests I added a constructor to inject the container but
> forgot to add the default constructor to that one class. Feeling pleased
> with myself at my use of TDD I then assumed it was going to 1.10.0-SNAPSHOT
> that was the source of the error.
>
> On Mon, Oct 26, 2015 at 7:51 AM, Stephen Cameron <
> [email protected]
> > wrote:
>
> > 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
> >>>> > > >> >
> >>>> > > >> >
> >>>> > > >>
> >>>> > > >
> >>>> > > >
> >>>> > >
> >>>> >
> >>>>
> >>>
> >>>
> >>
> >
>

Reply via email to