[jboss-svn-commits] JBL Code SVN: r17969 - in labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product: rosetta/src/org/jboss/soa/esb/client and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Jan 18 17:36:05 EST 2008


Author: mark.little at jboss.com
Date: 2008-01-18 17:36:05 -0500 (Fri, 18 Jan 2008)
New Revision: 17969

Modified:
   labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/docs/AdministrationGuide.odt
   labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/docs/ProgrammersGuide.odt
   labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/docs/ReleaseNotes.odt
   labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/client/ServiceInvoker.java
   labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/common/Environment.java
   labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/ListenerTagNames.java
   labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/RegistryUtil.java
Log:
http://jira.jboss.com/jira/browse/JBESB-1462

Modified: labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/docs/AdministrationGuide.odt
===================================================================
(Binary files differ)

Modified: labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/docs/ProgrammersGuide.odt
===================================================================
(Binary files differ)

Modified: labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/docs/ReleaseNotes.odt
===================================================================
(Binary files differ)

Modified: labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/client/ServiceInvoker.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/client/ServiceInvoker.java	2008-01-18 22:07:19 UTC (rev 17968)
+++ labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/client/ServiceInvoker.java	2008-01-18 22:36:05 UTC (rev 17969)
@@ -33,6 +33,8 @@
 import org.jboss.soa.esb.addressing.PortReference;
 import org.jboss.soa.esb.addressing.util.DefaultReplyTo;
 import org.jboss.soa.esb.common.Configuration;
+import org.jboss.soa.esb.common.Environment;
+import org.jboss.soa.esb.common.ModulePropertyManager;
 import org.jboss.soa.esb.couriers.Courier;
 import org.jboss.soa.esb.couriers.CourierException;
 import org.jboss.soa.esb.couriers.CourierFactory;
@@ -67,6 +69,12 @@
     public static final String DELIVER_TO = "org.jboss.soa.esb.deliver.to";
     
     /**
+     * Remove (suspected) dead EPRs.
+     */
+    
+    private static boolean removeDeadEprs;
+    
+    /**
      * Class logger.
      */
     private static Logger logger = Logger.getLogger(ServiceInvoker.class);
@@ -281,6 +289,14 @@
 	                    logger.info("Unresponsive EPR: " + epr+" for message: "+message.getHeader());
 	                    
 	                    serviceClusterInfo.removeDeadEPR(epr);
+	                    
+	                    /*
+	                     * So far we've only removed the EPR from the cache. Should we
+	                     * also remove it from the registry?
+	                     */
+	                    
+	                    if (removeDeadEprs)
+	                    	RegistryUtil.unregister(service.getCategory(), service.getName(), epr);
 	                }
             	}
             	catch (MalformedEPRException ex)  // so we can differentiate failure modes, since returning null is limiting
@@ -288,6 +304,10 @@
             		logger.info("Invalid EPR for service (probably ESB-unaware): ignoring for message: "+message.getHeader());
             		
             		serviceClusterInfo.removeDeadEPR(epr);
+            		
+            		/*
+            		 * DO NOT remove from the registry - it is not dead!!
+            		 */
             	}
             }
         }
@@ -499,4 +519,18 @@
             return null;
         }
     }
+    
+    static
+    {
+    	String pruneDead = ModulePropertyManager.getPropertyManager(ModulePropertyManager.CORE_MODULE).getProperty(Environment.REMOVE_DEAD_EPR, "false");
+    	
+    	if ("true".equalsIgnoreCase(pruneDead))
+    	{
+    		removeDeadEprs = true;
+    	}
+    	else
+    	{
+    		removeDeadEprs = false;
+    	}
+    }
 }

Modified: labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/common/Environment.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/common/Environment.java	2008-01-18 22:07:19 UTC (rev 17968)
+++ labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/common/Environment.java	2008-01-18 22:36:05 UTC (rev 17969)
@@ -50,7 +50,7 @@
 	public static final String JMS_SESSION_SLEEP        = "org.jboss.soa.esb.jms.sessionSleep";
 	
 	/*
-	 * Code properties
+	 * Core properties
 	 */
 	public static final String JNDI_SERVER_URL                = "org.jboss.soa.esb.jndi.server.url";
 	public static final String JNDI_SERVER_CONTEXT_FACTORY    = "org.jboss.soa.esb.jndi.server.context.factory";
@@ -61,6 +61,7 @@
     public static final String LOAD_BALANCER_POLICY           = "org.jboss.soa.esb.loadbalancer.policy";
     public static final String REDELIVER_DLS_SERVICE_ON       = "org.jboss.soa.esb.dls.redeliver";
     public static final String REGISTRY_CACHE_LIFE_MILLIES    = "org.jboss.soa.esb.registry.cache.life";
+    public static final String REMOVE_DEAD_EPR                = "org.jboss.soa.esb.failure.detect.removeDeadEPR";
 	/** 
 	 * The Registry Query Manager URI defines the endPoint where registry queries can be made. 
 	 */

Modified: labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/ListenerTagNames.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/ListenerTagNames.java	2008-01-18 22:07:19 UTC (rev 17968)
+++ labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/ListenerTagNames.java	2008-01-18 22:36:05 UTC (rev 17969)
@@ -47,6 +47,7 @@
 	public static final String SERVICE_NAME_TAG			    = "service-name";
 	public static final String SERVICE_DESCRIPTION_TAG      = "service-description";
 	public static final String EPR_DESCRIPTION_TAG          = "epr-description";
+	public static final String REMOVE_OLD_SERVICE           = "remove-old-service";
 
 	/**  Gateways  */
     public static final String TARGET_SERVICE_CATEGORY_TAG	= "target-service-category";

Modified: labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/RegistryUtil.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/RegistryUtil.java	2008-01-18 22:07:19 UTC (rev 17968)
+++ labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/RegistryUtil.java	2008-01-18 22:36:05 UTC (rev 17969)
@@ -117,7 +117,8 @@
     {
         final String category = config.getAttribute(ListenerTagNames.SERVICE_CATEGORY_NAME_TAG) ;
         final String name = config.getAttribute(ListenerTagNames.SERVICE_NAME_TAG) ;
-
+        final String removeOldService = config.getAttribute(ListenerTagNames.REMOVE_OLD_SERVICE);
+        
         if ("eprManager".equalsIgnoreCase(category))
         {
             register(name, epr) ;
@@ -136,9 +137,18 @@
             registryLock.lock();
             try
             {
+            	if ("true".equalsIgnoreCase(removeOldService))            	
+            		registry.unRegisterService(category, name);
+            	
                 registry.registerEPR(category, name,
                     serviceDescription, epr, eprDescription) ;
             }
+            catch (ServiceNotFoundException ex)
+            {
+            	// ignore as it's possible another client just did the removal for us.
+            	
+            	logger.debug("Could not unregister service < "+category+", "+name+" >.");
+            }
             finally
             {
                 registryLock.unlock() ;




More information about the jboss-svn-commits mailing list