[overlord-commits] Overlord SVN: r494 - cdl/trunk/validator/jbossesb/src/main/java/org/jboss/soa/overlord/validator/jbossesb.

overlord-commits at lists.jboss.org overlord-commits at lists.jboss.org
Fri Feb 13 10:04:18 EST 2009


Author: objectiser
Date: 2009-02-13 10:04:18 -0500 (Fri, 13 Feb 2009)
New Revision: 494

Modified:
   cdl/trunk/validator/jbossesb/src/main/java/org/jboss/soa/overlord/validator/jbossesb/ServiceValidatorManager.java
Log:
Added configuration for dynamic endpoint monitoring timeout value.

Modified: cdl/trunk/validator/jbossesb/src/main/java/org/jboss/soa/overlord/validator/jbossesb/ServiceValidatorManager.java
===================================================================
--- cdl/trunk/validator/jbossesb/src/main/java/org/jboss/soa/overlord/validator/jbossesb/ServiceValidatorManager.java	2009-02-12 16:52:07 UTC (rev 493)
+++ cdl/trunk/validator/jbossesb/src/main/java/org/jboss/soa/overlord/validator/jbossesb/ServiceValidatorManager.java	2009-02-13 15:04:18 UTC (rev 494)
@@ -342,6 +342,21 @@
 					logger.info("Setting validators into passive mode");
 					m_active = false;
 				}
+				
+				// Check if dynamic reply-to endpoint timeout specified
+				String timeout=config.getAttribute(DYNAMIC_ENDPOINT_TIMEOUT_ATTR);
+				long replyToTimeout=DynamicReplyToEndpointManager.DYNAMIC_ENDPOINT_TIMEOUT;
+				
+				if (timeout != null && timeout.trim().length() > 0) {
+					try {
+						replyToTimeout = Long.parseLong(timeout);
+					} catch(Exception te) {
+						logger.severe("Dynamic endpoint timeout value '"+
+								timeout+"' not a valid Long type: "+te);
+					}
+				}
+				
+				m_replyToManager.setTimeout(replyToTimeout);
 			}
 			
 			updateConfiguration(config, existingValidatorNames,
@@ -482,11 +497,11 @@
 					
 					// Create service monitor for service
 					String modelName=
-						services[i].getAttribute(MODEL_NAME);
+						services[i].getAttribute(MODEL_ATTR);
 					String role=
-						services[i].getAttribute(ROLE_NAME);
+						services[i].getAttribute(ROLE_ATTR);
 					boolean validate=
-						services[i].getBooleanAttribute(VALIDATE, true);
+						services[i].getBooleanAttribute(VALIDATE_ATTR, true);
 
 					// Check for old attribute names, for
 					// backward compatibility - only support
@@ -661,6 +676,7 @@
 
 	private static final String EPR_ATTR = "epr";
 	private static final String DYNAMIC_REPLY_TO_ATTR = "dynamicReplyTo";
+	private static final String DYNAMIC_ENDPOINT_TIMEOUT_ATTR = "dynamicEndpointTimeout";
 
 	private static final String OUTPUT_NODE = "output";
 	private static final String INPUT_NODE = "input";
@@ -669,9 +685,9 @@
 	private static final String VALIDATOR_NODE = "validator";
 
 	private static final String CONFIG_FILE = "validator-config.xml";
-	public static final String MODEL_NAME="model";
-	public static final String ROLE_NAME="role";
-	public static final String VALIDATE="validate";
+	private static final String MODEL_ATTR="model";
+	private static final String ROLE_ATTR="role";
+	private static final String VALIDATE_ATTR="validate";
 	
 	private static ServiceValidatorManager m_instance=null;
 	private java.io.File m_validatorConfigFile=null;
@@ -761,6 +777,8 @@
 	
 	public class DynamicReplyToEndpointManager extends Thread {
 		
+		public static final int DYNAMIC_ENDPOINT_TIMEOUT = 10000;
+		
 		/**
 		 * The default constructor
 		 */
@@ -780,7 +798,7 @@
 				
 				try {
 					synchronized(this) {
-						wait(10000);
+						wait(m_timeout);
 					}
 				} catch(Exception e) {
 					logger.severe("Failed to wait");
@@ -827,6 +845,20 @@
 		}
 		
 		/**
+		 * This method sets the timeout used to determine when to
+		 * discard the dynamic endpoints being monitored.
+		 * 
+		 * @param timeout The timeout value
+		 */
+		public void setTimeout(long timeout) {
+			m_timeout = timeout;
+			
+			if (logger.isLoggable(Level.FINE)) {
+				logger.fine("Dynamic endpoint monitoring timeout="+timeout);
+			}
+		}
+		
+		/**
 		 * This method returns the list of service validators
 		 * associated with the dynamic reply-to endpoint.
 		 * 
@@ -924,5 +956,6 @@
 			new java.util.HashMap<Endpoint,java.util.List<ServiceValidator>>();
 		private java.util.Map<Endpoint,java.util.List<ServiceValidator>> m_outputsPendingDelete=
 			new java.util.HashMap<Endpoint,java.util.List<ServiceValidator>>();
+		private long m_timeout=DYNAMIC_ENDPOINT_TIMEOUT;
 	}
 }




More information about the overlord-commits mailing list