Merged V3.1 to HEAD

Merged DEV/LIVECYCLE-3.1 to V3.1
      12665: Merged V2.1-A to DEV\LIVECYCLE-3.1
         8615: Cluster startup and property setting enhancements
         8657: Fixed shutdown procedure for JGroups
         8676: Enable system property overriding of more JGroups TCP stack properties
               -  ${alfresco.tcp.start_port:7800}
               -  ${alfresco.tcp.port_range:3}
         8678: More logging of cluster view changes and channel factory config during startup
      12667: Merged V2.1-A to DEV/LIVECYCLE-3.1
         9188: Index recovery job only calls through if property 'alfresco.cluster.name' has been set
         9197: Fixed unit test after bean property name change
      12793: Merged V2.1-A to DEV/LIVECYCLE-3.1
         7765: Requested mimetypes
         8526: Updated Mimetypes
         8610: Mimetype changes
         Many branding and other non-core changes were omitted
      12848: Fixed JAWS-223: Adobe LC Hibernate Dialect Loading
             - Hibernate dialect can be null or empty and will be autodetected from the database metadata
             - Property 'hibernate.dialect' is set on the System
             - iBatis loading (activities) checks for 'hibernate.dialect'
             - SchemaBootstrap checks for 'hibernate.dialect'
      12854: Merged V2.1-A to DEV/LIVECYCLE-3.1
         8681: Fixed mimetype 'application/photoshop'
      12856: Merged V2.1-A to DEV/LIVECYCLE-3.1
         9008: Fixed ADB-64: NPE when applying aspect cm:mlDocument
      12857: Merged V2.1-A to DEV/LIVECYCLE-3.1
         9032: ACT-2303: "Namespace is displayed in the Node browser is www.alfresco.org ...
   ___________________________________________________________________
   Modified: svn:mergeinfo
      Merged /alfresco/BRANCHES/V2.1-A:r7765,8526,8610,8615,8657,8676,8678,9188,9197
      Merged /alfresco/BRANCHES/V3.1:r12894
      Merged /alfresco/BRANCHES/DEV/LIVECYCLE-3.1:r12665,12667,12793,12848,12854,12856-12857


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@13518 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2009-03-10 13:29:24 +00:00
parent 4fdb297884
commit adc940f961
21 changed files with 271 additions and 47 deletions

View File

@@ -153,13 +153,33 @@ public class AlfrescoJGroupsChannelFactory extends AbstractLifecycleBean
}
/**
* Close all channels. All the channels will continue to function, but will be replaced
* internally with dummy channels. Effectively, all the cluster communications will be
* closed down.
* Close all channels. All the channels will be closed and will cease to function.
*/
private static void closeChannels()
{
changeClusterNamePrefix(null);
for (Map.Entry<String, ChannelProxy> entry : channels.entrySet())
{
ChannelProxy channelProxy = entry.getValue();
// Close the channel via the proxy
try
{
channelProxy.close();
channelProxy.shutdown();
if (logger.isDebugEnabled())
{
logger.debug("\n" +
"Closed channel: " + channelProxy);
}
}
catch (Throwable e)
{
logger.warn(
"Unable to close channel: \n" +
" Channel: " + channelProxy,
e);
}
}
}
/**
@@ -358,11 +378,13 @@ public class AlfrescoJGroupsChannelFactory extends AbstractLifecycleBean
e);
}
// done
if (logger.isDebugEnabled())
if (logger.isInfoEnabled())
{
logger.debug("\n" +
logger.info("\n" +
"Created JChannelFactory: \n" +
" configuration: " + AlfrescoJGroupsChannelFactory.configUrl);
" Cluster Name: " + (AlfrescoJGroupsChannelFactory.clusterNamePrefix == null ? "" : AlfrescoJGroupsChannelFactory.clusterNamePrefix) + "\n" +
" Stack Mapping: " + AlfrescoJGroupsChannelFactory.stacksByAppRegion + "\n" +
" Configuration: " + AlfrescoJGroupsChannelFactory.configUrl);
}
return AlfrescoJGroupsChannelFactory.channelFactory;
}
@@ -394,6 +416,13 @@ public class AlfrescoJGroupsChannelFactory extends AbstractLifecycleBean
try
{
oldChannel.close();
oldChannel.shutdown();
if (logger.isDebugEnabled())
{
logger.debug("\n" +
"Closed old channel during channel rebuild: \n" +
" Old channel: " + oldChannel);
}
}
catch (Throwable e)
{
@@ -420,12 +449,15 @@ public class AlfrescoJGroupsChannelFactory extends AbstractLifecycleBean
writeLock.lock();
try
{
if (clusterNamePrefix == null || clusterNamePrefix.length() == 0)
if (clusterNamePrefix == null || clusterNamePrefix.trim().length() == 0 || clusterNamePrefix.startsWith("${"))
{
// Clear everything out
AlfrescoJGroupsChannelFactory.clusterNamePrefix = null;
}
AlfrescoJGroupsChannelFactory.clusterNamePrefix = clusterNamePrefix;
else
{
AlfrescoJGroupsChannelFactory.clusterNamePrefix = clusterNamePrefix;
}
}
finally
{
@@ -490,11 +522,11 @@ public class AlfrescoJGroupsChannelFactory extends AbstractLifecycleBean
}
/**
* @see AlfrescoJGroupsChannelFactory#changeClusterName(String)
* @see AlfrescoJGroupsChannelFactory#changeClusterNamePrefix(String)
*/
public void setClusterNamePrefix(String clusterNamePrefix)
public void setClusterName(String clusterName)
{
AlfrescoJGroupsChannelFactory.changeClusterNamePrefix(clusterNamePrefix);
AlfrescoJGroupsChannelFactory.changeClusterNamePrefix(clusterName);
}
/**
@@ -579,6 +611,8 @@ public class AlfrescoJGroupsChannelFactory extends AbstractLifecycleBean
/**
* Swap the channel. The old delegate will be disconnected before the swap occurs.
* This guarantees data consistency, assuming that any failures will be handled.
* <p>
* Note that the old delegate is not closed or shutdown.
*
* @param the new delegate
* @return the old, disconnected delegate
@@ -593,8 +627,6 @@ public class AlfrescoJGroupsChannelFactory extends AbstractLifecycleBean
}
delegate.setUpHandler(null);
// Close the old delegate
delegate.close();
Channel oldDelegage = delegate;
// Assign the new delegate and carry the listeners over