Oups... ;) No I'm on 4.2, but I suppose I'll be on 5.x soon... Le 26 sept. 2013 18:52, "Thomas Mortagne" <[email protected]> a écrit :
> addJob(Job job) not addJob(String jobType, Request request) ;) > > But maybe you are not on 5.1 yet. > > On Thu, Sep 26, 2013 at 6:28 PM, Jeremie BOUSQUET > <[email protected]> wrote: > > 2013/9/26 Thomas Mortagne <[email protected]> > >> > >> On Thu, Sep 26, 2013 at 5:13 PM, Thomas Mortagne > >> <[email protected]> wrote: > >> > On Thu, Sep 26, 2013 at 4:40 PM, Jeremie BOUSQUET > >> > <[email protected]> wrote: > >> >> 2013/9/26 Thomas Mortagne <[email protected]> > >> >> > >> >>> On Thu, Sep 26, 2013 at 1:08 PM, Jeremie BOUSQUET > >> >>> <[email protected]> wrote: > >> >>> > 2013/9/26 Thomas Mortagne <[email protected]> > >> >>> > > >> >>> >> On Thu, Sep 26, 2013 at 11:20 AM, Jeremie BOUSQUET > >> >>> >> <[email protected]> wrote: > >> >>> >> > Hello, > >> >>> >> > > >> >>> >> > I'm trying to use the Job Module [1] for my own needs. > >> >>> >> > I know some of its APIs are marked as unstable, but well I > > wanted to > >> >>> give > >> >>> >> > it a try. > >> >>> >> > > >> >>> >> > I'm on a XWiki 4.5.2 instance currently. > >> >>> >> > > >> >>> >> > So I created some dummy interface: > >> >>> >> > > >> >>> >> > @Role > >> >>> >> > public interface ILoadingJob extends Job > >> >>> >> > { > >> >>> >> > } > >> >>> >> > >> >>> >> Job is already a @Role so I don't understand why override it with > >> >>> >> ILoadingJob. > >> >>> >> > >> >>> > > >> >>> > I completely removed the ILoadingJob interface, but still the same > > issue > >> >>> > occurs. > >> >>> > >> >>> Appart from this I did not seen anything wrong in your code. Are you > >> >>> able to do this.componentManager.getInstance(Job.class, > >> >>> "mailarchivejob"); ? > >> >>> > >> >> > >> >> I added the line of code, that revealed a number of errors in my > > component. > >> >> I fixed them, and now this getInstance(...) appropriately returns a > >> >> LoadingJob object. I've put the code just before my code calling > >> >> executeJob(). > >> >> But even after these corrections, I still get the same issue on > >> >> executeJob(). BTW, I have same problem when calling addJob(). > >> >> > >> >> > >> >>> > >> >>> Is you jar installed as extension ? > >> >>> > >> >> > >> >> Yes it is. > >> >> As I'm currently using some SNAPSHOT version, I installed it once > with > > EM > >> >> (linked to a local nexus repository), and now I patch the jar under > >> >> $XWIKI_DATA_DIR/data/extensions/repository/..., during server > restart. > >> > > >> > That's it then, I re-checked the DefaultJobManager and it only look at > >> > root component manager. Fixing it in 5.2RC1. > >> > >> In the meantime you can use addJob(Job). > > > > addJob(Job) has the same problem: > > > > org.xwiki.job.JobException: Failed to lookup any Job for role hint > > [mailarchivejob] > > at > > > org.xwiki.job.internal.DefaultJobManager.createJob(DefaultJobManager.java:185) > > ~[xwiki-commons-job-4.5.2.jar:na] > > at > > > org.xwiki.job.internal.DefaultJobManager.addJob(DefaultJobManager.java:208) > > ~[xwiki-commons-job-4.5.2.jar:na] > > at > > > org.xwiki.contrib.mailarchive.script.MailArchiveScriptService.createLoadingJob(MailArchiveScriptService.java:140) > > > [org.xwiki.contrib.mailarchive%253Axwiki-contrib-mailarchive-api-0.3-SNAPSHOT.jar:na] > > > > > >> > >> > >> > > >> >> > >> >> > >> >>> > >> >>> > > >> >>> > > >> >>> >> > >> >>> >> > > >> >>> >> > A Job implementation: > >> >>> >> > > >> >>> >> > @Component > >> >>> >> > @Named(LoadingJob.JOBTYPE) > >> >>> >> > public class LoadingJob extends AbstractJob<DefaultRequest> > > implements > >> >>> >> > ILoadingJob, Initializable > >> >>> >> > { > >> >>> >> > public static final String JOBTYPE = "mailarchivejob"; > >> >>> >> > > >> >>> >> > // ... > >> >>> >> > } > >> >>> >> > > >> >>> >> > In debug mode, I run the following: > >> >>> >> > > >> >>> >> > > >> >>> > > this.componentManager.getComponentDescriptorList(org.xwiki.job.Job.class) > >> >>> >> > > >> >>> >> > It returns: > >> >>> >> > > >> >>> >> > [implementation = > > [org.xwiki.contrib.mailarchive.internal.LoadingJob], > >> >>> >> > instantiation = [PER_LOOKUP], implementation = > >> >>> >> > [org.xwiki.extension.job.internal.UpgradePlanJob], ... ] > >> >>> >> > > >> >>> >> > So it seems OK. > >> >>> >> > > >> >>> >> > I have the following code to create and execute my Job: > >> >>> >> > > >> >>> >> > DefaultRequest request = new DefaultRequest(); > >> >>> >> > request.setId("test"); > >> >>> >> > request.setInteractive(false); > >> >>> >> > // ... other properties set > >> >>> >> > LoadingJob job = (LoadingJob) > >> >>> >> > jobManager.executeJob("mailarchivejob", request); > >> >>> >> > > >> >>> >> > But this code fails with following stack trace: > >> >>> >> > > >> >>> >> > org.xwiki.job.JobException: Failed to lookup any Job for role > > hint > >> >>> >> > [mailarchivejob] > >> >>> >> > at > >> >>> >> > > >> >>> >> > >> >>> > > > org.xwiki.job.internal.DefaultJobManager.createJob(DefaultJobManager.java:185) > >> >>> >> > at > >> >>> >> > > >> >>> >> > >> >>> > > > org.xwiki.job.internal.DefaultJobManager.addJob(DefaultJobManager.java:208) > >> >>> >> > at > >> >>> >> > > >> >>> >> > >> >>> > > > org.xwiki.job.internal.DefaultJobManager.executeJob(DefaultJobManager.java:194) > >> >>> >> > at > >> >>> >> > > >> >>> >> > >> >>> > > > org.xwiki.contrib.mailarchive.internal.MailArchiveScriptService.createLoadingJob(MailArchiveScriptService.java:112) > >> >>> >> > at > >> >>> >> > > >> >>> >> > >> >>> > > > org.xwiki.contrib.mailarchive.internal.MailArchiveScriptService.load(MailArchiveScriptService.java:94) > >> >>> >> > [...] > >> >>> >> > Caused by: > org.xwiki.component.manager.ComponentLookupException: > > Can't > >> >>> >> find > >> >>> >> > descriptor for the component [role = [interface > > org.xwiki.job.Job] > >> >>> hint = > >> >>> >> > [mailarchivejob]] > >> >>> >> > at > >> >>> >> > > >> >>> >> > >> >>> > > > org.xwiki.component.embed.EmbeddableComponentManager.getComponentInstance(EmbeddableComponentManager.java:355) > >> >>> >> > at > >> >>> >> > > >> >>> >> > >> >>> > > > org.xwiki.component.embed.EmbeddableComponentManager.getInstance(EmbeddableComponentManager.java:161) > >> >>> >> > at > >> >>> >> > > >> >>> >> > >> >>> > > > org.xwiki.job.internal.DefaultJobManager.createJob(DefaultJobManager.java:183) > >> >>> >> > [...] > >> >>> >> > > >> >>> >> > I also tried to manually register my custom Job component, in > the > >> >>> >> > initialize() of a side component (I checked that this code got > >> >>> executed > >> >>> >> > previously to job creation), but with no different result: > >> >>> >> > > >> >>> >> > // Register custom job > >> >>> >> > > >> >>> >> > > >> >>> >> > >> >>> > > > this.componentManager.registerComponent(this.componentManager.getComponentDescriptor(Job.class, > >> >>> >> > "mailarchivejob")); > >> >>> >> > > >> >>> >> > Do you see something wrong in my approach ? > >> >>> >> > > >> >>> >> > Thanks, > >> >>> >> > Jeremie > >> >>> >> > _______________________________________________ > >> >>> >> > users mailing list > >> >>> >> > [email protected] > >> >>> >> > http://lists.xwiki.org/mailman/listinfo/users > >> >>> >> > >> >>> >> > >> >>> >> > >> >>> >> -- > >> >>> >> Thomas Mortagne > >> >>> >> _______________________________________________ > >> >>> >> users mailing list > >> >>> >> [email protected] > >> >>> >> http://lists.xwiki.org/mailman/listinfo/users > >> >>> >> > >> >>> > _______________________________________________ > >> >>> > users mailing list > >> >>> > [email protected] > >> >>> > http://lists.xwiki.org/mailman/listinfo/users > >> >>> > >> >>> > >> >>> > >> >>> -- > >> >>> Thomas Mortagne > >> >>> _______________________________________________ > >> >>> users mailing list > >> >>> [email protected] > >> >>> http://lists.xwiki.org/mailman/listinfo/users > >> >>> > >> >> _______________________________________________ > >> >> users mailing list > >> >> [email protected] > >> >> http://lists.xwiki.org/mailman/listinfo/users > >> > > >> > > >> > > >> > -- > >> > Thomas Mortagne > >> > >> > >> > >> -- > >> Thomas Mortagne > >> _______________________________________________ > >> users mailing list > >> [email protected] > >> http://lists.xwiki.org/mailman/listinfo/users > > _______________________________________________ > > users mailing list > > [email protected] > > http://lists.xwiki.org/mailman/listinfo/users > > > > -- > Thomas Mortagne > _______________________________________________ > users mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/users > _______________________________________________ users mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/users
