我想为不同的环境创建吊索:osgiconfig。我知道这些文件夹必须遵循命名约定config.<runmode/environment>.<author/publish>
。我们有不同的环境,例如https://test1-myapp.app.com或https://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节点,无论环境如何。
由于
答案 0 :(得分:1)
这意味着您的服务器在默认运行模式/安装运行模式上运行时正在运行。
发布是因为它是一个发布实例,而 nosamplecontent 通常用于您不希望安装示例内容的生产安装。
这些是固定的运行模式,一旦安装它们,之后就无法更改。
但是,您可以通过Sling Properties文件sling.run.modes=dev,author
或在启动脚本中添加系统属性(如-Dsling.run.modes=stage,publish
)来定义您自己的运行模式,例如dev或stage。有关这方面的更多信息,请found here。
使用默认的runmodes,很难为不同的实例配置不同的配置。你只能为作者提供2个配置,而另一个用于发布。
根据定义的运行模式选择配置,因此您的代码将在适用于不同环境的任何地方获取适当的配置。