从alfresco-global.properties导入另一个属性文件?

时间:2012-06-25 02:23:45

标签: alfresco

Alfresco的属性可以在alfresco-global.properties中设置。

我有一个包含5个节点的集群,每当我必须更改设置(=每天几次)时,我需要对5个节点中的每个节点进行修改。

我想只修改共享NFS驱动器上的单个文件。我想过让alfresco-global.properties成为/nfs/nico/alfresco-global.properties的符号链接,但不幸的是每个节点都有不同的alfresco.jgroups.bind_address

我想将配置分成两个文件:一个特定于每个群集节点的CONF1文件,以及一个通过NFS共享的公共CONF2文件。

问题:如何从CONF1“导入”CONF2?

1 个答案:

答案 0 :(得分:2)

属性文件中没有“导入”机制。要解决您的问题,您确实需要从群集范围内部化特定于节点的属性。您设想通过网络附加FS从所有应用服务器访问同一文件的策略是最简单的解决方案。如果你看core-services-context.xml,你会发现以下内容:

<!-- Global properties used in property expansion throughout the container, overridable via JNDI or System properties -->
<bean id="global-properties" class="org.alfresco.config.JndiPropertiesFactoryBean">
    <property name="locations">
        <list>
            <value>classpath:alfresco/repository.properties</value>
            <value>classpath:alfresco/domain/transaction.properties</value>
            <!-- <value>classpath:alfresco/jndi.properties</value> -->
            <!--  Overrides supplied by modules -->
            <value>classpath*:alfresco/module/*/alfresco-global.properties</value>
            <!--  Installer or user-provided defaults -->
            <value>classpath*:alfresco-global.properties</value>
        </list>
    </property>
    <property name="systemPropertiesModeName">
        <value>SYSTEM_PROPERTIES_MODE_OVERRIDE</value>
    </property>
    [...]
</bean>

您可以在自定义Spring上下文中声明一个新的JndiPropertiesFactoryBean,该上下文从方便的共享位置加载属性文件,或者您可以利用模块属性加载机制并确保您拥有alfresco/module/cluster-defaults/alfresco-global.properties在你的类路径中指向这样一个共享位置。