svn commit: r633195 - in /lenya/sandbox/modules/forrest/java: src/org/apache/lenya/modules/forrest/Importer.java src/org/apache/lenya/modules/forrest/UpdateChanges.java test/org/apache/lenya/modules/forrest/ImportTest.java
[email protected] Mon, 03 Mar 2008 17:40:33 -0000
Newsgroups
gmane.comp.cms.lenya.cvs
Message-ID
<[email protected] >
Author: andreas
Date: Mon Mar 3 09:40:33 2008
New Revision: 633195
URL: http://svn.apache.org/viewvc?rev=633195&view=rev
Log:
Replacing linkdocument and foldernode modules with sitemeta module.
Modified:
lenya/sandbox/modules/forrest/java/src/org/apache/lenya/modules/forrest/Importer.java
lenya/sandbox/modules/forrest/java/src/org/apache/lenya/modules/forrest/UpdateChanges.java
lenya/sandbox/modules/forrest/java/test/org/apache/lenya/modules/forrest/ImportTest.java
Modified: lenya/sandbox/modules/forrest/java/src/org/apache/lenya/modules/forrest/Importer.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/modules/forrest/java/src/org/apache/lenya/modules/forrest/Importer.java?rev=633195&r1=633194&r2=633195&view=diff
==============================================================================
--- lenya/sandbox/modules/forrest/java/src/org/apache/lenya/modules/forrest/Importer.java (original)
+++ lenya/sandbox/modules/forrest/java/src/org/apache/lenya/modules/forrest/Importer.java Mon Mar 3 09:40:33 2008
@@ -38,6 +38,7 @@
import org.apache.excalibur.source.SourceResolver;
import org.apache.lenya.cms.cocoon.source.SourceUtil;
import org.apache.lenya.cms.linking.Link;
+import org.apache.lenya.cms.metadata.MetaDataException;
import org.apache.lenya.cms.publication.Area;
import org.apache.lenya.cms.publication.Document;
import org.apache.lenya.cms.publication.DocumentFactory;
@@ -50,6 +51,7 @@
import org.apache.lenya.modules.externallinks.ExternalLinksRewriter;
import org.apache.lenya.modules.foldernode.FolderNodeTransformer;
import org.apache.lenya.modules.linkdocument.LinkDocument;
+import org.apache.lenya.modules.sitemeta.SiteMetaDataTransformer;
import org.apache.lenya.xml.DocumentHelper;
import org.apache.lenya.xml.NamespaceHelper;
import org.apache.xpath.XPathAPI;
@@ -76,7 +78,7 @@
static {
blockedPaths.add("/index/changes/");
-
+
changedPaths.put("/project-information", pathToRemove);
changedPaths.put("/project-information/indexpm", "/index");
changedPaths.put("/project-information/", "/index/");
@@ -101,7 +103,7 @@
protected static final String LANGUAGE = "en";
protected static final String EXTENSION = "xml";
protected static final String SITE_PROTOCOL = "site:";
-
+
private static final int DEBUG = 0;
private static final int INFO = 1;
private static final int WARN = 2;
@@ -125,21 +127,18 @@
ResourceType forrestResourceType = null;
ResourceType mediaResourceType = null;
ResourceType faqResourceType = null;
- ResourceType linkResourceType = null;
DocumentManager docMgr = null;
try {
selector = (ServiceSelector) this.manager.lookup(ResourceType.ROLE + "Selector");
forrestResourceType = (ResourceType) selector.select(RESOURCE_TYPE_NAME_FORREST);
faqResourceType = (ResourceType) selector.select(RESOURCE_TYPE_NAME_FAQ);
mediaResourceType = (ResourceType) selector.select(RESOURCE_TYPE_NAME_MEDIA);
- linkResourceType = (ResourceType) selector.select(LinkDocument.RESOURCE_TYPE);
docMgr = (DocumentManager) this.manager.lookup(DocumentManager.ROLE);
ImportInfo info = new ImportInfo();
info.area = area;
info.forrestResourceType = forrestResourceType;
info.faqResourceType = faqResourceType;
- info.linkResourceType = linkResourceType;
info.mediaResourceType = mediaResourceType;
info.helper = helper;
info.docMgr = docMgr;
@@ -170,9 +169,6 @@
if (mediaResourceType != null) {
selector.release(mediaResourceType);
}
- if (linkResourceType != null) {
- selector.release(linkResourceType);
- }
this.manager.release(selector);
}
}
@@ -211,9 +207,9 @@
path = newPrefix + path.substring(prefix.length());
}
}
-
+
boolean blocked = false;
- for (Iterator i = blockedPaths.iterator(); i.hasNext(); ) {
+ for (Iterator i = blockedPaths.iterator(); i.hasNext();) {
String prefix = (String) i.next();
if (path.startsWith(prefix)) {
log("Blocking path " + path, INFO);
@@ -235,19 +231,17 @@
if (href.startsWith("http:")) {
log("HTTP link: " + href, DEBUG);
info.links.put(linkName, href);
- String[] samples = info.linkResourceType.getSampleNames();
- sourceUri = info.linkResourceType.getSample(samples[0]).getUri();
- Document doc = createDocument(info, info.linkResourceType, sourceUri, path,
+ String sampleUri = getForrestSampleUri(info);
+ Document doc = createDocument(info, info.forrestResourceType, sampleUri, path,
linkName, title);
- LinkDocument linkDoc = new LinkDocument(doc);
- linkDoc.setHref(href);
+ setExternalLink(doc, href);
} else if (info.externalLinksRewriter.matches(href)) {
log("External link: " + href, DEBUG);
String externalUri = info.externalLinksRewriter.rewrite(href);
- Document doc = createDocument(info, info.linkResourceType, sourceUri, path,
+ String sampleUri = getForrestSampleUri(info);
+ Document doc = createDocument(info, info.forrestResourceType, sampleUri, path,
linkName, title);
- LinkDocument linkDoc = new LinkDocument(doc);
- linkDoc.setHref(externalUri);
+ setExternalLink(doc, externalUri);
} else if (sourceUri.endsWith(".png") || sourceUri.endsWith(".gif")) {
log("Image: " + sourceUri, DEBUG);
createDocument(info, info.mediaResourceType, sourceUri, path, linkName, title);
@@ -291,6 +285,17 @@
}
+ protected String getForrestSampleUri(ImportInfo info) {
+ String[] samples = info.forrestResourceType.getSampleNames();
+ String sampleUri = info.forrestResourceType.getSample(samples[0]).getUri();
+ return sampleUri;
+ }
+
+ protected void setExternalLink(Document doc, String href) throws MetaDataException {
+ doc.getMetaData(SiteMetaDataTransformer.NAMESPACE).setValue(
+ SiteMetaDataTransformer.ELEM_EXTERNAL_LINK, href);
+ }
+
protected ResourceType getResourceType(org.w3c.dom.Document xml, ImportInfo info) {
String localName = xml.getDocumentElement().getLocalName();
ResourceType type;
@@ -375,7 +380,7 @@
log("Created " + extension.toUpperCase() + " document (" + info.counterToString()
+ ") [" + path + "] from [" + sourceUri + "]", INFO);
}
-
+
Link link = new Link();
link.setUuid(doc.getUUID());
info.links.put(linkName, link.getUri());
@@ -404,7 +409,6 @@
protected class ImportInfo {
protected int number = 0;
protected int counter = 0;
- protected ResourceType linkResourceType;
protected ResourceType mediaResourceType;
protected ResourceType forrestResourceType;
protected ResourceType faqResourceType;
Modified: lenya/sandbox/modules/forrest/java/src/org/apache/lenya/modules/forrest/UpdateChanges.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/modules/forrest/java/src/org/apache/lenya/modules/forrest/UpdateChanges.java?rev=633195&r1=633194&r2=633195&view=diff
==============================================================================
--- lenya/sandbox/modules/forrest/java/src/org/apache/lenya/modules/forrest/UpdateChanges.java (original)
+++ lenya/sandbox/modules/forrest/java/src/org/apache/lenya/modules/forrest/UpdateChanges.java Mon Mar 3 09:40:33 2008
@@ -40,8 +40,7 @@
import org.apache.lenya.cms.site.SiteNode;
import org.apache.lenya.cms.site.SiteStructure;
import org.apache.lenya.cms.usecase.AbstractUsecase;
-import org.apache.lenya.modules.foldernode.FolderNodeTransformer;
-import org.apache.lenya.modules.linkdocument.LinkDocument;
+import org.apache.lenya.modules.sitemeta.SiteMetaDataTransformer;
import org.tmatesoft.svn.core.ISVNLogEntryHandler;
import org.tmatesoft.svn.core.SVNException;
import org.tmatesoft.svn.core.SVNLogEntry;
@@ -187,8 +186,8 @@
SiteStructure site = this.parent.getStructure();
if (!site.contains(yearPath)) {
Document doc = getDocument(yearPath, "forrestDocument20", yearString);
- doc.getMetaData(FolderNodeTransformer.NAMESPACE).setValue(
- FolderNodeTransformer.ELEM_FOLDERNODE, Boolean.toString(true));
+ doc.getMetaData(SiteMetaDataTransformer.NAMESPACE).setValue(
+ SiteMetaDataTransformer.ELEM_FOLDER_NODE, Boolean.toString(true));
// SiteNode node = createNodeAtBeginning(site, yearPath);
// node.addLink(site.getPublication().getDefaultLanguage(),
// yearString);
Modified: lenya/sandbox/modules/forrest/java/test/org/apache/lenya/modules/forrest/ImportTest.java
URL: http://svn.apache.org/viewvc/lenya/sandbox/modules/forrest/java/test/org/apache/lenya/modules/forrest/ImportTest.java?rev=633195&r1=633194&r2=633195&view=diff
==============================================================================
--- lenya/sandbox/modules/forrest/java/test/org/apache/lenya/modules/forrest/ImportTest.java (original)
+++ lenya/sandbox/modules/forrest/java/test/org/apache/lenya/modules/forrest/ImportTest.java Mon Mar 3 09:40:33 2008
@@ -33,10 +33,8 @@
import org.apache.lenya.cms.publication.ResourceType;
import org.apache.lenya.cms.repository.RepositoryException;
import org.apache.lenya.cms.repository.Session;
-import org.apache.lenya.cms.site.SiteException;
import org.apache.lenya.cms.site.SiteNode;
import org.apache.lenya.cms.site.SiteStructure;
-import org.apache.lenya.cms.usecase.UsecaseException;
import org.apache.lenya.cms.usecase.UsecaseInvoker;
import org.apache.lenya.cms.workflow.WorkflowUtil;
import org.apache.lenya.workflow.Workflowable;
@@ -58,16 +56,14 @@
Session session = getFreshSession();
Publication pub = getPublication(session, PUB_ID);
Area area = pub.getArea("authoring");
- /*
+
Importer importer = new Importer(getManager(), getLogger());
importer.importSite(area);
session.commit();
-*/
+
assertTrue(area.getSite().contains("/index"));
- /*
updateChanges();
- */
publish();
}