我得到了新创建的Magnolia实例。我试图通过捆绑的groovy脚本创建一个应用程序,并将新闻发布到公共实例。我得到这个错误从作者实例向公众发布工作空间
它的发生是因为“ebtnews”工作空间不是从作家同步到私人。所以问题是如何将工作区从作者同步到私人?
我得到了新创建的Magnolia实例。我试图通过捆绑的groovy脚本创建一个应用程序,并将新闻发布到公共实例。我得到这个错误从作者实例向公众发布工作空间
它的发生是因为“ebtnews”工作空间不是从作家同步到私人。所以问题是如何将工作区从作者同步到私人?
我所做的是每当我在作者实例的模块定义xml中添加一个新的工作空间时,我确信我也在公共实例的模块定义xml中添加了此工作空间。然后需要重新启动作者和公共实例以创建新的工作区。
或者,你可以运行通过常规控制台/脚本如下:
// 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)
你也想注册工作区基本保障的权利,将其设置在用户工作区映射,使激活,并可能包括/在更新公共实例上的内容时将其从用于刷新缓存的触发器列表中排除。
您可以在groovy模块中的createAppScript
示例脚本中找到所有代码。我上面粘贴的代码实际上来自同一个脚本。
好处是您可以在运行时不做任何重新启动。缺点是,你需要在每个实例上运行相同的代码。