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"); ?
Is you jar installed as extension ?
>
>
>>
>> >
>> > 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