2013/9/26 Thomas Mortagne <thomas.mortagne(a)xwiki.com>
On Thu, Sep 26, 2013 at 5:13 PM, Thomas Mortagne
<thomas.mortagne(a)xwiki.com> wrote:
> On Thu, Sep 26, 2013 at 4:40 PM, Jeremie BOUSQUET
> <jeremie.bousquet(a)gmail.com> wrote:
>> 2013/9/26 Thomas Mortagne <thomas.mortagne(a)xwiki.com>
>>
>>> On Thu, Sep 26, 2013 at 1:08 PM, Jeremie BOUSQUET
>>> <jeremie.bousquet(a)gmail.com> wrote:
>>> > 2013/9/26 Thomas Mortagne <thomas.mortagne(a)xwiki.com>
>>> >
>>> >> On Thu, Sep 26, 2013 at 11:20 AM, Jeremie BOUSQUET
>>> >> <jeremie.bousquet(a)gmail.com> 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
>> > users(a)xwiki.org
>> >
http://lists.xwiki.org/mailman/listinfo/users
>>
>>
>>
>> --
>> Thomas Mortagne
>> _______________________________________________
>> users mailing list
>> users(a)xwiki.org
>>
http://lists.xwiki.org/mailman/listinfo/users
>>
> _______________________________________________
> users mailing list
> users(a)xwiki.org
>
http://lists.xwiki.org/mailman/listinfo/users
--
Thomas Mortagne
_______________________________________________
users mailing list
users(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/users
_______________________________________________
users mailing list
users(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/users
--
Thomas Mortagne
--
Thomas Mortagne
_______________________________________________
users mailing list
users(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/users