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