新しく作成した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
サンプルスクリプトですべてのことを行うコードを見つけることができます。上に貼り付けたコードは、実際には同じスクリプトのものです。
利点は、すべてのことを実行時に再起動せずに実行できることです。各インスタンスで同じコードを実行する必要があるという欠点があります。