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