-
Suggestion
-
Resolution: Fixed
NOTE: This suggestion is for Confluence Server. Using Confluence Cloud? See the corresponding suggestion.
Currently job plugin modules are not dependency-injected (or "autowired"). They are instantiated by Quartz directly instead, because the module descriptor constructs the JobDetail bean this way:
JobDetail jobDetail = new JobDetail(); jobDetail.setGroup(getPluginKey()); jobDetail.setName(getKey()); jobDetail.setJobClass(getModuleClass()); JobDataMap jobDetailMap = new JobDataMap(); jobDetailMap.put("runOncePerCluster", String.valueOf(perClusterJob)); jobDetail.setJobDataMap(jobDetailMap); return jobDetail;
Although I haven't tested it, it should be possible to construct a delegating job class and pass the autowired plugin Job to it via the JobDataMap. I think this is how the MethodInvokingJobDetailFactoryBean works in Spring.
- relates to
-
CONFCLOUD-20162 Autowire job plugin modules
- Closed
- mentioned in
-
Page Failed to load
[CONFSERVER-20162] Autowire job plugin modules
Workflow | Original: JAC Suggestion Workflow 4 [ 3566986 ] | New: JAC Suggestion Workflow 3 [ 4332514 ] |
Workflow | Original: JAC Suggestion Workflow 2 [ 3176133 ] | New: JAC Suggestion Workflow 4 [ 3566986 ] |
Status | Original: RESOLVED [ 5 ] | New: Closed [ 6 ] |
Workflow | Original: JAC Suggestion Workflow [ 3033796 ] | New: JAC Suggestion Workflow 2 [ 3176133 ] |
Workflow | Original: Confluence Workflow - Public Facing v4 [ 2523684 ] | New: JAC Suggestion Workflow [ 3033796 ] |
Workflow | Original: Confluence Workflow - Public Facing v3 [ 2258998 ] | New: Confluence Workflow - Public Facing v4 [ 2523684 ] |
Workflow | Original: Confluence Workflow - Public Facing v3 - TEMP [ 2195380 ] | New: Confluence Workflow - Public Facing v3 [ 2258998 ] |
Workflow | Original: Confluence Workflow - Public Facing v3 [ 1923217 ] | New: Confluence Workflow - Public Facing v3 - TEMP [ 2195380 ] |
Workflow | Original: Confluence Workflow - Public Facing v2 [ 1752439 ] | New: Confluence Workflow - Public Facing v3 [ 1923217 ] |
Description |
Original:
Currently job plugin modules are not dependency-injected (or "autowired"). They are instantiated by Quartz directly instead, because the module descriptor constructs the JobDetail bean this way:
{code:java} JobDetail jobDetail = new JobDetail(); jobDetail.setGroup(getPluginKey()); jobDetail.setName(getKey()); jobDetail.setJobClass(getModuleClass()); JobDataMap jobDetailMap = new JobDataMap(); jobDetailMap.put("runOncePerCluster", String.valueOf(perClusterJob)); jobDetail.setJobDataMap(jobDetailMap); return jobDetail; {code} Although I haven't tested it, it should be possible to construct a delegating job class and pass the autowired plugin Job to it via the JobDataMap. I think this is how the MethodInvokingJobDetailFactoryBean works in Spring. |
New:
{panel:bgColor=#e7f4fa} *NOTE:* This suggestion is for *Confluence Server*. Using *Confluence Cloud*? [See the corresponding suggestion|http://jira.atlassian.com/browse/CONFCLOUD-20162]. {panel} Currently job plugin modules are not dependency-injected (or "autowired"). They are instantiated by Quartz directly instead, because the module descriptor constructs the JobDetail bean this way: {code:java} JobDetail jobDetail = new JobDetail(); jobDetail.setGroup(getPluginKey()); jobDetail.setName(getKey()); jobDetail.setJobClass(getModuleClass()); JobDataMap jobDetailMap = new JobDataMap(); jobDetailMap.put("runOncePerCluster", String.valueOf(perClusterJob)); jobDetail.setJobDataMap(jobDetailMap); return jobDetail; {code} Although I haven't tested it, it should be possible to construct a delegating job class and pass the autowired plugin Job to it via the JobDataMap. I think this is how the MethodInvokingJobDetailFactoryBean works in Spring. |
Link |
New:
This issue relates to |