|  | @@ -101,48 +101,25 @@ public class GlueFactory implements ApplicationContextAware {
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  	
 | 
	
		
			
				|  |  |  	// ----------------------------- load instance -----------------------------
 | 
	
		
			
				|  |  | -	
 | 
	
		
			
				|  |  | -	// load class, 
 | 
	
		
			
				|  |  | -	public static String generateClassCacheKey(String job_group, String job_name){
 | 
	
		
			
				|  |  | -		return job_group.concat("_").concat(job_name).concat("_class");
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -	public Class<?> loadClass(String job_group, String job_name) throws Exception{
 | 
	
		
			
				|  |  | +	// load new instance, prototype
 | 
	
		
			
				|  |  | +	public IJobHandler loadNewInstance(String job_group, String job_name) throws Exception{
 | 
	
		
			
				|  |  |  		if (job_group==null || job_group.trim().length()==0 || job_name==null || job_name.trim().length()==0) {
 | 
	
		
			
				|  |  |  			return null;
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -		String cacheClassKey = generateClassCacheKey(job_group, job_name);
 | 
	
		
			
				|  |  | -		Object cacheClass = LocalCache.getInstance().get(cacheClassKey);
 | 
	
		
			
				|  |  | -		if (cacheClass != null) {
 | 
	
		
			
				|  |  | -			return (Class<?>) cacheClass;
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  |  		String codeSource = glueLoader.load(job_group, job_name);
 | 
	
		
			
				|  |  |  		if (codeSource!=null && codeSource.trim().length()>0) {
 | 
	
		
			
				|  |  |  			Class<?> clazz = groovyClassLoader.parseClass(codeSource);
 | 
	
		
			
				|  |  | -			if (clazz!=null) {
 | 
	
		
			
				|  |  | -				LocalCache.getInstance().set(cacheClassKey, clazz, cacheTimeout);
 | 
	
		
			
				|  |  | -				logger.info(">>>>>>>>>>>> xxl-glue, fresh class, cacheClassKey:{}", cacheClassKey);
 | 
	
		
			
				|  |  | -				return clazz;
 | 
	
		
			
				|  |  | -			}
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -		return null;
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -	
 | 
	
		
			
				|  |  | -	// load new instance, prototype
 | 
	
		
			
				|  |  | -	public IJobHandler loadNewInstance(String job_group, String job_name) throws Exception{
 | 
	
		
			
				|  |  | -		if (job_group==null || job_group.trim().length()==0 || job_name==null || job_name.trim().length()==0) {
 | 
	
		
			
				|  |  | -			return null;
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -		Class<?> clazz = loadClass(job_group, job_name);
 | 
	
		
			
				|  |  | -		if (clazz!=null) {
 | 
	
		
			
				|  |  | -			Object instance = clazz.newInstance();
 | 
	
		
			
				|  |  | -			if (instance!=null) {
 | 
	
		
			
				|  |  | -				if (!(instance instanceof IJobHandler)) {
 | 
	
		
			
				|  |  | -					throw new IllegalArgumentException(">>>>>>>>>>> xxl-glue, loadNewInstance error, "
 | 
	
		
			
				|  |  | -							+ "cannot convert from instance["+ instance.getClass() +"] to IJobHandler");
 | 
	
		
			
				|  |  | +			if (clazz != null) {
 | 
	
		
			
				|  |  | +				Object instance = clazz.newInstance();
 | 
	
		
			
				|  |  | +				if (instance!=null) {
 | 
	
		
			
				|  |  | +					if (instance instanceof IJobHandler) {
 | 
	
		
			
				|  |  | +						this.injectService(instance);
 | 
	
		
			
				|  |  | +						return (IJobHandler) instance;
 | 
	
		
			
				|  |  | +					} else {
 | 
	
		
			
				|  |  | +						throw new IllegalArgumentException(">>>>>>>>>>> xxl-glue, loadNewInstance error, "
 | 
	
		
			
				|  |  | +								+ "cannot convert from instance["+ instance.getClass() +"] to IJobHandler");
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  |  				}
 | 
	
		
			
				|  |  | -				
 | 
	
		
			
				|  |  | -				this.injectService(instance);
 | 
	
		
			
				|  |  | -				return (IJobHandler) instance;
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  		throw new IllegalArgumentException(">>>>>>>>>>> xxl-glue, loadNewInstance error, instance is null");
 |