将作者实例中的工作区发布到 public

Publish workspace from Author instance to public

我得到了新创建的 Magnolia 实例。我试图通过捆绑的 groovy 脚本创建一个应用程序并将新闻发布到 public 实例。我收到这个错误

发生这种情况是因为 'ebtnews' 工作区未从作者同步到私人。所以问题是如何将工作区从作者同步到私有?

我所做的是每次我在模块定义 xml 中为我的作者实例添加一个新工作区时,我确保我也在模块定义 xml 中为我的 public实例。然后需要重新启动作者和 public 实例以创建新的工作区。

或者,您可以 运行 通过 groovy console/script:

// create workspace
Components.getSingleton(RepositoryManager.class).createWorkspace(app_repository, app_workspace)
// check we registered all right
appSession = ctx.getJCRSession(app_workspace)
// register node type
nodeTypeManager = appSession.getWorkspace().getNodeTypeManager()
type = NodeTypeTemplateUtil.createSimpleNodeType(nodeTypeManager, app_node_type, Arrays.asList(NodeType.NT_HIERARCHY_NODE, NodeType.MIX_REFERENCEABLE, NodeTypes.Created.NAME, NodeTypes.Activatable.NAME, NodeTypes.LastModified.NAME, NodeTypes.Renderable.NAME))
nodeTypeManager.registerNodeType(type, true)
appSession.save()
// double check it registered all right
nodeTypeManager.getNodeType(app_node_type)

您还需要为工作区注册基本安全权限,将其设置在订阅者工作区映射下以启用激活,并且可能 include/exclude 它来自触发器列表,用于在 [=25] 上更新内容时刷新缓存=]实例.

您可以在 groovy 模块的 createAppScript 示例脚本中找到执行所有这些操作的代码。我上面粘贴的代码实际上来自同一个脚本。

优点是您可以在 运行 时间 w/o 重新启动时完成所有这些操作。缺点,您需要在每个实例上 运行 相同的代码。