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().
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.
>
> >
> > 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