You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by ed...@apache.org on 2004/01/21 17:11:45 UTC
cvs commit: cocoon-lenya/src/java/org/apache/lenya/cms/ant DeleteRCTask.java DeletePoliciesTask.java DeleteResourcesTask.java DeleteContentTask.java
edith 2004/01/21 08:11:44
Modified: src/java/org/apache/lenya/cms/ant DeleteContentTask.java
Added: src/java/org/apache/lenya/cms/ant DeleteRCTask.java
DeletePoliciesTask.java DeleteResourcesTask.java
Log:
replace the ant delete with own ant task
Revision Changes Path
1.4 +64 -99 cocoon-lenya/src/java/org/apache/lenya/cms/ant/DeleteContentTask.java
Index: DeleteContentTask.java
===================================================================
RCS file: /home/cvs/cocoon-lenya/src/java/org/apache/lenya/cms/ant/DeleteContentTask.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- DeleteContentTask.java 21 Oct 2003 09:51:55 -0000 1.3
+++ DeleteContentTask.java 21 Jan 2004 16:11:44 -0000 1.4
@@ -56,132 +56,97 @@
package org.apache.lenya.cms.ant;
import java.io.File;
+import java.io.IOException;
import org.apache.lenya.cms.publication.Document;
import org.apache.lenya.cms.publication.DocumentBuildException;
import org.apache.lenya.cms.publication.DocumentBuilder;
+import org.apache.lenya.cms.publication.Label;
import org.apache.lenya.cms.publication.Publication;
+import org.apache.lenya.cms.publication.SiteTree;
+import org.apache.lenya.cms.publication.SiteTreeNode;
+import org.apache.avalon.excalibur.io.FileUtil;
import org.apache.tools.ant.BuildException;
/**
- * Ant task to delete the content (xml file) of a document with document id
- * <documentid>, area <area> and language <language>
+ * Ant task to delete the contents (xml files) of documents corresponding to a defined subtree
+ * Visitor of the defined subtree (visitor pattern). The subtree is reverse visited.
* @author edith
*/
-public class DeleteContentTask extends PublicationTask {
- private String area;
- private String documentid;
- private String language;
+public class DeleteContentTask extends TwoDocumentsOperationTask {
/**
- * Creates a new instance of DeleteContentTask
+ *
*/
public DeleteContentTask() {
super();
}
- /**
- * Get the value of the area.
- *
- * @return The area.
- */
- public String getArea() {
- return area;
- }
-
- /**
- * Get the value of the document id.
- *
- * @return The document id.
- */
- public String getDocumentid() {
- return documentid;
- }
-
- /**
- * Get the value of the language.
- *
- * @return The language.
- */
- public String getLanguage() {
- return language;
- }
-
- /**
- * Set the value of the area.
- *
- * @param string The area.
- */
- public void setArea(String string) {
- area = string;
- }
-
- /**
- * Set the value of the document id.
- *
- * @param string The document id.
- */
- public void setDocumentid(String string) {
- documentid = string;
- }
-
- /**
- * Set the value of the language.
- *
- * @param string The language.
- */
- public void setLanguage(String string) {
- language = string;
- }
-
- /**
- * Remove the content of the document corresponding to the document id
- * <documentid>, area <area> and language <language>.
- * @param language The language
- * @param documentid The document id
- * @param area The area
+ /** (non-Javadoc)
+ * @see org.apache.lenya.cms.publication.SiteTreeNodeVisitor#visitSiteTreeNode(org.apache.lenya.cms.publication.SiteTreeNode)
*/
- public void deleteContent(
- String language,
- String documentid,
- String area) {
+ public void visitSiteTreeNode(SiteTreeNode node) {
Publication publication = getPublication();
DocumentBuilder builder = publication.getDocumentBuilder();
- String url =
- builder.buildCanonicalUrl(publication, area, documentid, language);
- Document document;
- try {
- document = builder.buildDocument(publication, url);
- } catch (DocumentBuildException e) {
- throw new BuildException(e);
- }
- File file = document.getFile();
-
- if (!file.exists()) {
- log("There is no file " + file.getAbsolutePath());
- return;
- }
-
- File directory = file.getParentFile();
- file.delete();
- if (directory.exists() && directory.isDirectory()) {
- File[] list = directory.listFiles();
- if (list.length < 1) {
- directory.delete();
+ String parentid = node.getAbsoluteParentId();
+ String destDocumentid = parentid + "/" + node.getId();
+ String srcDocumentid =
+ destDocumentid.replaceFirst(
+ getSecdocumentid(),
+ getFirstdocumentid());
+
+ Label[] labels = node.getLabels();
+ for (int i = 0; i < labels.length; i++) {
+ String language = labels[i].getLanguage();
+ String url =
+ builder.buildCanonicalUrl(
+ publication,
+ getFirstarea(),
+ srcDocumentid,
+ language);
+ Document doc;
+ try {
+ doc = builder.buildDocument(publication, url);
+ } catch (DocumentBuildException e) {
+ throw new BuildException(e);
+ }
+ File srcFile = doc.getFile();
+ if (!srcFile.exists()) {
+ log("There are no file " + srcFile.getAbsolutePath());
+ return;
+ }
+ File directory = srcFile.getParentFile();
+ try {
+ FileUtil.forceDelete(srcFile);
+ log("delete file " + srcFile.getAbsolutePath());
+ if (directory.exists()
+ && directory.isDirectory()
+ && directory.listFiles().length == 0) {
+ FileUtil.forceDelete(directory);
+ log("delete directory " + directory.getAbsolutePath());
+ }
+ } catch (IOException e) {
+ throw new BuildException(e);
}
}
+
}
- /** (non-Javadoc)
+ /**
* @see org.apache.tools.ant.Task#execute()
- */
+ **/
public void execute() throws BuildException {
try {
- log("document-id : " + getDocumentid());
- log("area: " + getArea());
- log("language : " + getArea());
- deleteContent(getLanguage(), getDocumentid(), getArea());
+ log("document-id for the source :" + this.getFirstdocumentid());
+ log("area for the source :" + this.getFirstarea());
+ log("document-id for the destination :" + this.getSecdocumentid());
+ log("area for the destination :" + this.getSecarea());
+
+ Publication publication = getPublication();
+ SiteTree tree = publication.getSiteTree(this.getSecarea());
+ SiteTreeNode node = tree.getNode(this.getSecdocumentid());
+ node.acceptReverseSubtree(this);
} catch (Exception e) {
throw new BuildException(e);
}
1.1 cocoon-lenya/src/java/org/apache/lenya/cms/ant/DeleteRCTask.java
Index: DeleteRCTask.java
===================================================================
/*
$Id: DeleteRCTask.java,v 1.1 2004/01/21 16:11:44 edith Exp $
<License>
============================================================================
The Apache Software License, Version 1.1
============================================================================
Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
Redistribution and use in source and binary forms, with or without modifica-
tion, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. The end-user documentation included with the redistribution, if any, must
include the following acknowledgment: "This product includes software
developed by the Apache Software Foundation (http://www.apache.org/)."
Alternately, this acknowledgment may appear in the software itself, if
and wherever such third-party acknowledgments normally appear.
4. The names "Apache Lenya" and "Apache Software Foundation" must not be
used to endorse or promote products derived from this software without
prior written permission. For written permission, please contact
apache@apache.org.
5. Products derived from this software may not be called "Apache", nor may
"Apache" appear in their name, without prior written permission of the
Apache Software Foundation.
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
This software consists of voluntary contributions made by many individuals
on behalf of the Apache Software Foundation and was originally created by
Michael Wechner <mi...@apache.org>. For more information on the Apache Soft-
ware Foundation, please see <http://www.apache.org/>.
s
Lenya includes software developed by the Apache Software Foundation, W3C,
DOM4J Project, BitfluxEditor, Xopus, and WebSHPINX.
</License>
*/
package org.apache.lenya.cms.ant;
import java.io.File;
import org.apache.lenya.cms.publication.Publication;
import org.apache.lenya.cms.publication.SiteTree;
import org.apache.lenya.cms.publication.SiteTreeNode;
import org.apache.avalon.excalibur.io.FileUtil;
import org.apache.tools.ant.BuildException;
/**
* Ant task to delete the rcml- and backup files of documents corresponding to a defined subtree
* (Visitor pattern) Visitor of the subtree. The subtree is reverse visited.
* @author edith
*/
public class DeleteRCTask extends TwoDocumentsOperationTask {
private String rcmldir = "";
private String rcbakdir = "";
private String srcareadir = "";
/**
*
*/
public DeleteRCTask() {
super();
}
/** (non-Javadoc)
* @see org.apache.lenya.cms.publication.SiteTreeNodeVisitor#visitSiteTreeNode(org.apache.lenya.cms.publication.SiteTreeNode)
*/
public void visitSiteTreeNode(SiteTreeNode node) {
try {
Publication publication = getPublication();
String publicationPath =
this.getPublicationDirectory().getCanonicalPath();
String rcmlDirectory =
new File(publicationPath, this.getRcmldir()).getCanonicalPath();
String rcbakDirectory =
new File(publicationPath, this.getRcbakdir())
.getCanonicalPath();
String parentid = node.getAbsoluteParentId();
String destDocumentid = parentid + "/" + node.getId();
String srcDocumentid =
destDocumentid.replaceFirst(
getSecdocumentid(),
getFirstdocumentid());
File srcRcmlDir =
new File(
rcmlDirectory,
this.getSrcareadir() + File.separator + srcDocumentid);
if (srcRcmlDir.exists()) {
FileUtil.forceDelete(srcRcmlDir);
log("delete rcml directory " + srcRcmlDir.getAbsolutePath());
}
File srcRcbakDir =
new File(
rcbakDirectory,
this.getSrcareadir() + File.separator + srcDocumentid);
if (srcRcbakDir.exists()) {
FileUtil.forceDelete(srcRcbakDir);
log("delete rcbak directory " + srcRcbakDir.getAbsolutePath());
}
} catch (Exception e) {
throw new BuildException(e);
}
}
/**
* @see org.apache.tools.ant.Task#execute()
**/
public void execute() throws BuildException {
try {
log("document-id for the source :" + this.getFirstdocumentid());
log("document-id for the destination :" + this.getSecdocumentid());
log("area for the destination :" + this.getSecarea());
log("rcml dir" + this.getRcmldir());
log("rcbak dir" + this.getRcbakdir());
log("src area dir" + this.getSrcareadir());
//visit the destination tree
Publication publication = getPublication();
SiteTree tree = publication.getSiteTree(this.getSecarea());
SiteTreeNode node = tree.getNode(this.getSecdocumentid());
node.acceptReverseSubtree(this);
} catch (Exception e) {
throw new BuildException(e);
}
}
/**
* @return The backup directory.
*/
public String getRcbakdir() {
return rcbakdir;
}
/**
* @return The rcml directory.
*/
public String getRcmldir() {
return rcmldir;
}
/**
* @return The path of the area from the publication.
*/
public String getSrcareadir() {
return srcareadir;
}
/**
* @param string The backup directory.
*/
public void setRcbakdir(String string) {
rcbakdir = string;
}
/**
* @param string The rcml directory.
*/
public void setRcmldir(String string) {
rcmldir = string;
}
/**
* @param string The path of the area from the publication.
*/
public void setSrcareadir(String string) {
srcareadir = string;
}
}
1.1 cocoon-lenya/src/java/org/apache/lenya/cms/ant/DeletePoliciesTask.java
Index: DeletePoliciesTask.java
===================================================================
/*
$Id: DeletePoliciesTask.java,v 1.1 2004/01/21 16:11:44 edith Exp $
<License>
============================================================================
The Apache Software License, Version 1.1
============================================================================
Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
Redistribution and use in source and binary forms, with or without modifica-
tion, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. The end-user documentation included with the redistribution, if any, must
include the following acknowledgment: "This product includes software
developed by the Apache Software Foundation (http://www.apache.org/)."
Alternately, this acknowledgment may appear in the software itself, if
and wherever such third-party acknowledgments normally appear.
4. The names "Apache Lenya" and "Apache Software Foundation" must not be
used to endorse or promote products derived from this software without
prior written permission. For written permission, please contact
apache@apache.org.
5. Products derived from this software may not be called "Apache", nor may
"Apache" appear in their name, without prior written permission of the
Apache Software Foundation.
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
This software consists of voluntary contributions made by many individuals
on behalf of the Apache Software Foundation and was originally created by
Michael Wechner <mi...@apache.org>. For more information on the Apache Soft-
ware Foundation, please see <http://www.apache.org/>.
Lenya includes software developed by the Apache Software Foundation, W3C,
DOM4J Project, BitfluxEditor, Xopus, and WebSHPINX.
</License>
*/
package org.apache.lenya.cms.ant;
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import org.apache.avalon.excalibur.io.FileUtil;
import org.apache.lenya.cms.publication.Publication;
import org.apache.lenya.cms.publication.SiteTree;
import org.apache.lenya.cms.publication.SiteTreeNode;
import org.apache.tools.ant.BuildException;
/**
* Ant task to delete the policies of documents corresponding to a defined subtree
* Visitor of the defined subtree (visitor pattern). The subtree is reverse visited.
* @author edith
*/
public class DeletePoliciesTask extends TwoDocumentsOperationTask {
private String policiesDir;
/**
*
*/
public DeletePoliciesTask() {
super();
}
/**
* @return string The policies directory.
*/
public String getPoliciesDir() {
return policiesDir;
}
/**
* @param string The policies directory
*/
public void setPoliciesDir(String string) {
policiesDir = string;
}
/**
* Get all files in a given directory, that are not directories.
* If the given directory doesn't exist, return null.
* @param directory The directory
* @return List of files
*/
public File[] getFiles(File directory) {
FileFilter filter = new FileFilter() {
public boolean accept(File file) {
return file.isFile();
}
};
if (directory.exists() && directory.isDirectory()) {
return directory.listFiles(filter);
}
return null;
}
/**
* Delte the policies file
* @param srcDir The directory of the policies files.
*/
public void deletePolicies(File srcDir) {
File[] authoringPolicies = this.getFiles(srcDir);
if (authoringPolicies == null) {
log("no policies file to delete");
return;
}
try {
for (int i = 0; i < authoringPolicies.length; i++) {
FileUtil.forceDelete(authoringPolicies[i]);
}
if (srcDir.exists() && srcDir.isDirectory() && srcDir.listFiles().length == 0) {
FileUtil.forceDelete(srcDir);
log(
"delete directory "
+ srcDir.getAbsolutePath());
}
} catch (IOException e) {
throw new BuildException(e);
}
}
/** (non-Javadoc)
* @see org.apache.lenya.cms.ant.DocumentOperationTask#visitSiteTreeNode(org.apache.lenya.cms.publication.SiteTreeNode)
*/
public void visitSiteTreeNode(SiteTreeNode node) {
String srcArea = this.getFirstarea();
String destArea = this.getSecarea();
String parentid = node.getAbsoluteParentId();
String destDocumentid = parentid + "/" + node.getId();
String srcDocumentid =
destDocumentid.replaceFirst(
getSecdocumentid(),
getFirstdocumentid());
try {
if (srcArea.equals(Publication.AUTHORING_AREA)) {
if (destArea.equals(Publication.AUTHORING_AREA)) {
File srcDir =
new File(
policiesDir,
this.getFirstarea()
+ File.separator
+ srcDocumentid);
log("delete :" + srcDir.getCanonicalPath());
deletePolicies(srcDir);
File srcLiveDir =
new File(
policiesDir,
Publication.LIVE_AREA
+ File.separator
+ srcDocumentid);
log("delete :" + srcLiveDir.getCanonicalPath());
deletePolicies(srcLiveDir);
} else if (
destArea.equals(Publication.ARCHIVE_AREA)
| destArea.equals(Publication.TRASH_AREA)) {
File srcDir =
new File(
policiesDir,
this.getFirstarea()
+ File.separator
+ srcDocumentid);
log("delete :" + srcDir.getCanonicalPath());
deletePolicies(srcDir);
File srcLiveDir =
new File(
policiesDir,
Publication.LIVE_AREA
+ File.separator
+ srcDocumentid);
log("delete :" + srcLiveDir.getCanonicalPath());
deletePolicies(srcLiveDir);
}
} else if (
srcArea.equals(Publication.ARCHIVE_AREA)
| srcArea.equals(Publication.TRASH_AREA)) {
if (destArea.equals(Publication.AUTHORING_AREA)) {
File srcDir =
new File(
policiesDir,
this.getFirstarea()
+ File.separator
+ this.getSecarea()
+ File.separator
+ srcDocumentid);
log("delete :" + srcDir.getCanonicalPath());
deletePolicies(srcDir);
File srcLiveDir =
new File(
policiesDir,
this.getFirstarea()
+ File.separator
+ Publication.LIVE_AREA
+ File.separator
+ srcDocumentid);
log("delete :" + srcLiveDir.getCanonicalPath());
deletePolicies(srcLiveDir);
}
}
} catch (IOException e) {
throw new BuildException(e);
}
}
/**
* @see org.apache.tools.ant.Task#execute()
**/
public void execute() throws BuildException {
try {
log("document-id for the source :" + this.getFirstdocumentid());
log("area for the source :" + this.getFirstarea());
log("document-id for the destination :" + this.getSecdocumentid());
log("area for the destination :" + this.getSecarea());
Publication publication = getPublication();
SiteTree tree = publication.getSiteTree(this.getSecarea());
SiteTreeNode node = tree.getNode(this.getSecdocumentid());
node.acceptReverseSubtree(this);
} catch (Exception e) {
throw new BuildException(e);
}
}
}
1.1 cocoon-lenya/src/java/org/apache/lenya/cms/ant/DeleteResourcesTask.java
Index: DeleteResourcesTask.java
===================================================================
/*
$Id: DeleteResourcesTask.java,v 1.1 2004/01/21 16:11:44 edith Exp $
<License>
============================================================================
The Apache Software License, Version 1.1
============================================================================
Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
Redistribution and use in source and binary forms, with or without modifica-
tion, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. The end-user documentation included with the redistribution, if any, must
include the following acknowledgment: "This product includes software
developed by the Apache Software Foundation (http://www.apache.org/)."
Alternately, this acknowledgment may appear in the software itself, if
and wherever such third-party acknowledgments normally appear.
4. The names "Apache Lenya" and "Apache Software Foundation" must not be
used to endorse or promote products derived from this software without
prior written permission. For written permission, please contact
apache@apache.org.
5. Products derived from this software may not be called "Apache", nor may
"Apache" appear in their name, without prior written permission of the
Apache Software Foundation.
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
This software consists of voluntary contributions made by many individuals
on behalf of the Apache Software Foundation and was originally created by
Michael Wechner <mi...@apache.org>. For more information on the Apache Soft-
ware Foundation, please see <http://www.apache.org/>.
Lenya includes software developed by the Apache Software Foundation, W3C,
DOM4J Project, BitfluxEditor, Xopus, and WebSHPINX.
</License>
*/
package org.apache.lenya.cms.ant;
import org.apache.lenya.cms.publication.Document;
import org.apache.lenya.cms.publication.DocumentBuildException;
import org.apache.lenya.cms.publication.DocumentBuilder;
import org.apache.lenya.cms.publication.Label;
import org.apache.lenya.cms.publication.Publication;
import org.apache.lenya.cms.publication.ResourcesManager;
import org.apache.lenya.cms.publication.SiteTree;
import org.apache.lenya.cms.publication.SiteTreeNode;
import org.apache.tools.ant.BuildException;
/**
* Ant task to delete the resources of documents corresponding to a defined subtree
* (Visitor pattern) Visitor of the subtree. The subtree is reverse visited.
*
* @author edith
*
*/
public class DeleteResourcesTask extends TwoDocumentsOperationTask {
/**
*
*/
public DeleteResourcesTask() {
super();
}
/**
* Delete the resources of the documents corresponding to this node
*
* @see org.apache.lenya.cms.publication.SiteTreeNodeVisitor#visitSiteTreeNode(org.apache.lenya.cms.publication.SiteTreeNode)
*/
public void visitSiteTreeNode(SiteTreeNode node) {
Publication publication = getPublication();
DocumentBuilder builder = publication.getDocumentBuilder();
String parentid = node.getAbsoluteParentId();
String destDocumentid = parentid + "/" + node.getId();
String srcDocumentid =
destDocumentid.replaceFirst(
getSecdocumentid(),
getFirstdocumentid());
Label[] labels = node.getLabels();
for (int i = 0; i < labels.length; i++) {
String language = labels[i].getLanguage();
String url =
builder.buildCanonicalUrl(
publication,
getFirstarea(),
srcDocumentid,
language);
Document srcDoc;
try {
srcDoc = builder.buildDocument(publication, url);
} catch (DocumentBuildException e) {
throw new BuildException(e);
}
ResourcesManager resourcesMgr = new ResourcesManager(srcDoc);
resourcesMgr.deleteResources();
}
}
/**
* @see org.apache.tools.ant.Task#execute()
**/
public void execute() throws BuildException {
try {
log("document-id for the source :" + this.getFirstdocumentid());
log("area for the source :" + this.getFirstarea());
log("document-id for the destination :" + this.getSecdocumentid());
log("area for the destination :" + this.getSecarea());
Publication publication = getPublication();
SiteTree tree = publication.getSiteTree(this.getSecarea());
SiteTreeNode node = tree.getNode(this.getSecdocumentid());
node.acceptReverseSubtree(this);
} catch (Exception e) {
throw new BuildException(e);
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: lenya-cvs-unsubscribe@cocoon.apache.org
For additional commands, e-mail: lenya-cvs-help@cocoon.apache.org