All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
org.quartz.core.jmx.JobDetailSupport Maven / Gradle / Ivy
package org.quartz.core.jmx;
import static javax.management.openmbean.SimpleType.BOOLEAN;
import static javax.management.openmbean.SimpleType.STRING;
import java.util.ArrayList;
import java.util.Map;
import javax.management.openmbean.CompositeData;
import javax.management.openmbean.CompositeDataSupport;
import javax.management.openmbean.CompositeType;
import javax.management.openmbean.OpenDataException;
import javax.management.openmbean.OpenType;
import javax.management.openmbean.TabularData;
import javax.management.openmbean.TabularDataSupport;
import javax.management.openmbean.TabularType;
import org.quartz.Job;
import org.quartz.JobDetail;
import org.quartz.impl.JobDetailImpl;
public class JobDetailSupport {
private static final String COMPOSITE_TYPE_NAME = "JobDetail";
private static final String COMPOSITE_TYPE_DESCRIPTION = "Job Execution Details";
private static final String[] ITEM_NAMES = new String[] { "name", "group",
"description", "jobClass", "jobDataMap", "durability", "shouldRecover",};
private static final String[] ITEM_DESCRIPTIONS = new String[] { "name",
"group", "description", "jobClass", "jobDataMap", "durability", "shouldRecover",};
private static final OpenType[] ITEM_TYPES = new OpenType[] { STRING,
STRING, STRING, STRING, JobDataMapSupport.TABULAR_TYPE, BOOLEAN,
BOOLEAN, };
private static final CompositeType COMPOSITE_TYPE;
private static final String TABULAR_TYPE_NAME = "JobDetail collection";
private static final String TABULAR_TYPE_DESCRIPTION = "JobDetail collection";
private static final String[] INDEX_NAMES = new String[] { "name", "group" };
private static final TabularType TABULAR_TYPE;
static {
try {
COMPOSITE_TYPE = new CompositeType(COMPOSITE_TYPE_NAME,
COMPOSITE_TYPE_DESCRIPTION, ITEM_NAMES, ITEM_DESCRIPTIONS,
ITEM_TYPES);
TABULAR_TYPE = new TabularType(TABULAR_TYPE_NAME,
TABULAR_TYPE_DESCRIPTION, COMPOSITE_TYPE, INDEX_NAMES);
} catch (OpenDataException e) {
throw new RuntimeException(e);
}
}
/**
* @param cData
* @return JobDetail
*/
public static JobDetail newJobDetail(CompositeData cData)
throws ClassNotFoundException
{
JobDetailImpl jobDetail = new JobDetailImpl();
int i = 0;
jobDetail.setName((String) cData.get(ITEM_NAMES[i++]));
jobDetail.setGroup((String) cData.get(ITEM_NAMES[i++]));
jobDetail.setDescription((String) cData.get(ITEM_NAMES[i++]));
Class jobClass = Class.forName((String) cData.get(ITEM_NAMES[i++]));
@SuppressWarnings("unchecked")
Class jobClassTyped = (Class)jobClass;
jobDetail.setJobClass(jobClassTyped);
jobDetail.setJobDataMap(JobDataMapSupport.newJobDataMap((TabularData) cData.get(ITEM_NAMES[i++])));
jobDetail.setDurability((Boolean) cData.get(ITEM_NAMES[i++]));
jobDetail.setRequestsRecovery((Boolean) cData.get(ITEM_NAMES[i++]));
return jobDetail;
}
/**
* @param Map
* @return JobDetail
*/
public static JobDetail newJobDetail(Map attrMap)
throws ClassNotFoundException
{
JobDetailImpl jobDetail = new JobDetailImpl();
int i = 0;
jobDetail.setName((String) attrMap.get(ITEM_NAMES[i++]));
jobDetail.setGroup((String) attrMap.get(ITEM_NAMES[i++]));
jobDetail.setDescription((String) attrMap.get(ITEM_NAMES[i++]));
Class jobClass = Class.forName((String) attrMap.get(ITEM_NAMES[i++]));
@SuppressWarnings("unchecked")
Class jobClassTyped = (Class)jobClass;
jobDetail.setJobClass(jobClassTyped);
if(attrMap.containsKey(ITEM_NAMES[i])) {
@SuppressWarnings("unchecked")
Map map = (Map)attrMap.get(ITEM_NAMES[i]);
jobDetail.setJobDataMap(JobDataMapSupport.newJobDataMap(map));
}
i++;
if(attrMap.containsKey(ITEM_NAMES[i])) {
jobDetail.setDurability((Boolean) attrMap.get(ITEM_NAMES[i]));
}
i++;
if(attrMap.containsKey(ITEM_NAMES[i])) {
jobDetail.setRequestsRecovery((Boolean) attrMap.get(ITEM_NAMES[i]));
}
i++;
return jobDetail;
}
/**
* @param jobDetail
* @return CompositeData
*/
public static CompositeData toCompositeData(JobDetail jobDetail) {
try {
return new CompositeDataSupport(COMPOSITE_TYPE, ITEM_NAMES,
new Object[] {
jobDetail.getKey().getName(),
jobDetail.getKey().getGroup(),
jobDetail.getDescription(),
jobDetail.getJobClass().getName(),
JobDataMapSupport.toTabularData(jobDetail
.getJobDataMap()),
jobDetail.isDurable(),
jobDetail.requestsRecovery(), });
} catch (OpenDataException e) {
throw new RuntimeException(e);
}
}
public static TabularData toTabularData(JobDetail[] jobDetails) {
TabularData tData = new TabularDataSupport(TABULAR_TYPE);
if (jobDetails != null) {
ArrayList list = new ArrayList();
for (JobDetail jobDetail : jobDetails) {
list.add(toCompositeData(jobDetail));
}
tData.putAll(list.toArray(new CompositeData[list.size()]));
}
return tData;
}
}