Added monitoring of node service to generate CIFS change notifications and update file server state cache, ALFCOM-1205. Should also fix ALFCOM-1021, ALFCOM-1052 and JLAN-9.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@10287 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Gary Spencer
2008-08-07 10:17:19 +00:00
parent 73d195b65e
commit 12f45da03a
10 changed files with 1561 additions and 1 deletions

View File

@@ -26,8 +26,11 @@ package org.alfresco.filesys.repo;
import org.alfresco.filesys.alfresco.AlfrescoContext;
import org.alfresco.filesys.alfresco.IOControlHandler;
import org.alfresco.jlan.server.core.DeviceContextException;
import org.alfresco.jlan.server.filesys.DiskInterface;
import org.alfresco.jlan.server.filesys.DiskSharedDevice;
import org.alfresco.jlan.server.filesys.FileSystem;
import org.alfresco.jlan.smb.server.notify.NotifyChangeHandler;
import org.alfresco.service.cmr.repository.*;
/**
@@ -48,6 +51,10 @@ public class ContentContext extends AlfrescoContext
private NodeRef m_rootNodeRef;
// Node monitor
private NodeMonitor m_nodeMonitor;
/**
* Class constructor
*
@@ -114,6 +121,11 @@ public class ContentContext extends AlfrescoContext
* Close the filesystem context
*/
public void CloseContext() {
// Stop the node monitor, if enabled
if ( m_nodeMonitor != null)
m_nodeMonitor.shutdownRequest();
// Call the base class
@@ -130,4 +142,32 @@ public class ContentContext extends AlfrescoContext
{
return new ContentIOControlHandler();
}
/**
* Create the node monitor
*
* @param filesysDriver ContentDiskDriver
*/
protected void createNodeMonitor( ContentDiskDriver filesysDriver) {
m_nodeMonitor = new NodeMonitor( filesysDriver, this);
}
/**
* Start the filesystem
*
* @param share DiskSharedDevice
* @exception DeviceContextException
*/
public void startFilesystem(DiskSharedDevice share)
throws DeviceContextException {
// Call the base class
super.startFilesystem(share);
// Start the node monitor, if enabled
if ( m_nodeMonitor != null)
m_nodeMonitor.startMonitor();
}
}