Merged missing changes to file-servers.xml and file-servers.properties from 13521 in V3.1

Synchronized new file-servers-context.xml with these changes
Debugged NFS and Desktop Action Initialization via Spring

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@13831 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Dave Ward
2009-04-03 17:31:00 +00:00
parent 0ee6c8038a
commit 7ed214059f
16 changed files with 750 additions and 576 deletions

View File

@@ -2,42 +2,94 @@
<config evaluator="string-compare" condition="CIFS Server">
<serverEnable enabled="${cifs.enabled}"/>
<host name="${cifs.localname}A" domain="${cifs.domain}"/>
<comment>Alfresco CIFS Server</comment>
<!-- Set to the broadcast mask for the subnet -->
<broadcast>${cifs.broadcast}</broadcast>
<!-- Set to the IP for the adapter for Java socket -->
<bindto>${cifs.bindto}</bindto>
<!-- Use Java socket based NetBIOS over TCP/IP and native SMB on linux -->
<tcpipSMB platforms="linux,solaris,macosx"/>
<tcpipSMB ipv6="${cifs.ipv6}" platforms="linux,solaris,macosx"/>
<netBIOSSMB bindto="${cifs.bindto}" platforms="linux,solaris,macosx"/>
<!-- Can be mapped to non-privileged ports, then use firewall rules to forward
requests from the standard ports -->
<!--
<tcpipSMB port="1445" platforms="linux,solaris,macosx"/>
<tcpipSMB port="1445" ipv6="${cifs.ipv6}" platforms="linux,solaris,macosx"/>
<netBIOSSMB sessionPort="1139" namePort="1137" datagramPort="1138" platforms="linux,solaris,macosx"/>
-->
<hostAnnounce interval="5"/>
<!-- Announce the server to the workgroup/domain -->
<!-- Use enabled="false" attribute to disable announcements -->
<hostAnnounce interval="5" enabled="${cifs.hostannounce}"/>
<!-- Use Win32 NetBIOS interface on Windows -->
<Win32NetBIOS/>
<Win32Announce interval="5"/>
<!-- Announce the server to the workgroup/domain -->
<!-- Use enabled="false" attribute to disable announcements -->
<Win32Announce interval="5" enabled="${cifs.hostannounce}"/>
<!-- CIFS authentication -->
<authenticator type="enterprise">
</authenticator>
<!-- Available types are 'alfresco', 'passthru' and 'enterprise' -->
<authenticator type="enterprise"/>
<!--
<!-- CIFS Passthru authentication sample -->
<!-- Also see the <DomainMappings> config in the 'Filesystem Security' section below -->
<!--
<authenticator type="passthru">
<Server>ALFRESCO\adsrv1,ADOMAIN\adsrv2,adsrv1</Server>
<protocolOrder>TCPIP,NetBIOS</protocolOrder>
<offlineCheckInterval>60</offlineCheckInterval>
</authenticator>
-->
<!-- CIFS Enterprise authentication sample with Kerberos -->
<!--
<authenticator type="enterprise"/>
<KDC>192.168.1.240</KDC>
<Realm>WIN2003.ALFRESCO.ORG</Realm>
<Password>password</Password>
<kerberosDebug/>
</authenticator>
-->
<!-- Disable the use of asynchronous sockets/NIO code -->
<!--
<disableNIO/>
-->
<!-- Disable the use of JNI code -->
<!-- Only currently affects Windows -->
<!--
<disableNativeCode/>
-->
<!-- Session timeout, in seconds -->
<!-- Defaults to 15 minutes, to match the default Windows client setting -->
<!-- If no I/O is received within that time the session is closed by the server -->
<!--
<sessionTimeout>300</sessionTimeout>
-->
<!-- Enable WINS if used for NetBIOS name lookups -->
<!--
<WINS>
<primary>1.2.3.4</primary>
<secondary>5.6.7.8</secondary>
</WINS>
-->
-->
<!-- CIFS server debug settings -->
<!-- Enable 'log4j.logger.org.alfresco.fileserver=debug' in log4j.properties file -->
<!--
<sessionDebug flags="Negotiate,Socket"/>
-->
</config>
<config evaluator="string-compare" condition="FTP Server">
@@ -49,19 +101,30 @@
-->
<!-- FTP authentication -->
<!-- Available types are 'alfresco' and 'passthru' -->
<authenticator type="alfresco"/>
<!-- <debug flags="File,Search,Error,Directory,Info,DataPort"/> -->
<!-- FTP server debug settings -->
<!-- Enable 'log4j.logger.org.alfresco.fileserver=debug' in log4j.properties file -->
<!--
<debug flags="File,Search,Error,Directory,Info,DataPort"/>
-->
</config>
<config evaluator="string-compare" condition="NFS Server">
<serverEnable enabled="${nfs.enabled}"/>
<!-- Map NFS user/group ids to Alfresco users -->
<rpcAuthenticator>
<userMappings>
<user name="admin" uid="0" gid="0"/>
</userMappings>
</rpcAuthenticator>
</config>
<config evaluator="string-compare" condition="Filesystems">
<filesystems>
<!-- Alfresco repository access shared filesystem -->
<filesystem name="${filesystem.name}">
<store>workspace://SpacesStore</store>
@@ -69,7 +132,7 @@
<!-- Add a URL file to each folder that links back to the web client -->
<urlFile>
<filename>__AlfrescoClient.url</filename>
<filename>__Alfresco.url</filename>
<webpath>http://${localname}:8080/alfresco/</webpath>
</urlFile>
@@ -85,13 +148,27 @@
<!-- JavaScript - run a server-side script -->
<!-- JavaScriptURL - server-side script that generates a URL to the folder using a ticket -->
<!-- to avoid having to logon -->
<!--
<desktopActions>
<global>
<path>alfresco/desktop/Alfresco.exe</path>
<webpath>http://${localname}:8080/alfresco/</webpath>
</global>
<action>
<class>org.alfresco.filesys.repo.desk.CheckInOutDesktopAction</class>
<name>CheckInOut</name>
<filename>__CheckInOut.exe</filename>
</action>
<action>
<class>org.alfresco.filesys.repo.desk.JavaScriptDesktopAction</class>
<name>JavaScriptURL</name>
<filename>__ShowDetails.exe</filename>
<script>alfresco/desktop/showDetails.js</script>
<attributes>anyFiles</attributes>
<preprocess>copyToTarget</preprocess>
</action>
<!-- Other desktop actions which may be enabled -->
<!--
<action>
<class>org.alfresco.filesys.repo.desk.EchoDesktopAction</class>
<name>Echo</name>
@@ -107,11 +184,6 @@
<name>CmdLine</name>
<filename>__AlfrescoCmd.exe</filename>
</action>
<action>
<class>org.alfresco.filesys.repo.desk.CheckInOutDesktopAction</class>
<name>CheckInOut</name>
<filename>__AlfrescoCheckInOut.exe</filename>
</action>
<action>
<class>org.alfresco.filesys.repo.desk.JavaScriptDesktopAction</class>
<name>JavaScript</name>
@@ -120,37 +192,31 @@
<attributes>anyFiles, multiplePaths , allowNoParams</attributes>
<preprocess>confirm, copyToTarget</preprocess>
</action>
<action>
<class>org.alfresco.filesys.repo.desk.JavaScriptDesktopAction</class>
<name>JavaScriptURL</name>
<filename>__AlfrescoDetails.exe</filename>
<script>alfresco/desktop/showDetails.js</script>
<attributes>anyFiles</attributes>
<preprocess>copyToTarget</preprocess>
</action>
-->
</desktopActions>
-->
<!--
<!-- Additional access control of the filesystem -->
<!-- Access type of 'none' will stop the filesystem from showing up for that user/address/protocol -->
<!--
<accessControl default="Write">
<user name="admin" access="Write"/>
<address subnet="90.1.0.0" mask="255.255.0.0" access="Write"/>
<address subnet="192.168.1.0" mask="255.255.255.0" access="Write"/>
</accessControl>
-->
-->
</filesystem>
<!-- AVM virtualization view of all stores/versions for WCM -->
<!-- virtual view can be any of the following: normal, site, staging, author, preview -->
<!-- virtual view stores filter can be any of the following: normal, site, staging, author, preview -->
<avmfilesystem name="AVM">
<virtualView stores="site,staging,author" />
<virtualView stores="site,staging,author"/>
</avmfilesystem>
</filesystems>
</config>
<config evaluator="string-compare" condition="Filesystem Security">
<!-- Domain mappings used for passthri authentication routing -->
<!-- Domain mappings used for passthru authentication routing -->
<!-- Used when the client does not provide a domain name in the NTLM logon -->
<!--
<DomainMappings>
<Domain name="ALFRESCO" subnet="192.168.1.0" mask="192.168.1.255"/>
@@ -164,13 +230,15 @@
</shareMapper>
-->
<!--
<!-- Global access control list -->
<!-- Applied to all filesystems that do not have an <accessControl> block -->
<!-- Access type of 'none' will stop the filesystem from showing up for that user/address/protocol -->
<!--
<globalAccessControl default="None">
<user name="admin" access="Write"/>
<address ip="90.1.0.90" access="Write"/>
<address ip="192.168.1.2" access="Write"/>
</globalAccessControl>
-->
-->
</config>
</alfresco-config>

View File

@@ -85,6 +85,9 @@
<property name="platforms">
<value>linux,solaris,macosx</value>
</property>
<property name="ipv6Enabled">
<value>${cifs.ipv6.enabled}</value>
</property>
</bean>
</property>
<property name="netBIOSSMB">
@@ -108,7 +111,7 @@
</property>
<property name="hostAccouncerEnabled">
<value>true</value>
<value>${cifs.hostannounce}</value>
</property>
<property name="hostAccounceInterval">
<value>5</value>
@@ -119,7 +122,7 @@
<bean class="org.alfresco.filesys.config.Win32NetBIOSConfigBean" />
</property>
<property name="win32HostAnnouncerEnabled">
<value>true</value>
<value>${cifs.hostannounce}</value>
</property>
<property name="win32HostAnnounceInterval">
<value>5</value>
@@ -130,6 +133,25 @@
<ref bean="cifsAuthenticator" />
</property>
<!-- Disable the use of asynchronous sockets/NIO code -->
<property name="disableNIO">
<value>${cifs.disableNIO}</value>
</property>
<!-- Disable the use of JNI code -->
<!-- Only currently affects Windows -->
<property name="disableNativeCode">
<value>${cifs.disableNativeCode}</value>
</property>
<!-- Session timeout, in seconds -->
<!-- Defaults to 15 minutes, to match the default Windows client setting -->
<!-- If no I/O is received within that time the session is closed by the server -->
<property name="sessionTimeout">
<value>${cifs.sessionTimeout}</value>
</property>
<!-- Enable WINS if used for NetBIOS name lookups -->
<property name="WINSConfig">
<bean class="org.alfresco.filesys.config.WINSConfigBean">
<property name="autoDetectEnabled">
@@ -144,9 +166,9 @@
</bean>
</property>
<property name="sessionDebugFlags">
<value>Negotiate,Socket</value>
</property>
<!--
<property name="sessionDebugFlags"> <value>Negotiate,Socket</value> </property>
-->
</bean>
<bean id="ftpServerConfig" class="org.alfresco.filesys.config.FTPConfigBean">
@@ -163,9 +185,13 @@
<ref bean="ftpAuthenticator" />
</property>
<!--property name="debugFlags">
<!-- FTP server debug settings -->
<!-- Enable 'log4j.logger.org.alfresco.fileserver=debug' in log4j.properties file -->
<!--
<property name="debugFlags">
<value>File,Search,Error,Directory,Info,DataPort</value>
</property-->
</property>
-->
</bean>
@@ -173,6 +199,27 @@
<property name="serverEnabled">
<value>${nfs.enabled}</value>
</property>
<!-- Map NFS user/group ids to Alfresco users -->
<property name="rpcAuthenticator">
<bean class="org.alfresco.filesys.auth.nfs.AlfrescoRpcAuthenticator">
<property name="userMappings">
<list>
<bean class="org.alfresco.filesys.auth.nfs.UserMapping">
<property name="name">
<value>${alfresco_user_store.adminusername}</value>
</property>
<property name="uid">
<value>0</value>
</property>
<property name="gid">
<value>0</value>
</property>
</bean>
</list>
</property>
</bean>
</property>
</bean>
<bean id="filesystemContexts" class="org.springframework.beans.factory.config.ListFactoryBean">
@@ -184,17 +231,17 @@
<value>${filesystem.name}</value>
</property>
<property name="storeName">
<value>workspace://SpacesStore</value>
<value>${spaces.store}</value>
</property>
<property name="rootPath">
<value>/app:company_home</value>
<value>/${spaces.company_home.childname}</value>
</property>
<!-- Add a URL file to each folder that links back to the web client -->
<property name="URLFileName">
<value>__AlfrescoClient.url</value>
<value>__Alfresco.url</value>
</property>
<property name="URLPrefix">
<value>http://${localname}:8080/alfresco/</value>
<value>${cifs.urlfile.prefix}</value>
</property>
<!-- Mark locked files as offline -->
<property name="offlineFiles">
@@ -210,19 +257,45 @@
<!-- JavaScript - run a server-side script -->
<!-- JavaScriptURL - server-side script that generates a URL to the folder using a ticket -->
<!-- to avoid having to logon -->
<!--
<property name="globalDesktopActionConfig">
<bean class="org.alfresco.filesys.config.GlobalDesktopActionConfigBean">
<property name="path">
<value>alfresco/desktop/Alfresco.exe</value>
</property>
<property name="webpath">
<value>http://${localname}:8080/alfresco/</value>
<value>${cifs.urlfile.prefix}</value>
</property>
</bean>
</property>
<property name="desktopActions">
<property name="desktopActionList">
<list>
<bean class="org.alfresco.filesys.repo.desk.CheckInOutDesktopAction">
<property name="name">
<value>CheckInOut</value>
</property>
<property name="filename">
<value>__CheckInOut.exe</value>
</property>
</bean>
<bean class="org.alfresco.filesys.repo.desk.JavaScriptDesktopAction">
<property name="name">
<value>JavaScriptURL</value>
</property>
<property name="filename">
<value>__ShowDetails.exe</value>
</property>
<property name="scriptName">
<value>alfresco/desktop/showDetails.js</value>
</property>
<property name="attributeList">
<value>anyFiles</value>
</property>
<property name="preprocess">
<value>copyToTarget</value>
</property>
</bean>
<!-- Other desktop actions which may be enabled -->
<!--
<bean class="org.alfresco.filesys.repo.desk.EchoDesktopAction">
<property name="name">
<value>Echo</value>
@@ -247,14 +320,6 @@
<value>__AlfrescoCmd.exe</value>
</property>
</bean>
<bean class="org.alfresco.filesys.repo.desk.CheckInOutDesktopAction">
<property name="name">
<value>CheckInOut</value>
</property>
<property name="filename">
<value>__AlfrescoCheckInOut.exe</value>
</property>
</bean>
<bean class="org.alfresco.filesys.repo.desk.JavaScriptDesktopAction">
<property name="name">
<value>JavaScript</value>
@@ -265,34 +330,19 @@
<property name="scriptName">
<value>alfresco/desktop/dumpRequest.js</value>
</property>
<property name="attributes">
<property name="attributeList">
<value>anyFiles, multiplePaths, allowNoParams</value>
</property>
<property name="preProcessActions">
<property name="preprocess">
<value>confirm, copyToTarget</value>
</property>
</bean>
<bean class="org.alfresco.filesys.repo.desk.JavaScriptDesktopAction">
<property name="name">
<value>JavaScriptURL</value>
</property>
<property name="filename">
<value>__AlfrescoDetails.exe</value>
</property>
<property name="scriptName">
<value>alfresco/desktop/showDetails.js</value>
</property>
<property name="attributes">
<value>anyFiles</value>
</property>
<property name="preProcessActions">
<value>copyToTarget</value>
</property>
</bean>
-->
</list>
</property>
-->
<!--
<!-- Additional access control of the filesystem -->
<!-- Access type of 'none' will stop the filesystem from showing up for that user/address/protocol -->
<!--
<property name="defaultAccessLevel">
<value>Write</value>
</property>
@@ -308,10 +358,10 @@
</bean>
<bean class="org.alfresco.jlan.server.auth.acl.IpAddressAccessControl">
<property name="subNet">
<value>90.1.0.0</value>
<value>192.168.1.0</value>
</property>
<property name="netMask">
<value>255.255.0.0</value>
<value>255.255.255.0</value>
</property>
<property name="access">
<value>Write</value>
@@ -319,10 +369,10 @@
</bean>
</list>
</property>
-->
-->
</bean>
<!-- AVM virtualization view of all stores/versions for WCM -->
<!-- virtual view can be any of the following: normal, site, staging, author, preview -->
<!-- virtual view stores filter can be any of the following: normal, site, staging, author, preview -->
<bean class="org.alfresco.filesys.avm.AVMContext">
<property name="deviceName">
<value>AVM</value>
@@ -340,7 +390,8 @@
<bean id="fileSecurityConfig" class="org.alfresco.filesys.config.SecurityConfigBean">
<!-- Domain mappings used for passthru authentication routing -->
<!--
<!-- Used when the client does not provide a domain name in the NTLM logon -->
<!--
<property name="domainMappings">
<list>
<bean class="org.alfresco.filesys.config.DomainMappingConfigBean">
@@ -356,6 +407,10 @@
</bean>
</list>
</property>
-->
<!-- Custom share mapper when multi-tenancy is enabled -->
<!--
<property name="shareMapper">
<bean class="org.alfresco.filesys.alfresco.MultiTenantShareMapper">
<property name="serverConfiguration">
@@ -366,6 +421,12 @@
</property>
</bean>
</property>
-->
<!-- Global access control list -->
<!-- Applied to all filesystems that do not have an accessControl property -->
<!-- Access type of 'none' will stop the filesystem from showing up for that user/address/protocol -->
<!--
<property name="globalDefaultAccessLevel">
<value>None</value>
</property>
@@ -381,10 +442,10 @@
</bean>
<bean class="org.alfresco.jlan.server.auth.acl.IpAddressAccessControl">
<property name="subNet">
<value>90.1.0.0</value>
<value>192.168.1.2</value>
</property>
<property name="netMask">
<value>90.1.0.90</value>
<value>255.255.255.0</value>
</property>
<property name="access">
<value>Write</value>
@@ -392,7 +453,7 @@
</bean>
</list>
</property>
-->
-->
</bean>
</beans>

View File

@@ -6,6 +6,16 @@ cifs.domain=
cifs.broadcast=255.255.255.255
# An empty value indicates bind to all available network adapters
cifs.bindto=
cifs.ipv6.enabled=false
cifs.hostannounce=true
# Enable the use of asynchronous sockets/NIO code
cifs.disableNIO=false
# Disable the use of JNI code. Only currently affects Windows
cifs.disableNativeCode=false
# Session timeout, in seconds. Defaults to 15 minutes, to match the default Windows client setting.
# If no I/O is received within that time the session is closed by the server
cifs.sessionTimeout=900
# Can be mapped to non-privileged ports, then use firewall rules to forward requests from the standard ports
cifs.tcpipSMB.port=445
cifs.netBIOSSMB.sessionPort=139
@@ -21,3 +31,5 @@ ftp.enabled=true
ftp.port=21
nfs.enabled=false
cifs.urlfile.prefix=http://${localname}:8080/alfresco/

View File

@@ -136,6 +136,9 @@
<property name="protocolOrder">
<value>${ldap.passthru.authentication.protocolOrder}</value>
</property>
<property name="nullDomainUseAnyServer">
<value>true</value>
</property>
</bean>
<!-- CIFS authentication and SMB session listener -->

View File

@@ -39,6 +39,9 @@
<property name="protocolOrder">
<value>${passthru.authentication.protocolOrder}</value>
</property>
<property name="nullDomainUseAnyServer">
<value>true</value>
</property>
</bean>
<!-- The authentication component. -->

View File

@@ -37,7 +37,6 @@ import org.alfresco.jlan.server.filesys.DiskInterface;
import org.alfresco.jlan.server.filesys.FileSystem;
import org.alfresco.jlan.server.filesys.SrvDiskInfo;
import org.alfresco.jlan.server.filesys.pseudo.PseudoFileInterface;
import org.springframework.beans.factory.InitializingBean;
/**
@@ -47,7 +46,7 @@ import org.springframework.beans.factory.InitializingBean;
*
* @author GKSpencer
*/
public abstract class AlfrescoContext extends DiskDeviceContext implements InitializingBean
public abstract class AlfrescoContext extends DiskDeviceContext
{
// Token name to substitute current servers DNS name or TCP/IP address into the webapp URL
@@ -71,6 +70,7 @@ public abstract class AlfrescoContext extends DiskDeviceContext implements Initi
private GlobalDesktopActionConfigBean m_globalDesktopActionConfig = new GlobalDesktopActionConfigBean();
private DesktopActionTable m_desktopActions;
private List<DesktopAction> m_desktopActionsToInitialize;
// I/O control handler
@@ -94,8 +94,27 @@ public abstract class AlfrescoContext extends DiskDeviceContext implements Initi
enableChangeHandler(!disableChangeNotification);
}
public void afterPropertiesSet()
/**
* Complete initialization by registering with a disk driver
*/
public void initialize(AlfrescoDiskDriver filesysDriver)
{
if (m_desktopActionsToInitialize != null)
{
for (DesktopAction desktopAction : m_desktopActionsToInitialize)
{
// Initialize the desktop action
try
{
desktopAction.initializeAction(filesysDriver, this);
}
catch (DesktopActionException ex)
{
throw new AlfrescoRuntimeException("Failed to initialize desktop action", ex);
}
addDesktopAction(desktopAction);
}
}
}
/**
@@ -400,19 +419,12 @@ public abstract class AlfrescoContext extends DiskDeviceContext implements Initi
*
* @param desktopActions DesktopAction List
*/
public final void setDesktopActions(List<DesktopAction> desktopActions)
public final void setDesktopActionList(List<DesktopAction> desktopActions)
{
// Enumerate the desktop actions and add to this filesystem
for (DesktopAction desktopAction : desktopActions)
{
addDesktopAction(desktopAction);
m_desktopActionsToInitialize = desktopActions;
}
// Note it is assumed that a AlfrescoDiskDriver.register() call will initialise the I/O control handler
}
protected void setGlobalDesktopActionConfig(GlobalDesktopActionConfigBean desktopActionConfig)
public void setGlobalDesktopActionConfig(GlobalDesktopActionConfigBean desktopActionConfig)
{
m_globalDesktopActionConfig = desktopActionConfig;
}
@@ -424,6 +436,8 @@ public abstract class AlfrescoContext extends DiskDeviceContext implements Initi
}
/**
* Create the I/O control handler for this filesystem type
*

View File

@@ -29,6 +29,8 @@ import javax.transaction.UserTransaction;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.filesys.state.FileStateReaper;
import org.alfresco.jlan.server.SrvSession;
import org.alfresco.jlan.server.core.DeviceContext;
import org.alfresco.jlan.server.core.DeviceContextException;
import org.alfresco.jlan.server.filesys.IOControlNotImplementedException;
import org.alfresco.jlan.server.filesys.IOCtlInterface;
import org.alfresco.jlan.server.filesys.NetworkFile;
@@ -346,4 +348,20 @@ public abstract class AlfrescoDiskDriver implements IOCtlInterface, Transactiona
sess.setTransaction( this);
}
/**
* Registers a device context object for this instance
* of the shared device. The same DeviceInterface implementation may be used for multiple
* shares. In this base class, we initialize all desktop actions.
*
* @param ctx the context
* @exception DeviceContextException
*/
public void registerContext(DeviceContext ctx) throws DeviceContextException
{
if (ctx instanceof AlfrescoContext)
{
((AlfrescoContext) ctx).initialize(this);
}
}
}

View File

@@ -30,21 +30,20 @@ import java.net.InetAddress;
import java.net.URL;
import java.net.URLDecoder;
import org.alfresco.config.ConfigElement;
import org.alfresco.jlan.server.filesys.DiskSharedDevice;
import org.alfresco.jlan.server.filesys.pseudo.LocalPseudoFile;
import org.alfresco.jlan.server.filesys.pseudo.PseudoFile;
import org.alfresco.config.ConfigElement;
import org.alfresco.service.ServiceRegistry;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.InitializingBean;
/**
* Desktop Action Class
*
* @author gkspencer
*/
public abstract class DesktopAction implements InitializingBean{
public abstract class DesktopAction {
// Logging
@@ -118,7 +117,6 @@ public abstract class DesktopAction implements InitializingBean{
// Filesystem driver and context
private DiskSharedDevice m_diskSharedDevice;
private AlfrescoDiskDriver m_filesysDriver;
private AlfrescoContext m_filesysContext;
@@ -312,13 +310,14 @@ public abstract class DesktopAction implements InitializingBean{
public void initializeAction(ConfigElement global, ConfigElement config, DiskSharedDevice fileSys)
throws DesktopActionException
{
if ( !(fileSys.getContext() instanceof AlfrescoContext))
throw new DesktopActionException("Desktop action requires an Alfresco filesystem driver");
// Perform standard initialization
standardInitialize(global, config, fileSys);
// Complete initialization
afterPropertiesSet();
initializeAction((AlfrescoDiskDriver) fileSys.getDiskInterface(), (AlfrescoContext) fileSys.getDiskContext());
}
/**
@@ -332,8 +331,6 @@ public abstract class DesktopAction implements InitializingBean{
public void standardInitialize(ConfigElement global, ConfigElement config, DiskSharedDevice fileSys)
throws DesktopActionException
{
setDiskSharedDevice(fileSys);
// Check for standard config values
ConfigElement elem = config.getChild("name");
if ( elem != null && elem.getValue().length() > 0)
@@ -380,20 +377,17 @@ public abstract class DesktopAction implements InitializingBean{
}
public void afterPropertiesSet() throws DesktopActionException
/**
* Initialize the desktop action
*
* @exception DesktopActionException
*/
public void initializeAction(AlfrescoDiskDriver filesysDriver, AlfrescoContext filesysContext) throws DesktopActionException
{
if (m_diskSharedDevice == null)
throw new DesktopActionException("Desktop action requires an Alfresco filesystem driver");
// Save the filesystem device and I/O handler
if ( m_diskSharedDevice.getContext() instanceof AlfrescoContext)
{
m_filesysDriver = (AlfrescoDiskDriver) m_diskSharedDevice.getDiskInterface();
m_filesysContext = (AlfrescoContext) m_diskSharedDevice.getDiskContext();
}
else
throw new DesktopActionException("Desktop action requires an Alfresco filesystem driver");
m_filesysDriver = filesysDriver;
m_filesysContext = filesysContext;
// Check for standard config values
@@ -602,15 +596,6 @@ public abstract class DesktopAction implements InitializingBean{
m_debug = ena;
}
/**
* Sets the disk shared device.
* @param diskSharedDevice
*/
public void setDiskSharedDevice(DiskSharedDevice diskSharedDevice)
{
m_diskSharedDevice = diskSharedDevice;
}
/**
* Set the webapp URL
*
@@ -663,4 +648,5 @@ public abstract class DesktopAction implements InitializingBean{
return str.toString();
}
}

View File

@@ -69,6 +69,8 @@ public class PassthruServerFactory implements FactoryBean, InitializingBean, Dis
private PassthruServers passthruServers;
private boolean nullDomainUseAnyServer;
/**
* Sets the timeout for opening a session to an authentication server
*
@@ -124,6 +126,17 @@ public class PassthruServerFactory implements FactoryBean, InitializingBean, Dis
this.offlineCheckInterval = offlineCheckInterval;
}
/**
* Set the null domain to use any available server option
*
* @param nullDomain boolean
*/
public final void setNullDomainUseAnyServer( boolean nullDomain)
{
this.nullDomainUseAnyServer = nullDomain;
}
/**
* Set the protocol order for passthru connections
*
@@ -234,6 +247,8 @@ public class PassthruServerFactory implements FactoryBean, InitializingBean, Dis
passthruServers.setConnectionTimeout(this.timeout);
}
passthruServers.setNullDomainUseAnyServer(this.nullDomainUseAnyServer);
// Check if a server name has been specified
String srvList = null;

View File

@@ -478,10 +478,6 @@ public class AlfrescoRpcAuthenticator implements RpcAuthenticator, InitializingB
// Process the user list
for ( UserMapping userElem : this.userMappings)
{
// Validate the element type
if ( userElem.getName().equalsIgnoreCase( "user"))
{
// Get the user name, user id and group id
@@ -511,9 +507,6 @@ public class AlfrescoRpcAuthenticator implements RpcAuthenticator, InitializingB
logger.debug("Ignored duplicate mapping for uid=" + userElem.getUid() + ", gid=" + userElem.getGid());
}
}
else
throw new InvalidConfigurationException( "Invalid user mapping, " + userElem.getName());
}
}
// Make sure there are some user mappings

View File

@@ -29,6 +29,7 @@ import java.util.StringTokenizer;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.filesys.alfresco.AlfrescoContext;
import org.alfresco.filesys.alfresco.AlfrescoDiskDriver;
import org.alfresco.filesys.alfresco.IOControlHandler;
import org.alfresco.filesys.state.FileState;
import org.alfresco.filesys.state.FileStateTable;
@@ -126,8 +127,6 @@ public class AVMContext extends AlfrescoContext
// Set the store version to use
setVersion(version);
afterPropertiesSet();
}
/**
@@ -146,8 +145,6 @@ public class AVMContext extends AlfrescoContext
// Enable the virtualization view
setVirtualView(true);
setShowOptions(showOptions);
afterPropertiesSet();
}
public void setStorePath(String path)
@@ -213,10 +210,10 @@ public class AVMContext extends AlfrescoContext
m_createStore = createStore;
}
@Override
public void afterPropertiesSet()
{
@Override
public void initialize(AlfrescoDiskDriver filesysDriver)
{
if (m_virtualView)
{
// A context for a view onto all stores/versions within AVM.
@@ -241,7 +238,7 @@ public class AVMContext extends AlfrescoContext
setShareName(m_storePath + "(" + m_version + ")");
}
super.afterPropertiesSet();
super.initialize(filesysDriver);
}
/**

View File

@@ -426,9 +426,12 @@ public class AVMDiskDriver extends AlfrescoDiskDriver implements DiskInterface
* @param context the device context
* @exception DeviceContextException
*/
@Override
public void registerContext(DeviceContext ctx)
throws DeviceContextException
{
super.registerContext(ctx);
AVMContext context = (AVMContext)ctx;
// Use the system user as the authenticated context for the filesystem initialization
@@ -625,7 +628,6 @@ public class AVMDiskDriver extends AlfrescoDiskDriver implements DiskInterface
{
AuthenticationUtil.popAuthentication();
}
}
/**

View File

@@ -499,7 +499,7 @@ public class CIFSConfigBean
*
* @return the session timeout
*/
protected Integer getSessionTimeout()
public Integer getSessionTimeout()
{
return sessionTimeout;
}
@@ -510,7 +510,7 @@ public class CIFSConfigBean
* @param sessionTimeout
* the new session timeout
*/
protected void setSessionTimeout(Integer sessionTimeout)
public void setSessionTimeout(Integer sessionTimeout)
{
this.sessionTimeout = sessionTimeout;
}

View File

@@ -28,6 +28,7 @@ import java.util.List;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.filesys.alfresco.AlfrescoContext;
import org.alfresco.filesys.alfresco.AlfrescoDiskDriver;
import org.alfresco.filesys.alfresco.IOControlHandler;
import org.alfresco.jlan.server.auth.acl.AccessControl;
import org.alfresco.jlan.server.core.DeviceContextException;
@@ -100,8 +101,6 @@ public class ContentContext extends AlfrescoContext
setStoreName(storeName);
setRootPath(rootPath);
setRootNodeRef(rootNodeRef);
afterPropertiesSet();
}
public void setStoreName(String name)
@@ -148,9 +147,9 @@ public class ContentContext extends AlfrescoContext
@Override
public void afterPropertiesSet()
public void initialize(AlfrescoDiskDriver filesysDriver)
{
super.afterPropertiesSet();
super.initialize(filesysDriver);
if (m_storeName == null || m_storeName.length() == 0)
{

View File

@@ -426,8 +426,6 @@ public class ContentDiskDriver extends AlfrescoDiskDriver implements DiskInterfa
context.setDisableNodeMonitor(true);
}
context.afterPropertiesSet();
registerContext(context);
// Return the context for this shared filesystem
@@ -444,8 +442,11 @@ public class ContentDiskDriver extends AlfrescoDiskDriver implements DiskInterfa
* @param ctx the context
* @exception DeviceContextException
*/
@Override
public void registerContext(DeviceContext ctx) throws DeviceContextException
{
super.registerContext(ctx);
ContentContext context = (ContentContext)ctx;
// Wrap the initialization in a transaction

View File

@@ -35,6 +35,8 @@ import java.util.Map;
import java.util.StringTokenizer;
import org.alfresco.config.ConfigElement;
import org.alfresco.filesys.alfresco.AlfrescoContext;
import org.alfresco.filesys.alfresco.AlfrescoDiskDriver;
import org.alfresco.filesys.alfresco.DesktopAction;
import org.alfresco.filesys.alfresco.DesktopActionException;
import org.alfresco.filesys.alfresco.DesktopParams;
@@ -42,7 +44,6 @@ import org.alfresco.filesys.alfresco.DesktopResponse;
import org.alfresco.jlan.server.filesys.DiskSharedDevice;
import org.alfresco.scripts.ScriptException;
import org.alfresco.service.cmr.repository.ScriptService;
import org.alfresco.service.transaction.TransactionService;
/**
* Javascript Desktop Action Class
@@ -126,7 +127,7 @@ public class JavaScriptDesktopAction extends DesktopAction {
throw new DesktopActionException("Empty desktop action attributes");
// Parse the attribute string
setAttributes(elem.getValue());
setAttributeList(elem.getValue());
}
// Check if the desktop action pre-processing options have been specified
@@ -134,16 +135,17 @@ public class JavaScriptDesktopAction extends DesktopAction {
elem = config.getChild("preprocess");
if ( elem != null)
{
setPreProcessActions(elem.getValue());
setPreprocess(elem.getValue());
}
}
@Override
public void afterPropertiesSet() throws DesktopActionException
public void initializeAction(AlfrescoDiskDriver filesysDriver, AlfrescoContext filesysContext)
throws DesktopActionException
{
// Perform standard initialization
super.afterPropertiesSet();
super.initializeAction(filesysDriver, filesysContext);
// Get the script file name and check that it exists
@@ -368,7 +370,7 @@ public class JavaScriptDesktopAction extends DesktopAction {
*
* @param name String
*/
protected final void setScriptName(String name)
public final void setScriptName(String name)
{
m_scriptName = name;
}
@@ -379,7 +381,7 @@ public class JavaScriptDesktopAction extends DesktopAction {
* @param attributes String
* @throws DesktopActionException
*/
protected void setAttributes(String attributes) throws DesktopActionException
public void setAttributeList(String attributes) throws DesktopActionException
{
// Check if the attribute string is empty
if ( attributes == null || attributes.length() == 0)
@@ -431,7 +433,7 @@ public class JavaScriptDesktopAction extends DesktopAction {
* @param preProcessActions String
* @throws DesktopActionException
*/
protected void setPreProcessActions(String preProcessActions) throws DesktopActionException
public void setPreprocess(String preProcessActions) throws DesktopActionException
{
// Check if the pre-process string is empty