You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by an...@apache.org on 2006/11/28 16:32:59 UTC
svn commit: r480091 - in /lenya/trunk/src/modules/export/java:
src/org/apache/lenya/cms/export/Import.java
src/org/apache/lenya/cms/export/Importer.java
test/org/apache/lenya/cms/export/ImportTest.java
Author: andreas
Date: Tue Nov 28 07:32:58 2006
New Revision: 480091
URL: http://svn.apache.org/viewvc?view=rev&rev=480091
Log:
Rewrite links correctly when importing content from a different publication
Modified:
lenya/trunk/src/modules/export/java/src/org/apache/lenya/cms/export/Import.java
lenya/trunk/src/modules/export/java/src/org/apache/lenya/cms/export/Importer.java
lenya/trunk/src/modules/export/java/test/org/apache/lenya/cms/export/ImportTest.java
Modified: lenya/trunk/src/modules/export/java/src/org/apache/lenya/cms/export/Import.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/export/java/src/org/apache/lenya/cms/export/Import.java?view=diff&rev=480091&r1=480090&r2=480091
==============================================================================
--- lenya/trunk/src/modules/export/java/src/org/apache/lenya/cms/export/Import.java (original)
+++ lenya/trunk/src/modules/export/java/src/org/apache/lenya/cms/export/Import.java Tue Nov 28 07:32:58 2006
@@ -34,15 +34,20 @@
protected void initParameters() {
super.initParameters();
+ Publication defaultPub = getDefaultPub();
+ String pubPath = defaultPub.getDirectory().getAbsolutePath();
+ String path = pubPath.replace(File.separatorChar, '/') + "/example-content";
+ setParameter("path", path);
+ }
+
+ protected Publication getDefaultPub() {
Publication defaultPub;
try {
defaultPub = getDocumentFactory().getPublication("default");
} catch (PublicationException e) {
throw new RuntimeException(e);
}
- String pubPath = defaultPub.getDirectory().getAbsolutePath();
- String path = pubPath.replace(File.separatorChar, '/') + "/example-content";
- setParameter("path", path);
+ return defaultPub;
}
protected void doCheckPreconditions() throws Exception {
@@ -81,7 +86,7 @@
super.doExecute();
String path = getParameterAsString("path");
Importer importer = new Importer(this.manager, getLogger());
- importer.importContent(getArea(), path);
+ importer.importContent(getDefaultPub(), getArea(), path);
}
}
Modified: lenya/trunk/src/modules/export/java/src/org/apache/lenya/cms/export/Importer.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/export/java/src/org/apache/lenya/cms/export/Importer.java?view=diff&rev=480091&r1=480090&r2=480091
==============================================================================
--- lenya/trunk/src/modules/export/java/src/org/apache/lenya/cms/export/Importer.java (original)
+++ lenya/trunk/src/modules/export/java/src/org/apache/lenya/cms/export/Importer.java Tue Nov 28 07:32:58 2006
@@ -42,11 +42,11 @@
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
- /**
- * Import content.
- */
+/**
+ * Import content.
+ */
public class Importer extends AbstractLogEnabled {
-
+
private ServiceManager manager;
/**
@@ -66,6 +66,17 @@
* @throws Exception if an error occurs.
*/
public void importContent(Area area, String path) throws Exception {
+ importContent(area.getPublication(), area, path);
+ }
+
+ /**
+ * Imports content from a different publication into an area.
+ * @param srcPub The source publication.
+ * @param area The area.
+ * @param path The path containing the content.
+ * @throws Exception if an error occurs.
+ */
+ public void importContent(Publication srcPub, Area area, String path) throws Exception {
getLogger().info("Importing documents into area [" + area + "]");
@@ -77,8 +88,8 @@
Element siteElement = xml.getDocumentElement();
importChildren(area, helper, siteElement, baseUri, "");
-
- convertLinks(area);
+
+ convertLinks(srcPub, area);
}
protected void importElement(Area area, NamespaceHelper helper, Element element,
@@ -127,8 +138,8 @@
Document newDoc;
SiteStructure site = area.getSite();
if (!site.contains(path) || site.getNode(path).getLanguages().length == 0) {
- newDoc = docManager.add(area.getPublication().getFactory(), resourceType, contentUri, area
- .getPublication(), area.getName(), path, language, ".html",
+ newDoc = docManager.add(area.getPublication().getFactory(), resourceType,
+ contentUri, area.getPublication(), area.getName(), path, language, ".html",
navigationTitle, visibleInNav);
} else {
SiteNode node = site.getNode(path);
@@ -174,14 +185,14 @@
}
}
- protected void convertLinks(Area area) {
+ protected void convertLinks(Publication srcPub, Area area) {
Document[] docs = area.getDocuments();
for (int i = 0; i < docs.length; i++) {
- convertLinks(docs[i]);
+ convertLinks(srcPub, docs[i]);
}
}
- protected void convertLinks(Document examinedDocument) {
+ protected void convertLinks(Publication srcPub, Document examinedDocument) {
boolean linksRewritten = false;
LinkResolver linkResolver = null;
@@ -196,7 +207,6 @@
}
} else {
linkResolver = (LinkResolver) this.manager.lookup(LinkResolver.ROLE);
- Publication pub = examinedDocument.getPublication();
DocumentFactory factory = examinedDocument.getFactory();
org.w3c.dom.Document xmlDocument = SourceUtil.readDOM(examinedDocument
@@ -220,8 +230,11 @@
getLogger().debug("Convert links: Check URL [" + url + "]");
}
- if (url.startsWith("/" + pub.getId() + "/" + examinedDocument.getArea() + "/")) {
- final String webappUrl = url;
+ if (url.startsWith("/" + srcPub.getId() + "/" + examinedDocument.getArea()
+ + "/")) {
+ String targetPubId = examinedDocument.getPublication().getId();
+ final String webappUrl = "/" + targetPubId
+ + url.substring(("/" + srcPub.getId()).length());
if (factory.isDocument(webappUrl)) {
Document targetDocument = factory.getFromURL(webappUrl);
Modified: lenya/trunk/src/modules/export/java/test/org/apache/lenya/cms/export/ImportTest.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/export/java/test/org/apache/lenya/cms/export/ImportTest.java?view=diff&rev=480091&r1=480090&r2=480091
==============================================================================
--- lenya/trunk/src/modules/export/java/test/org/apache/lenya/cms/export/ImportTest.java (original)
+++ lenya/trunk/src/modules/export/java/test/org/apache/lenya/cms/export/ImportTest.java Tue Nov 28 07:32:58 2006
@@ -44,7 +44,7 @@
String pubPath = defaultArea.getPublication().getDirectory().getAbsolutePath();
String path = pubPath.replace(File.separatorChar, '/') + "/example-content";
Importer importer = new Importer(getManager(), getLogger());
- importer.importContent(area, path);
+ importer.importContent(defaultPub, area, path);
getFactory().getSession().commit();
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org