You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by ch...@apache.org on 2005/11/23 21:13:16 UTC

svn commit: r348547 - in /lenya/trunk/src: java/org/apache/lenya/cms/editors/ java/org/apache/lenya/cms/editors/forms/ modules/lucene/java/src/org/apache/lenya/ modules/lucene/java/src/org/apache/lenya/cms/ modules/lucene/java/src/org/apache/lenya/cms/...

Author: chestnut
Date: Wed Nov 23 12:13:01 2005
New Revision: 348547

URL: http://svn.apache.org/viewcvs?rev=348547&view=rev
Log:
made lucene indexes area (live and authoring) specific,
lucene usecase which can be called as an exit usecase of other usecases

Added:
    lenya/trunk/src/modules/lucene/java/src/org/apache/lenya/
    lenya/trunk/src/modules/lucene/java/src/org/apache/lenya/cms/
    lenya/trunk/src/modules/lucene/java/src/org/apache/lenya/cms/lucene/
    lenya/trunk/src/modules/lucene/java/src/org/apache/lenya/cms/lucene/IndexDocument.java   (with props)
    lenya/trunk/src/webapp/lenya/pubs/default/config/usecases-lucene-index.xconf   (with props)
Modified:
    lenya/trunk/src/java/org/apache/lenya/cms/editors/EditDocument.java
    lenya/trunk/src/java/org/apache/lenya/cms/editors/forms/OneFormEditor.java
    lenya/trunk/src/modules/lucene/usecases/lucene/usecase.xmap
    lenya/trunk/src/webapp/WEB-INF/cocoon-xconf.xsl
    lenya/trunk/src/webapp/lenya/pubs/default/config/index_manager_index.xconf
    lenya/trunk/src/webapp/lenya/pubs/default/config/usecases-workflow-deactivate.xconf
    lenya/trunk/src/webapp/lenya/pubs/default/config/usecases-workflow-publish.xconf
    lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/publication/templating/Instantiator.java
    lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Deactivate.java
    lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Publish.java

Modified: lenya/trunk/src/java/org/apache/lenya/cms/editors/EditDocument.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/editors/EditDocument.java?rev=348547&r1=348546&r2=348547&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/editors/EditDocument.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/editors/EditDocument.java Wed Nov 23 12:13:01 2005
@@ -23,7 +23,6 @@
 import org.apache.lenya.cms.usecase.DocumentUsecase;
 import org.apache.lenya.cms.usecase.UsecaseException;
 import org.apache.lenya.cms.workflow.WorkflowUtil;
-import org.xml.sax.InputSource;
 
 /**
  * Usecase to edit documents.
@@ -55,12 +54,6 @@
                     getLogger(),
                     getSourceDocument(),
                     "edit");
-            
-            //index
-            resolver = (SourceResolver) this.manager.lookup(SourceResolver.ROLE);       
-            source = resolver.resolveURI("cocoon://core/modules/lucene/lucene/index.xml");
-            InputSource xmlInputSource = org.apache.cocoon.components.source.SourceUtil.getInputSource(source);
-
         } finally {
             if (resolver != null) {
                 if (source != null) {

Modified: lenya/trunk/src/java/org/apache/lenya/cms/editors/forms/OneFormEditor.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/editors/forms/OneFormEditor.java?rev=348547&r1=348546&r2=348547&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/editors/forms/OneFormEditor.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/editors/forms/OneFormEditor.java Wed Nov 23 12:13:01 2005
@@ -37,7 +37,6 @@
 import org.apache.lenya.xml.Schema;
 import org.apache.lenya.xml.ValidationUtil;
 import org.w3c.dom.Document;
-import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 
 /**
@@ -119,10 +118,6 @@
                             getLogger(),
                             getSourceDocument(),
                             getEvent());
-                    
-                    //re-index      
-                    indexSource = resolver.resolveURI("cocoon://core/modules/lucene/lucene/index.xml");
-                    InputSource xmlInputSource = org.apache.cocoon.components.source.SourceUtil.getInputSource(indexSource);
                 }
             }
 

Added: lenya/trunk/src/modules/lucene/java/src/org/apache/lenya/cms/lucene/IndexDocument.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/modules/lucene/java/src/org/apache/lenya/cms/lucene/IndexDocument.java?rev=348547&view=auto
==============================================================================
--- lenya/trunk/src/modules/lucene/java/src/org/apache/lenya/cms/lucene/IndexDocument.java (added)
+++ lenya/trunk/src/modules/lucene/java/src/org/apache/lenya/cms/lucene/IndexDocument.java Wed Nov 23 12:13:01 2005
@@ -0,0 +1,89 @@
+/*
+ * Copyright  1999-2005 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+package org.apache.lenya.cms.lucene;
+
+import org.apache.excalibur.source.Source;
+import org.apache.excalibur.source.SourceResolver;
+import org.apache.lenya.cms.cocoon.source.SourceUtil;
+import org.apache.lenya.cms.repository.Node;
+import org.apache.lenya.cms.usecase.DocumentUsecase;
+import org.apache.lenya.cms.usecase.UsecaseException;
+import org.apache.lenya.cms.workflow.WorkflowUtil;
+import org.xml.sax.InputSource;
+
+/**
+ * Usecase to maintain lucene index.
+ */
+public class IndexDocument extends DocumentUsecase {
+
+    /**
+     * The URI to copy the document source from.
+     */
+    public static final String SOURCE_URI = "sourceUri";
+    
+    public static final String INDEX_ACTION = "indexAction";
+    public static final String INDEX = "index";
+    public static final String DELETE = "delete";
+    public static final String INDEX_AREA = "indexArea";
+
+    /**
+     * @see org.apache.lenya.cms.usecase.AbstractUsecase#doExecute()
+     */
+    protected void doExecute() throws Exception {
+        super.doExecute();
+        SourceResolver resolver = null;
+        Source source = null;
+        
+        String action = super.getParameterAsString(INDEX_ACTION);
+        String area = super.getParameterAsString(INDEX_AREA);
+        
+        try {
+            resolver = (SourceResolver) this.manager.lookup(SourceResolver.ROLE);
+            if (action.equals(INDEX)) {
+                //index
+                source = resolver.resolveURI("cocoon://core/modules/lucene/lucene/index-"+area+".xml");
+                InputSource xmlInputSource = org.apache.cocoon.components.source.SourceUtil.getInputSource(source);
+            }
+            else if (action.equals(DELETE)) {
+                //delete
+                source = resolver.resolveURI("cocoon://core/modules/lucene/lucene/delete-"+area+".xml");
+                InputSource xmlInputSource = org.apache.cocoon.components.source.SourceUtil.getInputSource(source);                
+            }
+        } finally {
+            if (resolver != null) {
+                if (source != null) {
+                    resolver.release(source);
+                }
+                this.manager.release(resolver);
+            }
+        }
+    }
+
+    /**
+     * @see org.apache.lenya.cms.usecase.AbstractUsecase#getNodesToLock()
+     */
+    protected Node[] getNodesToLock() throws UsecaseException {
+        if (getLogger().isDebugEnabled()) {
+            getLogger().debug("IndexDocument::getObjectsToLock() called on source document ["
+                    + getSourceDocument().getId() + "]");
+        }
+
+        Node[] objects = { getSourceDocument().getRepositoryNode() };
+        return objects;
+    }
+
+}

Propchange: lenya/trunk/src/modules/lucene/java/src/org/apache/lenya/cms/lucene/IndexDocument.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: lenya/trunk/src/modules/lucene/usecases/lucene/usecase.xmap
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/modules/lucene/usecases/lucene/usecase.xmap?rev=348547&r1=348546&r2=348547&view=diff
==============================================================================
--- lenya/trunk/src/modules/lucene/usecases/lucene/usecase.xmap (original)
+++ lenya/trunk/src/modules/lucene/usecases/lucene/usecase.xmap Wed Nov 23 12:13:01 2005
@@ -89,7 +89,7 @@
       
       <map:match pattern="search.xml">
 	  <map:generate type="search">
-	    <map:parameter name="index" value="{realpath://lenya/pubs/{page-envelope:publication-id}/work/lucene/index}"/>
+	    <map:parameter name="index" value="{realpath://lenya/pubs/{page-envelope:publication-id}/work/lucene/index/{page-envelope:area}/index}"/>
 	  </map:generate>  
  
           <map:transform src="fallback://lenya/modules/lucene/xslt/search2html.xsl">	  
@@ -114,7 +114,7 @@
           <map:serialize type="xml"/>
       </map:match>
 
-      <map:match pattern="index.xml">
+      <map:match pattern="index-*.xml">
           <map:aggregate element="cmsbody">
 	    <!-- TODO Use the standard pipeline for retieving the document -->
 	    <!-- <map:part src="cocoon:/modules/{page-envelope:document-type}/view.xml"/> -->
@@ -123,7 +123,7 @@
           </map:aggregate>
 	  
 	  <map:transform src="fallback://lenya/modules/lucene/xslt/{page-envelope:document-type}2index.xsl">
-	    <map:parameter name="index" value="{page-envelope:publication-id}"/>
+	    <map:parameter name="index" value="{page-envelope:publication-id}-{1}"/>
 	    <map:parameter name="action" value="index"/>
 	    <map:parameter name="url" value="{request:requestURI}"/>
 	    <map:parameter name="id" value="{page-envelope:document-url}"/>
@@ -133,7 +133,7 @@
 	  <map:serialize type="xml"/>
       </map:match>
       
-      <map:match pattern="delete.xml">
+      <map:match pattern="delete-*.xml">
           <map:aggregate element="cmsbody">
 	    <!-- TODO Use the standard pipeline for retieving the document -->
 	    <!-- <map:part src="cocoon:/modules/{page-envelope:document-type}/view.xml"/> -->
@@ -142,7 +142,7 @@
           </map:aggregate>
 	  
 	  <map:transform src="fallback://lenya/modules/lucene/xslt/{page-envelope:document-type}2index.xsl">
-	    <map:parameter name="index" value="{page-envelope:publication-id}"/>
+	    <map:parameter name="index" value="{page-envelope:publication-id}-{1}"/>
 	    <map:parameter name="action" value="delete"/>
 	    <map:parameter name="url" value="{request:requestURI}"/>
 	    <map:parameter name="id" value="{page-envelope:document-url}"/>

Modified: lenya/trunk/src/webapp/WEB-INF/cocoon-xconf.xsl
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/WEB-INF/cocoon-xconf.xsl?rev=348547&r1=348546&r2=348547&view=diff
==============================================================================
--- lenya/trunk/src/webapp/WEB-INF/cocoon-xconf.xsl (original)
+++ lenya/trunk/src/webapp/WEB-INF/cocoon-xconf.xsl Wed Nov 23 12:13:01 2005
@@ -423,9 +423,19 @@
     </component-instance>
     <component-instance name="site.delete" logger="lenya.site" class="org.apache.lenya.cms.site.usecases.Delete">
       <view template="usecases/site/delete.jx"/>
+      <exit usecase="lucene.index">
+        <parameter name="indexAction" value="delete"/>
+        <parameter name="indexArea" value="authoring"/>
+        <parameter name="lenya.exitUsecase" value="tab.overview"/>
+      </exit>
     </component-instance>
     <component-instance name="site.deleteLanguage" logger="lenya.site" class="org.apache.lenya.cms.site.usecases.DeleteLanguage">
       <view template="usecases/site/deleteLanguage.jx"/>
+      <exit usecase="lucene.index">
+        <parameter name="indexAction" value="delete"/>
+        <parameter name="indexArea" value="authoring"/>
+        <parameter name="lenya.exitUsecase" value="tab.overview"/>
+      </exit>
     </component-instance>
     <component-instance name="site.changeLabel" logger="lenya.site" class="org.apache.lenya.cms.site.usecases.ChangeLabel">
       <view template="usecases/site/changeLabel.jx"/>
@@ -435,6 +445,11 @@
     </component-instance>
     <component-instance name="site.cut" logger="lenya.site" class="org.apache.lenya.cms.site.usecases.Cut">
       <view template="usecases/site/cut.jx"/>
+      <exit usecase="lucene.index">
+        <parameter name="indexAction" value="delete"/>
+        <parameter name="indexArea" value="authoring"/>
+        <parameter name="lenya.exitUsecase" value="tab.overview"/>
+      </exit>     
     </component-instance>
     <component-instance name="site.copy" logger="lenya.site" class="org.apache.lenya.cms.site.usecases.Copy">
       <view template="usecases/site/copy.jx"/>
@@ -444,9 +459,19 @@
     </component-instance>
     <component-instance name="site.archive" logger="lenya.site" class="org.apache.lenya.cms.site.usecases.Archive">
       <view template="usecases/site/archive.jx"/>
+      <exit usecase="lucene.index">
+        <parameter name="indexAction" value="delete"/>
+        <parameter name="indexArea" value="authoring"/>
+        <parameter name="lenya.exitUsecase" value="tab.overview"/>
+      </exit>      
     </component-instance>
     <component-instance name="site.restore" logger="lenya.site" class="org.apache.lenya.cms.site.usecases.Restore">
       <view template="usecases/site/restore.jx"/>
+      <exit usecase="lucene.index">
+        <parameter name="indexAction" value="index"/>
+        <parameter name="indexArea" value="authoring"/>
+        <parameter name="lenya.exitUsecase" value="tab.overview"/>
+      </exit>
     </component-instance>
     
     <component-instance name="tab.acArchive" logger="lenya.site" class="org.apache.lenya.cms.ac.usecases.AccessControl">
@@ -485,7 +510,11 @@
       <view template="usecases/tab/meta.jx" menu="true">
         <tab group="site" name="meta"/>
       </view>
-      <exit usecase="tab.meta"/>
+      <exit usecase="lucene.index">
+        <parameter name="indexAction" value="index"/>
+        <parameter name="indexArea" value="authoring"/>
+        <parameter name="lenya.exitUsecase" value="tab.meta"/>
+      </exit>
     </component-instance>
     <component-instance name="tab.overview" logger="lenya.site" class="org.apache.lenya.cms.site.usecases.Overview">
       <view template="usecases/tab/overview.jx" menu="true">
@@ -540,23 +569,39 @@
                         class="org.apache.lenya.cms.editors.forms.FormsEditor">
       <transaction policy="pessimistic"/>
       <view template="usecases/edit/forms/forms.jx" menu="false"/>
+      <exit usecase="lucene.index">
+        <parameter name="indexAction" value="index"/>
+        <parameter name="indexArea" value="authoring"/>
+      </exit>
     </component-instance>
     <component-instance name="edit.oneform" logger="lenya.publication"
                         class="org.apache.lenya.cms.editors.forms.OneFormEditor">
       <transaction policy="pessimistic"/>
       <view template="usecases/edit/forms/oneform.jx" menu="false"/>
+      <exit usecase="lucene.index">
+        <parameter name="indexAction" value="index"/>
+        <parameter name="indexArea" value="authoring"/>
+      </exit>
     </component-instance>
 
     <component-instance name="edit.bxe" logger="lenya.publication"
                         class="org.apache.lenya.cms.editors.bxe.BXE">
       <transaction policy="pessimistic"/>
       <view template="usecases/edit/bxe/bxe.jx" menu="false"/>
+      <exit usecase="lucene.index">
+        <parameter name="indexAction" value="index"/>
+        <parameter name="indexArea" value="authoring"/>
+      </exit>
     </component-instance>
 
     <component-instance name="edit.kupu" logger="lenya.publication"
                         class="org.apache.lenya.cms.editors.kupu.Kupu">
       <transaction policy="pessimistic"/>
       <view template="usecases/edit/kupu/kupu.jx" menu="false"/>
+      <exit usecase="lucene.index">
+        <parameter name="indexAction" value="index"/>
+        <parameter name="indexArea" value="authoring"/>
+      </exit>
     </component-instance>
     
     <component-instance name="rollback" logger="lenya.publication"

Modified: lenya/trunk/src/webapp/lenya/pubs/default/config/index_manager_index.xconf
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/pubs/default/config/index_manager_index.xconf?rev=348547&r1=348546&r2=348547&view=diff
==============================================================================
--- lenya/trunk/src/webapp/lenya/pubs/default/config/index_manager_index.xconf (original)
+++ lenya/trunk/src/webapp/lenya/pubs/default/config/index_manager_index.xconf Wed Nov 23 12:13:01 2005
@@ -15,14 +15,25 @@
   limitations under the License.
 -->
 
-  <xconf xpath="/cocoon/index_manager/indexes" remove="/cocoon/index_manager/indexes/index" unless="/cocoon/index_manager/indexes/index[@id = 'default']">
-	<index id="default" analyzer="stopword_en" directory="${basedir}/${build.webapp}/lenya/pubs/default/work/lucene/index" >
-		<structure>
-			<field id="url" type="keyword" />
-			<field id="title" type="text" storetext="true"/>
-			<field id="description" type="text" storetext="true"/>
-			<field id="subject" type="keyword" storetext="true" />					
-			<field id="body" type="text" storetext="true"/>
-		</structure>
-	</index>
+  <xconf xpath="/cocoon/index_manager/indexes" remove="/cocoon/index_manager/indexes/index" unless="/cocoon/index_manager/indexes/index[@id = 'default-live' or @id = 'default-authoring']">
+	
+    <index id="default-live" analyzer="stopword_en" directory="${basedir}/${build.webapp}/lenya/pubs/default/work/lucene/index/live/index" >
+        <structure>
+            <field id="url" type="keyword" />
+            <field id="title" type="text" storetext="true"/>
+            <field id="description" type="text" storetext="true"/>
+            <field id="subject" type="keyword" storetext="true" />					
+            <field id="body" type="text" storetext="true"/>
+        </structure>
+    </index>
+    
+    <index id="default-authoring" analyzer="stopword_en" directory="${basedir}/${build.webapp}/lenya/pubs/default/work/lucene/index/authoring/index" >
+        <structure>
+            <field id="url" type="keyword" />
+            <field id="title" type="text" storetext="true"/>
+            <field id="description" type="text" storetext="true"/>
+            <field id="subject" type="keyword" storetext="true" />					
+            <field id="body" type="text" storetext="true"/>
+        </structure>
+    </index>	
   </xconf>

Added: lenya/trunk/src/webapp/lenya/pubs/default/config/usecases-lucene-index.xconf
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/pubs/default/config/usecases-lucene-index.xconf?rev=348547&view=auto
==============================================================================
--- lenya/trunk/src/webapp/lenya/pubs/default/config/usecases-lucene-index.xconf (added)
+++ lenya/trunk/src/webapp/lenya/pubs/default/config/usecases-lucene-index.xconf Wed Nov 23 12:13:01 2005
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<!--
+  Copyright 1999-2005 The Apache Software Foundation
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+
+<!--
+    This file defines the publication specific use-cases
+-->
+
+  <xconf xpath="/cocoon/usecases" unless="/cocoon/usecases/component-instance[@name = 'default/lucene.index']">
+
+    <component-instance name="default/lucene.index"
+                        logger="lenya.usecases.lucene"
+                        class="org.apache.lenya.cms.lucene.IndexDocument">
+    </component-instance>
+
+  </xconf>

Propchange: lenya/trunk/src/webapp/lenya/pubs/default/config/usecases-lucene-index.xconf
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: lenya/trunk/src/webapp/lenya/pubs/default/config/usecases-workflow-deactivate.xconf
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/pubs/default/config/usecases-workflow-deactivate.xconf?rev=348547&r1=348546&r2=348547&view=diff
==============================================================================
--- lenya/trunk/src/webapp/lenya/pubs/default/config/usecases-workflow-deactivate.xconf (original)
+++ lenya/trunk/src/webapp/lenya/pubs/default/config/usecases-workflow-deactivate.xconf Wed Nov 23 12:13:01 2005
@@ -26,6 +26,10 @@
                         logger="lenya.usecases.workflow"
                         class="org.apache.lenya.defaultpub.cms.usecases.Deactivate">
       <view template="usecases/workflow/deactivate.jx"/>
+      <exit usecase="lucene.index">
+        <parameter name="indexAction" value="delete"/>
+        <parameter name="indexArea" value="live"/>
+      </exit>
     </component-instance>
 
   </xconf>

Modified: lenya/trunk/src/webapp/lenya/pubs/default/config/usecases-workflow-publish.xconf
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/pubs/default/config/usecases-workflow-publish.xconf?rev=348547&r1=348546&r2=348547&view=diff
==============================================================================
--- lenya/trunk/src/webapp/lenya/pubs/default/config/usecases-workflow-publish.xconf (original)
+++ lenya/trunk/src/webapp/lenya/pubs/default/config/usecases-workflow-publish.xconf Wed Nov 23 12:13:01 2005
@@ -26,6 +26,10 @@
                         logger="lenya.usecases.workflow"
                         class="org.apache.lenya.defaultpub.cms.usecases.Publish">
       <view template="usecases/workflow/publish.jx"/>
+      <exit usecase="lucene.index">
+        <parameter name="indexAction" value="index"/>
+        <parameter name="indexArea" value="live"/>
+      </exit>      
     </component-instance>
 
   </xconf>

Modified: lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/publication/templating/Instantiator.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/publication/templating/Instantiator.java?rev=348547&r1=348546&r2=348547&view=diff
==============================================================================
--- lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/publication/templating/Instantiator.java (original)
+++ lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/publication/templating/Instantiator.java Wed Nov 23 12:13:01 2005
@@ -112,43 +112,45 @@
 
             save(metaDoc, metaSource);
 
-	    // RGE: Soc addition
-	    // First, patch the xconf patchfile with the new publication name
+            // RGE: Soc addition
+            // First, patch the xconf patchfile with the new publication name
 
-	    String indexDir = publicationsUri + newPublicationId + "/work/lucene/index";
-	    indexDir = indexDir.substring(5);
+            String indexDir = publicationsUri + newPublicationId + "/work/lucene/index";
+            indexDir = indexDir.substring(5);
 		    
-	    indexSource = (ModifiableSource) resolver.resolveURI(publicationsUri + "/" + newPublicationId + "/config/index_manager_index.xconf");
+            indexSource = (ModifiableSource) resolver.resolveURI(publicationsUri + "/" + newPublicationId + "/config/index_manager_index.xconf");
             Document indexDoc = DocumentHelper.readDocument(indexSource.getInputStream());
-	    NamespaceHelper indexHelper = new NamespaceHelper(null,"xconf",indexDoc);
+            NamespaceHelper indexHelper = new NamespaceHelper(null,"xconf",indexDoc);
 	    
-	    indexerSource = (ModifiableSource) resolver.resolveURI(publicationsUri + "/" + newPublicationId + "/config/index_manager.xconf");
+            indexerSource = (ModifiableSource) resolver.resolveURI(publicationsUri + "/" + newPublicationId + "/config/index_manager.xconf");
             Document indexerDoc = DocumentHelper.readDocument(indexerSource.getInputStream());
-	    NamespaceHelper indexerHelper = new NamespaceHelper(null,"xconf",indexerDoc);
+            NamespaceHelper indexerHelper = new NamespaceHelper(null,"xconf",indexerDoc);
 
-	    Element indexManagerElement = indexerHelper.getFirstChild(indexerDoc.getDocumentElement(),"index_manager");
-	    Element indexerElement = indexerHelper.getFirstChild(indexManagerElement,"indexer");
+            Element indexManagerElement = indexerHelper.getFirstChild(indexerDoc.getDocumentElement(),"index_manager");
+            Element indexerElement = indexerHelper.getFirstChild(indexManagerElement,"indexer");
 
-	    Element xconfIndexElement = indexDoc.getDocumentElement();
-	    xconfIndexElement.setAttribute("unless","/cocoon/index_manager/indexes/index[@id = '" + newPublicationId  + "']");
+            Element xconfIndexElement = indexDoc.getDocumentElement();
+            xconfIndexElement.setAttribute("unless","/cocoon/index_manager/indexes/index[@id = '"+newPublicationId+"-live' or @id = '"+newPublicationId+"-authoring']");
  	    
-            Element indexElement = indexHelper.getFirstChild(indexDoc.getDocumentElement(), "index");
+            Element[] indexElement = indexHelper.getChildren(indexDoc.getDocumentElement(), "index");
 	    
-	    indexElement.setAttribute("id",newPublicationId);
-    	    indexElement.setAttribute("directory", indexDir);
+            indexElement[0].setAttribute("id",newPublicationId+"-live");
+            indexElement[0].setAttribute("directory", indexDir+"/live/index");
+            indexElement[1].setAttribute("id",newPublicationId+"-authoring");
+            indexElement[1].setAttribute("directory", indexDir+"/authoring/index");
 
             save(indexDoc, indexSource);
+            
+            // Second, configure the index and add it to the IndexManager
 
-	    // Second, configure the index and add it to the IndexManager
-
-	    IndexManager indexM = (IndexManager) manager.lookup(IndexManager.ROLE);
+            IndexManager indexM = (IndexManager) manager.lookup(IndexManager.ROLE);
 	    
-	    Element structure = indexHelper.getFirstChild(indexElement, "structure");
+            Element structure = indexHelper.getFirstChild(indexElement[0], "structure");
             Element[] fields = indexHelper.getChildren(structure, "field");
 	    
             IndexStructure docdecl = new IndexStructure();
 
-	    for (int j = 0; j < fields.length; j++) {
+            for (int j = 0; j < fields.length; j++) {
 
                 FieldDefinition fielddecl = null;
 
@@ -166,8 +168,8 @@
 
                 // field store attribute
                 boolean store;
-		Boolean BoolStore = new Boolean(fields[j].getAttribute("storetext"));
-		store = BoolStore.booleanValue();
+                Boolean BoolStore = new Boolean(fields[j].getAttribute("storetext"));
+                store = BoolStore.booleanValue();
 		    
                 fielddecl.setStore(store);
 
@@ -180,15 +182,23 @@
                 docdecl.addFieldDef(fielddecl);
             }
 	    
-            Index index = new Index();
-            index.setID(newPublicationId);
-            index.setIndexer(indexerElement.getAttribute("role"));
-            index.setDirectory(indexDir);
-            index.setDefaultAnalyzerID(indexElement.getAttribute("analyzer"));
-            index.setManager(manager);
-            index.setStructure(docdecl);
+            Index indexLive = new Index();
+            Index indexAuthoring = new Index();
+            indexLive.setID(newPublicationId+"-live");
+            indexAuthoring.setID(newPublicationId+"-authoring");
+            indexLive.setIndexer(indexerElement.getAttribute("role"));
+            indexAuthoring.setIndexer(indexerElement.getAttribute("role"));
+            indexLive.setDirectory(indexDir+"/live/index");
+            indexAuthoring.setDirectory(indexDir+"/authoring/index");
+            indexLive.setDefaultAnalyzerID(indexElement[0].getAttribute("analyzer"));
+            indexAuthoring.setDefaultAnalyzerID(indexElement[1].getAttribute("analyzer"));
+            indexLive.setManager(manager);
+            indexAuthoring.setManager(manager);
+            indexLive.setStructure(docdecl);
+            indexAuthoring.setStructure(docdecl);
 
-            indexM.addIndex(index);
+            indexM.addIndex(indexLive);
+            indexM.addIndex(indexAuthoring);
             manager.release(indexM);
 	    // TODO: release all objects!
 

Modified: lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Deactivate.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Deactivate.java?rev=348547&r1=348546&r2=348547&view=diff
==============================================================================
--- lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Deactivate.java (original)
+++ lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Deactivate.java Wed Nov 23 12:13:01 2005
@@ -150,10 +150,6 @@
                     authoringDocument,
                     getEvent());
 
-	    resolver = (SourceResolver) this.manager.lookup(SourceResolver.ROLE);	    
-	    source = resolver.resolveURI("cocoon://core/modules/lucene/lucene/delete.xml");
-            InputSource xmlInputSource = org.apache.cocoon.components.source.SourceUtil.getInputSource(source);
-
             success = true;
         } catch (Exception e) {
             throw new RuntimeException(e);

Modified: lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Publish.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Publish.java?rev=348547&r1=348546&r2=348547&view=diff
==============================================================================
--- lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Publish.java (original)
+++ lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Publish.java Wed Nov 23 12:13:01 2005
@@ -257,10 +257,6 @@
                     authoringDocument,
                     getEvent());
 
-	    resolver = (SourceResolver) this.manager.lookup(SourceResolver.ROLE);	    
-	    source = resolver.resolveURI("cocoon://core/modules/lucene/lucene/index.xml");
-        InputSource xmlInputSource = org.apache.cocoon.components.source.SourceUtil.getInputSource(source);
-
             boolean notify = Boolean.valueOf(getBooleanCheckboxParameter(SEND_NOTIFICATION))
                     .booleanValue();
             if (notify) {



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org