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