[jboss-svn-commits] JBL Code SVN: r15739 - in labs/jbossesb/trunk/product: tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Oct 11 01:43:04 EDT 2007


Author: kevin.conner at jboss.com
Date: 2007-10-11 01:43:04 -0400 (Thu, 11 Oct 2007)
New Revision: 15739

Modified:
   labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/lifecycle/LifecycleResourceManager.java
   labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFilerJob.java
   labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFilerScheduler.java
Log:
Fixed DataFilerJob context: JBESB-1120

Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/lifecycle/LifecycleResourceManager.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/lifecycle/LifecycleResourceManager.java	2007-10-11 05:25:19 UTC (rev 15738)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/lifecycle/LifecycleResourceManager.java	2007-10-11 05:43:04 UTC (rev 15739)
@@ -203,7 +203,18 @@
         readLock.lock() ;
         try
         {
-            identity = identities.get(Thread.currentThread().getContextClassLoader()) ;
+            ClassLoader classLoader = Thread.currentThread().getContextClassLoader() ;
+            String currentIdentity = null ;
+            while(classLoader != null)
+            {
+                currentIdentity = identities.get(classLoader) ;
+                if (currentIdentity != null)
+                {
+                    break ;
+                }
+                classLoader = classLoader.getParent() ;
+            }
+            identity = currentIdentity ;
         }
         finally
         {

Modified: labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFilerJob.java
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFilerJob.java	2007-10-11 05:25:19 UTC (rev 15738)
+++ labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFilerJob.java	2007-10-11 05:43:04 UTC (rev 15739)
@@ -59,60 +59,69 @@
 	
 	public void execute (JobExecutionContext jobExecutionContext) 
 		throws JobExecutionException {
-		DeliverOnlyCourier sender = null;
-		logger.debug("Collect statistics from EPRs");
-		List list;
-		try {
-			list = RegistryUtil.getEprs(FilerAction.INTERNAL_CATEGORY, FilerAction.DATA_COLLECTOR_SERVICE_ACTION_NAME);
-			if (list != null) {
-				for (int i = 0; i < list.size(); i++) {
-					EPR epr = (EPR)list.get(i); 
-					// Send message requesting performance data
-					Message esbMessage = MessageFactory.getInstance().getMessage();
-					esbMessage.getProperties().setProperty(MessageBodyTypeNames.COMMAND_TYPE, MessageBodyTypeNames.STATISTICS_REQUEST); 
-					esbMessage.getBody().add(BytesBody.BYTES_LOCATION, "get statistics".getBytes());
-					
-				    URI uri = new URI(UUID.randomUUID().toString());
-				    esbMessage.getHeader().getCall().setMessageID(uri);
-
-				    try {
-						sender = CourierFactory.getCourier(epr);
-				    	sender.deliver(esbMessage);				    				    	
-				    } finally {
-				    	CourierUtil.cleanCourier(sender);
-				    }
-				}
-			}
-			
-			list = RegistryUtil.getEprs(FilerAction.INTERNAL_CATEGORY, FilerAction.OPERATIONS_COLLECTOR_SERVICE_ACTION_NAME);			
-			if (list != null) {
-				for (int i = 0; i < list.size(); i++) {
-					EPR epr = (EPR)list.get(i); 
-					// Send message requesting operations data
-					Message opMessage = MessageFactory.getInstance().getMessage();
-					opMessage.getProperties().setProperty(MessageBodyTypeNames.COMMAND_TYPE, MessageBodyTypeNames.OPERATIONS_REQUEST); 
-					opMessage.getBody().add(BytesBody.BYTES_LOCATION, "get statistics".getBytes());
-				
-					URI opURI = new URI(UUID.randomUUID().toString());
-					opMessage.getHeader().getCall().setMessageID(opURI);
-					try{
-						sender = CourierFactory.getCourier(epr);
-						sender.deliver(opMessage);
-					} finally {
-						CourierUtil.cleanCourier(sender);
-					}
-				}
-			}
-		} catch (RegistryException e) {
-			logger.error("", e);
-		} catch (CourierException e) {
-			logger.error("", e);
-		} catch (MalformedEPRException e) {
-			logger.error("", e);
-		} catch (URISyntaxException e) {
-			logger.error("", e);
-		} catch (ServiceNotFoundException e) {
-			logger.error("", e);
-		} 
+	        final ClassLoader currentClassLoader = Thread.currentThread().getContextClassLoader() ;
+	        try
+	        {
+        	        Thread.currentThread().setContextClassLoader((ClassLoader)jobExecutionContext.getJobDetail().getJobDataMap().get(ClassLoader.class.getName())) ;
+        		DeliverOnlyCourier sender = null;
+        		logger.debug("Collect statistics from EPRs");
+        		List list;
+        		try {
+        			list = RegistryUtil.getEprs(FilerAction.INTERNAL_CATEGORY, FilerAction.DATA_COLLECTOR_SERVICE_ACTION_NAME);
+        			if (list != null) {
+        				for (int i = 0; i < list.size(); i++) {
+        					EPR epr = (EPR)list.get(i); 
+        					// Send message requesting performance data
+        					Message esbMessage = MessageFactory.getInstance().getMessage();
+        					esbMessage.getProperties().setProperty(MessageBodyTypeNames.COMMAND_TYPE, MessageBodyTypeNames.STATISTICS_REQUEST); 
+        					esbMessage.getBody().add(BytesBody.BYTES_LOCATION, "get statistics".getBytes());
+        					
+        				    URI uri = new URI(UUID.randomUUID().toString());
+        				    esbMessage.getHeader().getCall().setMessageID(uri);
+        
+        				    try {
+        						sender = CourierFactory.getCourier(epr);
+        				    	sender.deliver(esbMessage);				    				    	
+        				    } finally {
+        				    	CourierUtil.cleanCourier(sender);
+        				    }
+        				}
+        			}
+        			
+        			list = RegistryUtil.getEprs(FilerAction.INTERNAL_CATEGORY, FilerAction.OPERATIONS_COLLECTOR_SERVICE_ACTION_NAME);			
+        			if (list != null) {
+        				for (int i = 0; i < list.size(); i++) {
+        					EPR epr = (EPR)list.get(i); 
+        					// Send message requesting operations data
+        					Message opMessage = MessageFactory.getInstance().getMessage();
+        					opMessage.getProperties().setProperty(MessageBodyTypeNames.COMMAND_TYPE, MessageBodyTypeNames.OPERATIONS_REQUEST); 
+        					opMessage.getBody().add(BytesBody.BYTES_LOCATION, "get statistics".getBytes());
+        				
+        					URI opURI = new URI(UUID.randomUUID().toString());
+        					opMessage.getHeader().getCall().setMessageID(opURI);
+        					try{
+        						sender = CourierFactory.getCourier(epr);
+        						sender.deliver(opMessage);
+        					} finally {
+        						CourierUtil.cleanCourier(sender);
+        					}
+        				}
+        			}
+        		} catch (RegistryException e) {
+        			logger.error("", e);
+        		} catch (CourierException e) {
+        			logger.error("", e);
+        		} catch (MalformedEPRException e) {
+        			logger.error("", e);
+        		} catch (URISyntaxException e) {
+        			logger.error("", e);
+        		} catch (ServiceNotFoundException e) {
+        			logger.error("", e);
+        		}
+	        }
+	        finally
+	        {
+                    Thread.currentThread().setContextClassLoader(currentClassLoader) ;
+	        }
 	}
 }

Modified: labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFilerScheduler.java
===================================================================
--- labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFilerScheduler.java	2007-10-11 05:25:19 UTC (rev 15738)
+++ labs/jbossesb/trunk/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFilerScheduler.java	2007-10-11 05:43:04 UTC (rev 15739)
@@ -24,6 +24,7 @@
 import java.util.Date;
 
 import org.apache.log4j.Logger;
+import org.quartz.JobDataMap;
 import org.quartz.JobDetail;
 import org.quartz.Scheduler;
 import org.quartz.SchedulerException;
@@ -60,6 +61,11 @@
 			scheduler.deleteJob(DataFilerJob.JOB_GROUP, DataFilerJob.JOB_NAME);
 			
 			JobDetail jobDetail = new JobDetail(DataFilerJob.JOB_GROUP, DataFilerJob.JOB_NAME, DataFilerJob.class);
+                        
+                        final JobDataMap datamap = new JobDataMap() ;
+                        datamap.put(ClassLoader.class.getName(), Thread.currentThread().getContextClassLoader()) ;
+			jobDetail.setJobDataMap(datamap) ;
+			
 			SimpleTrigger simpleTrigger = new SimpleTrigger(DataFilerJob.JOB_GROUP, DataFilerJob.JOB_NAME);
 			simpleTrigger.setStartTime(new Date(ctime));
 			simpleTrigger.setRepeatInterval(1000 * 60 * pollMinuteFrequency);




More information about the jboss-svn-commits mailing list