in hawtio-system/src/main/java/io/hawt/jmx/QuartzFacade.java [53:96]
public void updateSimpleTrigger(String schedulerObjectName, String triggerName, String groupName, int misfireInstruction,
int repeatCount, long repeatInterval) throws Exception {
if (schedulerObjectName == null) {
throw new IllegalArgumentException("Cannot find quartz scheduler with ObjectName: " + schedulerObjectName);
}
ObjectName oName = ObjectName.getInstance(schedulerObjectName);
if (!mBeanServer.isRegistered(oName)) {
throw new IllegalArgumentException("Cannot find quartz scheduler with ObjectName: " + schedulerObjectName);
}
// get existing trigger map
CompositeData data = (CompositeData) mBeanServer.invoke(oName, "getTrigger", new Object[] { triggerName, groupName }, new String[] { "java.lang.String", "java.lang.String" });
if (data == null) {
throw new IllegalArgumentException("Cannot find trigger details for group: " + groupName + " name: " + triggerName);
}
// trigger references job - let's get its data
String jobName = (String) data.get("jobName");
String jobGroupName = (String) data.get("jobGroup");
CompositeData jobData = (CompositeData) mBeanServer.invoke(oName, "getJobDetail", new Object[] { jobName, jobGroupName }, new String[] { "java.lang.String", "java.lang.String" });
if (jobData == null) {
throw new IllegalArgumentException("Cannot find job details for group: " + jobGroupName + " name: " + jobName);
}
Map<String, Object> jobParams = new HashMap<>();
Map<String, Object> jobDataMap = new HashMap<>();
initJobParams(jobParams, jobDataMap, jobName, jobGroupName, jobData);
// also ensure the job data map is up to date with the simple trigger changes
Map<String, Object> triggerParams = new HashMap<>();
jobDataMap.put("CamelQuartzTriggerType", "simple");
triggerParams.put("repeatCount", repeatCount);
jobDataMap.put("CamelQuartzTriggerSimpleRepeatCounter", repeatCount);
triggerParams.put("repeatInterval", repeatInterval);
jobDataMap.put("CamelQuartzTriggerSimpleRepeatInterval", repeatInterval);
triggerParams.put("name", triggerName);
triggerParams.put("group", groupName);
triggerParams.put("jobName", jobName);
triggerParams.put("jobGroup", jobGroupName);
triggerParams.put("misfireInstruction", misfireInstruction);
// update trigger
mBeanServer.invoke(oName, "scheduleBasicJob", new Object[] { jobParams, triggerParams }, new String[] { "java.util.Map", "java.util.Map" });
}