AEM 6:吊索:基于不同环境的osgiconfig

时间:2015-02-26 23:01:52

标签: aem

我想为不同的环境创建吊索:osgiconfig。我知道这些文件夹必须遵循命名约定config.<runmode/environment>.<author/publish>。我们有不同的环境,例如https://test1-myapp.app.comhttps://dev-myapp.app.com等。我在发布模式下登录其中一个环境以查找runmode,我只能看到[crx3,nosamplecontent,publish,crx3tar]。这是https://test1-myapp.app.com发布环境。我不确定我现在应该给配置文件夹指定什么名称。

此外,一旦我有了它,我打算获取如下所示的属性:

SlingBindings bindings = (SlingBindings) slingRequest.getAttribute(SlingBindings.class.getName());
        SlingScriptHelper sling = bindings.getSling();
        Configuration conf = sling.getService(org.osgi.service.cm.ConfigurationAdmin.class).getConfiguration(pid);
        String[] myProp = (String[]) conf.getProperties().get("paths");

这是否适用于不同的环境,或者它将继续获取相同的吊索:osgiconfig节点,无论环境如何。

由于

1 个答案:

答案 0 :(得分:1)

这意味着您的服务器在默认运行模式/安装运行模式上运行时正在运行。

发布是因为它是一个发布实例,而 nosamplecontent 通常用于您不希望安装示例内容的生产安装。

这些是固定的运行模式,一旦安装它们,之后就无法更改。

但是,您可以通过Sling Properties文件sling.run.modes=dev,author或在启动脚本中添加系统属性(如-Dsling.run.modes=stage,publish)来定义您自己的运行模式,例如dev或stage。有关这方面的更多信息,请found here

使用默认的runmodes,很难为不同的实例配置不同的配置。你只能为作者提供2个配置,而另一个用于发布。

根据定义的运行模式选择配置,因此您的代码将在适用于不同环境的任何地方获取适当的配置。