I forgot [1] http://extensions.xwiki.org/xwiki/bin/view/Extension/Job+Module
2013/9/26 Jeremie BOUSQUET <[email protected]> > 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 > { > } > > 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
