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/07/20 12:11:24 UTC
svn commit: r423862 - in /lenya/trunk/src:
impl/java/org/apache/lenya/cms/metadata/
impl/java/org/apache/lenya/cms/publication/
impl/test/org/apache/lenya/cms/metadata/
impl/test/org/apache/lenya/cms/publication/
java/org/apache/lenya/cms/cocoon/compon...
Author: andreas
Date: Thu Jul 20 03:11:21 2006
New Revision: 423862
URL: http://svn.apache.org/viewvc?rev=423862&view=rev
Log:
Fixed some issues in new meta data handling, use owner.getMetaData(DublinCore.DC_NAMESPACE) instead of metaDataManager.getDublinCoreMetaData()
Modified:
lenya/trunk/src/impl/java/org/apache/lenya/cms/metadata/ConfigurableElementSet.java
lenya/trunk/src/impl/java/org/apache/lenya/cms/metadata/ElementImpl.java
lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/DocumentImpl.java
lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/DocumentManagerImpl.java
lenya/trunk/src/impl/test/org/apache/lenya/cms/metadata/MetaDataTest.java
lenya/trunk/src/impl/test/org/apache/lenya/cms/publication/DublinCoreTest.java
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/DocumentInfoModule.java
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/DublinCoreModule.java
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/generation/LenyaMetaDataGenerator.java
lenya/trunk/src/java/org/apache/lenya/cms/metadata/Element.java
lenya/trunk/src/java/org/apache/lenya/cms/metadata/ElementSet.java
lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataManager.java
lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataOwner.java
lenya/trunk/src/java/org/apache/lenya/cms/metadata/dublincore/DublinCore.java
lenya/trunk/src/java/org/apache/lenya/cms/metadata/dublincore/DublinCoreHelper.java
lenya/trunk/src/java/org/apache/lenya/cms/metadata/dublincore/DublinCoreImpl.java
lenya/trunk/src/java/org/apache/lenya/cms/publication/Resource.java
lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/metadata/usecases/Metadata.java
lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Overview.java
lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/LenyaRepository.java
lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/metadata/JCRMetaDataManager.java
lenya/trunk/src/modules/repository/java/src/org/apache/lenya/cms/migration/Migrate14.java
lenya/trunk/src/modules/repository/java/src/org/apache/lenya/cms/repo/adapter/RepoNode.java
lenya/trunk/src/modules/sourcerepository/java/src/org/apache/lenya/cms/repository/SourceNode.java
lenya/trunk/src/modules/sourcerepository/java/src/org/apache/lenya/cms/repository/SourceNodeMetaData.java
Modified: lenya/trunk/src/impl/java/org/apache/lenya/cms/metadata/ConfigurableElementSet.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/impl/java/org/apache/lenya/cms/metadata/ConfigurableElementSet.java?rev=423862&r1=423861&r2=423862&view=diff
==============================================================================
--- lenya/trunk/src/impl/java/org/apache/lenya/cms/metadata/ConfigurableElementSet.java (original)
+++ lenya/trunk/src/impl/java/org/apache/lenya/cms/metadata/ConfigurableElementSet.java Thu Jul 20 03:11:21 2006
@@ -47,7 +47,8 @@
for (int i = 0; i < attributeConfigs.length; i++) {
String name = attributeConfigs[i].getAttribute("name");
boolean isMultiple = attributeConfigs[i].getAttributeAsBoolean("multiple", false);
- this.elements.put(name, new ElementImpl(name, isMultiple));
+ boolean isEditable = attributeConfigs[i].getAttributeAsBoolean("editable", false);
+ this.elements.put(name, new ElementImpl(name, isMultiple, isEditable));
}
}
@@ -63,6 +64,10 @@
public String getNamespaceUri() {
return this.namespaceUri;
+ }
+
+ public boolean containsElement(String name) {
+ return this.elements.keySet().contains(name);
}
}
Modified: lenya/trunk/src/impl/java/org/apache/lenya/cms/metadata/ElementImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/impl/java/org/apache/lenya/cms/metadata/ElementImpl.java?rev=423862&r1=423861&r2=423862&view=diff
==============================================================================
--- lenya/trunk/src/impl/java/org/apache/lenya/cms/metadata/ElementImpl.java (original)
+++ lenya/trunk/src/impl/java/org/apache/lenya/cms/metadata/ElementImpl.java Thu Jul 20 03:11:21 2006
@@ -24,15 +24,18 @@
private String name;
private boolean multiple;
private String description = "";
+ private boolean editable;
/**
* Ctor.
* @param name The name.
* @param isMultiple if the element can have multiple values.
+ * @param isEditable if the element can be edited.
*/
- public ElementImpl(String name, boolean isMultiple) {
+ public ElementImpl(String name, boolean isMultiple, boolean isEditable) {
this.name = name;
this.multiple = isMultiple;
+ this.editable = isEditable;
}
/**
@@ -57,6 +60,10 @@
public String getDescription() {
return this.description;
+ }
+
+ public boolean isEditable() {
+ return this.editable;
}
}
Modified: lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/DocumentImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/DocumentImpl.java?rev=423862&r1=423861&r2=423862&view=diff
==============================================================================
--- lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/DocumentImpl.java (original)
+++ lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/DocumentImpl.java Thu Jul 20 03:11:21 2006
@@ -18,12 +18,10 @@
package org.apache.lenya.cms.publication;
import java.io.File;
-import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
-import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.avalon.framework.container.ContainerUtil;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.avalon.framework.logger.Logger;
@@ -537,6 +535,10 @@
public MetaData getMetaData(String namespaceUri) throws RepositoryException {
return getRepositoryNode().getMetaData(namespaceUri);
+ }
+
+ public String[] getMetaDataNamespaceUris() throws RepositoryException {
+ return getRepositoryNode().getMetaDataNamespaceUris();
}
}
Modified: lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/DocumentManagerImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/DocumentManagerImpl.java?rev=423862&r1=423861&r2=423862&view=diff
==============================================================================
--- lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/DocumentManagerImpl.java (original)
+++ lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/DocumentManagerImpl.java Thu Jul 20 03:11:21 2006
@@ -30,10 +30,10 @@
import org.apache.excalibur.source.SourceResolver;
import org.apache.lenya.cms.cocoon.source.SourceUtil;
import org.apache.lenya.cms.metadata.LenyaMetaData;
-import org.apache.lenya.cms.metadata.MetaDataManager;
import org.apache.lenya.cms.publication.util.DocumentSet;
import org.apache.lenya.cms.publication.util.DocumentVisitor;
import org.apache.lenya.cms.repository.Node;
+import org.apache.lenya.cms.repository.RepositoryException;
import org.apache.lenya.cms.repository.RepositoryManager;
import org.apache.lenya.cms.repository.Session;
import org.apache.lenya.cms.site.SiteManager;
@@ -78,11 +78,15 @@
navigationTitle,
visibleInNav,
contentsURI);
- MetaDataManager mgr = document.getMetaDataManager();
- MetaDataManager srcMgr = sourceDocument.getMetaDataManager();
- mgr.getLenyaMetaData().replaceBy(srcMgr.getLenyaMetaData());
- mgr.getDublinCoreMetaData().replaceBy(srcMgr.getDublinCoreMetaData());
- mgr.getCustomMetaData().replaceBy(srcMgr.getCustomMetaData());
+
+ try {
+ String[] uris = sourceDocument.getMetaDataNamespaceUris();
+ for (int i = 0; i < uris.length; i++) {
+ document.getMetaData(uris[i]).replaceBy(sourceDocument.getMetaData(uris[i]));
+ }
+ } catch (RepositoryException e) {
+ throw new PublicationException(e);
+ }
}
/**
Modified: lenya/trunk/src/impl/test/org/apache/lenya/cms/metadata/MetaDataTest.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/impl/test/org/apache/lenya/cms/metadata/MetaDataTest.java?rev=423862&r1=423861&r2=423862&view=diff
==============================================================================
--- lenya/trunk/src/impl/test/org/apache/lenya/cms/metadata/MetaDataTest.java (original)
+++ lenya/trunk/src/impl/test/org/apache/lenya/cms/metadata/MetaDataTest.java Thu Jul 20 03:11:21 2006
@@ -46,7 +46,7 @@
}
assertNotNull(e);
- namespaceUri = DublinCoreImpl.DC_NAMESPACE;
+ namespaceUri = DublinCore.DC_NAMESPACE;
MetaData dc = doc.getMetaData(namespaceUri);
doc.getRepositoryNode().lock();
Modified: lenya/trunk/src/impl/test/org/apache/lenya/cms/publication/DublinCoreTest.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/impl/test/org/apache/lenya/cms/publication/DublinCoreTest.java?rev=423862&r1=423861&r2=423862&view=diff
==============================================================================
--- lenya/trunk/src/impl/test/org/apache/lenya/cms/publication/DublinCoreTest.java (original)
+++ lenya/trunk/src/impl/test/org/apache/lenya/cms/publication/DublinCoreTest.java Thu Jul 20 03:11:21 2006
@@ -53,20 +53,18 @@
doc.getRepositoryNode().lock();
- MetaData dcCore = doc.getMetaDataManager().getDublinCoreMetaData();
+ MetaData dcCore = doc.getMetaData(DublinCore.DC_NAMESPACE);
String title = dcCore.getFirstValue(DublinCore.ELEMENT_TITLE);
String subject = dcCore.getFirstValue(DublinCore.ELEMENT_SUBJECT);
String creator = dcCore.getFirstValue(DublinCore.ELEMENT_CREATOR);
- String dateIssued = dcCore.getFirstValue(DublinCore.TERM_ISSUED);
dcCore.setValue(DublinCore.ELEMENT_CREATOR, CREATOR);
Document doc2 = map.get(publication, AREA, DOCUMENT_ID, LANGUAGE);
- MetaData dcCore2 = doc2.getMetaDataManager().getDublinCoreMetaData();
+ MetaData dcCore2 = doc2.getMetaData(DublinCore.DC_NAMESPACE);
assertEquals(title, dcCore2.getFirstValue(DublinCore.ELEMENT_TITLE));
assertEquals(subject, dcCore2.getFirstValue(DublinCore.ELEMENT_SUBJECT));
- assertEquals(dateIssued, dcCore2.getFirstValue(DublinCore.TERM_ISSUED));
assertFalse(creator.equals(dcCore2.getFirstValue(DublinCore.ELEMENT_CREATOR)));
assertEquals(CREATOR, dcCore2.getFirstValue(DublinCore.ELEMENT_CREATOR));
Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/DocumentInfoModule.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/DocumentInfoModule.java?rev=423862&r1=423861&r2=423862&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/DocumentInfoModule.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/DocumentInfoModule.java Thu Jul 20 03:11:21 2006
@@ -39,6 +39,7 @@
import org.apache.lenya.cms.publication.DocumentUtil;
import org.apache.lenya.cms.publication.Publication;
import org.apache.lenya.cms.publication.PublicationUtil;
+import org.apache.lenya.cms.repository.RepositoryException;
import org.apache.lenya.cms.repository.RepositoryUtil;
import org.apache.lenya.cms.repository.Session;
import org.apache.lenya.cms.site.SiteException;
@@ -206,8 +207,8 @@
String mimeType = null;
MetaData metaData = null;
try {
- metaData = document.getMetaDataManager().getDublinCoreMetaData();
- } catch (DocumentException e) {
+ metaData = document.getMetaData(DublinCore.DC_NAMESPACE);
+ } catch (RepositoryException e) {
throw new ConfigurationException("Obtaining custom meta data value failed ["
+ document.getSourceURI() + "]: " + e.getMessage(), e);
}
Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/DublinCoreModule.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/DublinCoreModule.java?rev=423862&r1=423861&r2=423862&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/DublinCoreModule.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/DublinCoreModule.java Thu Jul 20 03:11:21 2006
@@ -26,6 +26,7 @@
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.lenya.cms.metadata.MetaData;
+import org.apache.lenya.cms.metadata.dublincore.DublinCore;
import org.apache.lenya.cms.metadata.dublincore.DublinCoreImpl;
import org.apache.lenya.cms.publication.Document;
@@ -48,8 +49,7 @@
if (document == null) {
throw new ConfigurationException("There is no document for this page envelope!");
}
- MetaData dc = document.getMetaDataManager().getDublinCoreMetaData();
-
+ MetaData dc = document.getMetaData(DublinCore.DC_NAMESPACE);
if (! dc.isValidAttribute(name)) {
throw new ConfigurationException("The attribute [" + name + "] is not supported!");
}
Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/generation/LenyaMetaDataGenerator.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/generation/LenyaMetaDataGenerator.java?rev=423862&r1=423861&r2=423862&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/generation/LenyaMetaDataGenerator.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/generation/LenyaMetaDataGenerator.java Thu Jul 20 03:11:21 2006
@@ -35,9 +35,9 @@
import org.apache.excalibur.xml.dom.DOMParser;
import org.apache.lenya.cms.metadata.MetaData;
import org.apache.lenya.cms.metadata.MetaDataManager;
+import org.apache.lenya.cms.metadata.dublincore.DublinCore;
import org.apache.lenya.cms.publication.Document;
import org.apache.lenya.cms.publication.DocumentBuildException;
-import org.apache.lenya.cms.publication.DocumentException;
import org.apache.lenya.cms.publication.DocumentFactory;
import org.apache.lenya.cms.publication.DocumentUtil;
import org.apache.lenya.cms.publication.Publication;
@@ -197,13 +197,14 @@
long lastModified = 0;
try {
MetaDataManager metaMgr = document.getMetaDataManager();
+ MetaData dcElements = document.getMetaData(DublinCore.DC_NAMESPACE);
if (lastModified < metaMgr.getCustomMetaData().getLastModified())
lastModified = metaMgr.getCustomMetaData().getLastModified();
- if (lastModified < metaMgr.getDublinCoreMetaData().getLastModified())
- lastModified = metaMgr.getDublinCoreMetaData().getLastModified();
+ if (lastModified < dcElements.getLastModified())
+ lastModified = dcElements.getLastModified();
if (lastModified < metaMgr.getLenyaMetaData().getLastModified())
lastModified = metaMgr.getLenyaMetaData().getLastModified();
- } catch (DocumentException e) {
+ } catch (Exception e) {
getLogger().error("Error determining last modification date", e);
return null;
}
@@ -308,9 +309,9 @@
} else if ("internal".equals(type)) {
metaData = this.document.getMetaDataManager().getLenyaMetaData();
} else if ("dc".equals(type)) {
- metaData = this.document.getMetaDataManager().getDublinCoreMetaData();
+ metaData = this.document.getMetaData(DublinCore.DC_NAMESPACE);
}
- } catch (DocumentException e1) {
+ } catch (Exception e1) {
throw new ProcessingException("Obtaining custom meta data value for ["
+ document.getSourceURI() + "] failed: ", e1);
}
Modified: lenya/trunk/src/java/org/apache/lenya/cms/metadata/Element.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/metadata/Element.java?rev=423862&r1=423861&r2=423862&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/metadata/Element.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/metadata/Element.java Thu Jul 20 03:11:21 2006
@@ -35,5 +35,10 @@
* @return the description of the element.
*/
String getDescription();
+
+ /**
+ * @return if the element value can be edited.
+ */
+ boolean isEditable();
}
Modified: lenya/trunk/src/java/org/apache/lenya/cms/metadata/ElementSet.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/metadata/ElementSet.java?rev=423862&r1=423861&r2=423862&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/metadata/ElementSet.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/metadata/ElementSet.java Thu Jul 20 03:11:21 2006
@@ -40,4 +40,11 @@
*/
String getNamespaceUri();
+ /**
+ * Checks if an element with a certain name is contained.
+ * @param name The name.
+ * @return A boolean value.
+ */
+ boolean containsElement(String name);
+
}
Modified: lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataManager.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataManager.java?rev=423862&r1=423861&r2=423862&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataManager.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataManager.java Thu Jul 20 03:11:21 2006
@@ -53,7 +53,7 @@
* @return the dublin core meta-data
* @throws DocumentException if the meta-data could not be retrieved
*/
- public MetaData getDublinCoreMetaData() throws DocumentException {
+ public MetaData getDublinCoreMetaData1() throws DocumentException {
if (dublinCoreMetaData == null) {
dublinCoreMetaData = new DublinCoreImpl(this.sourceUri, this.serviceManager, getLogger());
}
@@ -120,7 +120,7 @@
*/
public void setMetaData(Map dcMetaData, Map lenyaMetaData, Map customMetaData) throws DocumentException {
if (dcMetaData != null)
- setMetaData(getDublinCoreMetaData(), dcMetaData);
+ setMetaData(getDublinCoreMetaData1(), dcMetaData);
if (lenyaMetaData != null)
setMetaData(getLenyaMetaData(), lenyaMetaData);
if (customMetaData != null)
@@ -143,8 +143,8 @@
* @throws DocumentException if something goes wrong
*/
public void replaceMetaData(MetaDataManager sourceManager) throws DocumentException {
- MetaData source = sourceManager.getDublinCoreMetaData();
- MetaData dest = this.getDublinCoreMetaData();
+ MetaData source = sourceManager.getDublinCoreMetaData1();
+ MetaData dest = this.getDublinCoreMetaData1();
dest.replaceBy(source);
source = sourceManager.getLenyaMetaData();
dest = this.getLenyaMetaData();
Modified: lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataOwner.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataOwner.java?rev=423862&r1=423861&r2=423862&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataOwner.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataOwner.java Thu Jul 20 03:11:21 2006
@@ -40,4 +40,11 @@
*/
MetaData getMetaData(String namespaceUri) throws RepositoryException;
+ /**
+ * Returns the URIs of the meta data currently supported by the owner.
+ * @return An array of strings.
+ * @throws RepositoryException if an error occurs.
+ */
+ String[] getMetaDataNamespaceUris() throws RepositoryException;
+
}
Modified: lenya/trunk/src/java/org/apache/lenya/cms/metadata/dublincore/DublinCore.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/metadata/dublincore/DublinCore.java?rev=423862&r1=423861&r2=423862&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/metadata/dublincore/DublinCore.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/metadata/dublincore/DublinCore.java Thu Jul 20 03:11:21 2006
@@ -32,6 +32,16 @@
public interface DublinCore extends MetaData {
/**
+ * The dublin core elements namespace.
+ */
+ String DC_NAMESPACE = "http://purl.org/dc/elements/1.1/";
+
+ /**
+ * The dublin core terms namespace.
+ */
+ String DCTERMS_NAMESPACE = "http://purl.org/dc/terms/";
+
+ /**
* A name given to the resource. Typically, Title will be a name by which the resource is
* formally known.
*/
Modified: lenya/trunk/src/java/org/apache/lenya/cms/metadata/dublincore/DublinCoreHelper.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/metadata/dublincore/DublinCoreHelper.java?rev=423862&r1=423861&r2=423862&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/metadata/dublincore/DublinCoreHelper.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/metadata/dublincore/DublinCoreHelper.java Thu Jul 20 03:11:21 2006
@@ -73,7 +73,7 @@
Document document = map.get(publication, area, documentId, languages[i]);
if (getLogger().isDebugEnabled())
getLogger().debug("document file : " + document.getSourceURI());
- MetaData dublincore = document.getMetaDataManager().getDublinCoreMetaData();
+ MetaData dublincore = document.getMetaData(DublinCore.DC_NAMESPACE);
if (getLogger().isDebugEnabled())
getLogger().debug("dublincore title : "
+ dublincore.getFirstValue(DublinCore.ELEMENT_TITLE));
@@ -82,7 +82,7 @@
}
}
if (languages.length < 1 || identifier == null) {
- MetaData dublincore = baseDocument.getMetaDataManager().getDublinCoreMetaData();
+ MetaData dublincore = baseDocument.getMetaData(DublinCore.DC_NAMESPACE);
identifier = dublincore.getFirstValue(DublinCore.ELEMENT_IDENTIFIER);
}
} catch (final DocumentException e) {
Modified: lenya/trunk/src/java/org/apache/lenya/cms/metadata/dublincore/DublinCoreImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/metadata/dublincore/DublinCoreImpl.java?rev=423862&r1=423861&r2=423862&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/metadata/dublincore/DublinCoreImpl.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/metadata/dublincore/DublinCoreImpl.java Thu Jul 20 03:11:21 2006
@@ -35,7 +35,6 @@
private static final String LOCAL_META = "dc";
- public static final String DC_NAMESPACE = "http://purl.org/dc/elements/1.1/";
public static final String DC_PREFIX = "dc";
/**
@@ -58,7 +57,6 @@
DublinCore.ELEMENT_COVERAGE,
DublinCore.ELEMENT_RIGHTS };
- public static final String DCTERMS_NAMESPACE = "http://purl.org/dc/terms/";
public static final String DCTERMS_PREFIX = "dcterms";
/**
@@ -112,7 +110,7 @@
* @see org.apache.lenya.cms.metadata.MetaDataImpl#getNamespaces()
*/
protected String[] getNamespaces() {
- return new String[] { DC_NAMESPACE, DCTERMS_NAMESPACE };
+ return new String[] { DublinCore.DC_NAMESPACE, DublinCore.DCTERMS_NAMESPACE };
}
/**
Modified: lenya/trunk/src/java/org/apache/lenya/cms/publication/Resource.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/publication/Resource.java?rev=423862&r1=423861&r2=423862&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/publication/Resource.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/publication/Resource.java Thu Jul 20 03:11:21 2006
@@ -259,7 +259,11 @@
}
public MetaData getMetaData(String namespaceUri) throws RepositoryException {
- return null;
+ return getRepositoryNodes()[0].getMetaData(namespaceUri);
+ }
+
+ public String[] getMetaDataNamespaceUris() throws RepositoryException {
+ return getRepositoryNodes()[0].getMetaDataNamespaceUris();
}
}
Modified: lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/metadata/usecases/Metadata.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/metadata/usecases/Metadata.java?rev=423862&r1=423861&r2=423862&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/metadata/usecases/Metadata.java (original)
+++ lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/metadata/usecases/Metadata.java Thu Jul 20 03:11:21 2006
@@ -20,6 +20,7 @@
import java.util.Iterator;
import org.apache.lenya.cms.metadata.MetaData;
+import org.apache.lenya.cms.metadata.dublincore.DublinCore;
import org.apache.lenya.cms.repository.Node;
import org.apache.lenya.cms.site.usecases.SiteUsecase;
import org.apache.lenya.cms.usecase.UsecaseException;
@@ -61,11 +62,10 @@
super.initParameters();
showCustom = getParameterAsBoolean(SHOW_CUSTOM_PARAMETER, false);
setParameter(SHOW_CUSTOM_PARAMETER, String.valueOf(showCustom));
-
+
// dc metadata
try {
- MetaData meta = getSourceDocument().getMetaDataManager()
- .getDublinCoreMetaData();
+ MetaData meta = getSourceDocument().getMetaData(DublinCore.DC_NAMESPACE);
String[] keys = meta.getPossibleKeys();
for (int i = 0; i < keys.length; i++) {
@@ -126,8 +126,7 @@
super.doExecute();
// dc metadata
- MetaData meta = getSourceDocument().getMetaDataManager()
- .getDublinCoreMetaData();
+ MetaData meta = getSourceDocument().getMetaData(DublinCore.DC_NAMESPACE);
String[] keys = meta.getPossibleKeys();
for (int i = 0; i < keys.length; i++) {
Modified: lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Overview.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Overview.java?rev=423862&r1=423861&r2=423862&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Overview.java (original)
+++ lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Overview.java Thu Jul 20 03:11:21 2006
@@ -64,7 +64,7 @@
Document doc = getSourceDocument();
// read parameters from Dublin Core meta-data
- MetaData dc = doc.getMetaDataManager().getDublinCoreMetaData();
+ MetaData dc = doc.getMetaData(DublinCore.DC_NAMESPACE);
setParameter(DublinCore.ELEMENT_TITLE, dc.getFirstValue(DublinCore.ELEMENT_TITLE));
setParameter(DublinCore.ELEMENT_DESCRIPTION,
dc.getFirstValue(DublinCore.ELEMENT_DESCRIPTION));
Modified: lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/LenyaRepository.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/LenyaRepository.java?rev=423862&r1=423861&r2=423862&view=diff
==============================================================================
--- lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/LenyaRepository.java (original)
+++ lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/LenyaRepository.java Thu Jul 20 03:11:21 2006
@@ -46,6 +46,7 @@
import org.apache.jackrabbit.core.nodetype.PropDefImpl;
import org.apache.jackrabbit.name.QName;
import org.apache.lenya.cms.metadata.LenyaMetaData;
+import org.apache.lenya.cms.metadata.dublincore.DublinCore;
import org.apache.lenya.cms.metadata.dublincore.DublinCoreImpl;
/**
@@ -141,7 +142,7 @@
List dcKeyList = DublinCoreImpl.getAttributeNames();
String[] dcKeys = (String[]) dcKeyList.toArray(new String[dcKeyList.size()]);
for (int i = 0; i < dcKeys.length; i++) {
- key2namespace.put(dcKeys[i], DublinCoreImpl.DC_NAMESPACE);
+ key2namespace.put(dcKeys[i], DublinCore.DC_NAMESPACE);
}
NodeTypeDef def = new NodeTypeDef();
Modified: lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/metadata/JCRMetaDataManager.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/metadata/JCRMetaDataManager.java?rev=423862&r1=423861&r2=423862&view=diff
==============================================================================
--- lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/metadata/JCRMetaDataManager.java (original)
+++ lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/metadata/JCRMetaDataManager.java Thu Jul 20 03:11:21 2006
@@ -24,6 +24,7 @@
import org.apache.lenya.cms.metadata.LenyaMetaData;
import org.apache.lenya.cms.metadata.MetaData;
import org.apache.lenya.cms.metadata.MetaDataManager;
+import org.apache.lenya.cms.metadata.dublincore.DublinCore;
import org.apache.lenya.cms.metadata.dublincore.DublinCoreImpl;
import org.apache.lenya.cms.publication.DocumentException;
@@ -55,7 +56,7 @@
public MetaData getDublinCoreMetaData() throws DocumentException {
if (this.dublinCore == null) {
- this.dublinCore = new JCRMetaData(DublinCoreImpl.DC_NAMESPACE,
+ this.dublinCore = new JCRMetaData(DublinCore.DC_NAMESPACE,
getSourceURI(),
this.serviceManager,
getLogger());
Modified: lenya/trunk/src/modules/repository/java/src/org/apache/lenya/cms/migration/Migrate14.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/repository/java/src/org/apache/lenya/cms/migration/Migrate14.java?rev=423862&r1=423861&r2=423862&view=diff
==============================================================================
--- lenya/trunk/src/modules/repository/java/src/org/apache/lenya/cms/migration/Migrate14.java (original)
+++ lenya/trunk/src/modules/repository/java/src/org/apache/lenya/cms/migration/Migrate14.java Thu Jul 20 03:11:21 2006
@@ -25,7 +25,7 @@
import java.io.OutputStream;
import org.apache.lenya.cms.metadata.LenyaMetaData;
-import org.apache.lenya.cms.metadata.dublincore.DublinCoreImpl;
+import org.apache.lenya.cms.metadata.dublincore.DublinCore;
import org.apache.lenya.cms.repo.Area;
import org.apache.lenya.cms.repo.Asset;
import org.apache.lenya.cms.repo.AssetType;
@@ -306,13 +306,13 @@
LenyaElements.ELEMENTS);
importMetaData(trans,
xmlDoc,
- DublinCoreImpl.DC_NAMESPACE,
+ DublinCore.DC_NAMESPACE,
"dc",
DublinCoreElements.ELEMENT_SET,
DublinCoreElements.getElements());
importMetaData(trans,
xmlDoc,
- DublinCoreImpl.DCTERMS_NAMESPACE,
+ DublinCore.DCTERMS_NAMESPACE,
"dc",
DublinCoreElements.ELEMENT_SET,
DublinCoreElements.getElements());
Modified: lenya/trunk/src/modules/repository/java/src/org/apache/lenya/cms/repo/adapter/RepoNode.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/repository/java/src/org/apache/lenya/cms/repo/adapter/RepoNode.java?rev=423862&r1=423861&r2=423862&view=diff
==============================================================================
--- lenya/trunk/src/modules/repository/java/src/org/apache/lenya/cms/repo/adapter/RepoNode.java (original)
+++ lenya/trunk/src/modules/repository/java/src/org/apache/lenya/cms/repo/adapter/RepoNode.java Thu Jul 20 03:11:21 2006
@@ -198,4 +198,9 @@
return null;
}
+ public String[] getMetaDataNamespaceUris() throws RepositoryException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
Modified: lenya/trunk/src/modules/sourcerepository/java/src/org/apache/lenya/cms/repository/SourceNode.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/sourcerepository/java/src/org/apache/lenya/cms/repository/SourceNode.java?rev=423862&r1=423861&r2=423862&view=diff
==============================================================================
--- lenya/trunk/src/modules/sourcerepository/java/src/org/apache/lenya/cms/repository/SourceNode.java (original)
+++ lenya/trunk/src/modules/sourcerepository/java/src/org/apache/lenya/cms/repository/SourceNode.java Thu Jul 20 03:11:21 2006
@@ -29,14 +29,12 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-
-import javax.xml.parsers.ParserConfigurationException;
+import java.util.Set;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.avalon.framework.logger.Logger;
import org.apache.avalon.framework.service.ServiceException;
import org.apache.avalon.framework.service.ServiceManager;
-import org.apache.commons.collections.set.CompositeSet.SetMutator;
import org.apache.excalibur.source.ModifiableSource;
import org.apache.excalibur.source.Source;
import org.apache.excalibur.source.SourceNotFoundException;
@@ -45,9 +43,12 @@
import org.apache.lenya.ac.Identity;
import org.apache.lenya.ac.User;
import org.apache.lenya.cms.cocoon.source.SourceUtil;
+import org.apache.lenya.cms.metadata.ElementSet;
+import org.apache.lenya.cms.metadata.LenyaMetaData;
import org.apache.lenya.cms.metadata.MetaData;
import org.apache.lenya.cms.metadata.MetaDataManager;
import org.apache.lenya.cms.metadata.MetaDataRegistry;
+import org.apache.lenya.cms.metadata.dublincore.DublinCore;
import org.apache.lenya.cms.publication.DocumentException;
import org.apache.lenya.cms.publication.PageEnvelope;
import org.apache.lenya.cms.publication.Publication;
@@ -62,7 +63,6 @@
import org.apache.lenya.xml.NamespaceHelper;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
-import org.xml.sax.SAXException;
/**
* A repository node.
@@ -696,25 +696,24 @@
private Map namespace2metadata = new HashMap();
public MetaData getMetaData(String namespaceUri) throws RepositoryException {
-
+
MetaDataRegistry registry = null;
try {
- Object obj = this.manager.lookup(MetaDataRegistry.ROLE);
registry = (MetaDataRegistry) this.manager.lookup(MetaDataRegistry.ROLE);
if (!registry.isRegistered(namespaceUri)) {
- throw new RepositoryException("The namespace [" + namespaceUri + "] is not registered!");
+ throw new RepositoryException("The namespace [" + namespaceUri
+ + "] is not registered!");
}
} catch (ServiceException e) {
throw new RepositoryException(e);
} catch (DocumentException e) {
throw new RepositoryException(e);
- }
- finally {
+ } finally {
if (registry != null) {
this.manager.release(registry);
}
}
-
+
MetaData meta = (MetaData) this.namespace2metadata.get(namespaceUri);
if (meta == null) {
meta = new SourceNodeMetaData(namespaceUri, this, this.manager);
@@ -754,19 +753,25 @@
try {
this.namespace2metamap = new HashMap();
Document xml = SourceUtil.readDOM(getMetaSourceURI(), this.manager);
- NamespaceHelper helper = new NamespaceHelper(META_DATA_NAMESPACE, "", xml);
- Element[] setElements = helper.getChildren(xml.getDocumentElement(), ELEMENT_SET);
- for (int setIndex = 0; setIndex < setElements.length; setIndex++) {
- String namespace = setElements[setIndex].getAttribute(ATTRIBUTE_NAMESPACE);
- Element[] elementElements = helper.getChildren(setElements[setIndex],
- ELEMENT_ELEMENT);
- for (int elemIndex = 0; elemIndex < elementElements.length; elemIndex++) {
- String key = elementElements[elemIndex].getAttribute(ATTRIBUTE_KEY);
- Element[] valueElements = helper.getChildren(elementElements[elemIndex],
- ELEMENT_VALUE);
- for (int valueIndex = 0; valueIndex < valueElements.length; valueIndex++) {
- String value = DocumentHelper.getSimpleElementText(valueElements[valueIndex]);
- addValue(namespace, key, value);
+
+ if (!xml.getDocumentElement().getNamespaceURI().equals(META_DATA_NAMESPACE)) {
+ loadLegacyMetaData(xml);
+ } else {
+ NamespaceHelper helper = new NamespaceHelper(META_DATA_NAMESPACE, "", xml);
+ Element[] setElements = helper.getChildren(xml.getDocumentElement(), ELEMENT_SET);
+ for (int setIndex = 0; setIndex < setElements.length; setIndex++) {
+ String namespace = setElements[setIndex].getAttribute(ATTRIBUTE_NAMESPACE);
+ Element[] elementElements = helper.getChildren(setElements[setIndex],
+ ELEMENT_ELEMENT);
+ for (int elemIndex = 0; elemIndex < elementElements.length; elemIndex++) {
+ String key = elementElements[elemIndex].getAttribute(ATTRIBUTE_KEY);
+ Element[] valueElements = helper.getChildren(elementElements[elemIndex],
+ ELEMENT_VALUE);
+ for (int valueIndex = 0; valueIndex < valueElements.length; valueIndex++) {
+ String value = DocumentHelper.getSimpleElementText(valueElements[valueIndex]);
+ List values = getValueList(namespace, key);
+ values.add(value);
+ }
}
}
}
@@ -775,6 +780,59 @@
}
}
+ protected void loadLegacyMetaData(Document xml) throws RepositoryException {
+ NamespaceHelper helper = new NamespaceHelper(PageEnvelope.NAMESPACE, "", xml);
+
+ Element metaElement = helper.getFirstChild(xml.getDocumentElement(), "meta");
+
+ Element internalElement = helper.getFirstChild(metaElement, "internal");
+
+ Element[] internalElements = helper.getChildren(internalElement);
+ for (int i = 0; i < internalElements.length; i++) {
+ String value = DocumentHelper.getSimpleElementText(internalElements[i]);
+ String key = internalElements[i].getLocalName();
+ List values = getValueList(LenyaMetaData.NAMESPACE, key);
+ values.add(value);
+ }
+
+ NamespaceHelper dcHelper = new NamespaceHelper(DublinCore.DC_NAMESPACE, "", xml);
+ Element dcElement = helper.getFirstChild(metaElement, "dc");
+
+ MetaDataRegistry registry = null;
+ try {
+ registry = (MetaDataRegistry) this.manager.lookup(MetaDataRegistry.ROLE);
+ ElementSet dcElementSet = registry.getElementSet(DublinCore.DC_NAMESPACE);
+ ElementSet dcTermSet = registry.getElementSet(DublinCore.DCTERMS_NAMESPACE);
+
+ Element[] dcElements = dcHelper.getChildren(dcElement);
+ for (int i = 0; i < dcElements.length; i++) {
+ String value = DocumentHelper.getSimpleElementText(dcElements[i]);
+
+ String key = dcElements[i].getLocalName();
+
+ if (dcElementSet.containsElement(key)) {
+ List values = getValueList(DublinCore.DC_NAMESPACE, key);
+ values.add(value);
+ } else if (dcTermSet.containsElement(key)) {
+ List values = getValueList(DublinCore.DCTERMS_NAMESPACE, key);
+ values.add(value);
+ } else {
+ throw new RepositoryException("The dublin core key [" + key
+ + "] is not supported.");
+ }
+ }
+ } catch (RepositoryException e) {
+ throw e;
+ } catch (Exception e) {
+ throw new RepositoryException(e);
+ } finally {
+ if (registry != null) {
+ this.manager.release(registry);
+ }
+ }
+
+ }
+
protected void saveMetaData() throws RepositoryException {
try {
NamespaceHelper helper = new NamespaceHelper(META_DATA_NAMESPACE, "", ELEMENT_METADATA);
@@ -793,13 +851,17 @@
Element elementElement = helper.createElement(ELEMENT_ELEMENT);
elementElement.setAttribute(ATTRIBUTE_KEY, key);
- setElement.appendChild(elementElement);
List values = (List) map.get(key);
for (Iterator valueIterator = values.iterator(); valueIterator.hasNext();) {
String value = (String) valueIterator.next();
- Element valueElement = helper.createElement(ELEMENT_VALUE, value);
- elementElement.appendChild(valueElement);
+ if (!value.equals("")) {
+ Element valueElement = helper.createElement(ELEMENT_VALUE, value);
+ elementElement.appendChild(valueElement);
+ }
+ }
+ if (elementElement.hasChildNodes()) {
+ setElement.appendChild(elementElement);
}
}
}
@@ -824,16 +886,25 @@
return values;
}
- protected void addValue(String namespaceUri, String key, String value) throws RepositoryException {
+ protected void addValue(String namespaceUri, String key, String value)
+ throws RepositoryException {
List values = getValueList(namespaceUri, key);
values.add(value);
saveMetaData();
}
-
+
protected void removeAllValues(String namespaceUri, String key) throws RepositoryException {
List values = getValueList(namespaceUri, key);
values.clear();
saveMetaData();
+ }
+
+ public String[] getMetaDataNamespaceUris() throws RepositoryException {
+ if (this.namespace2metamap == null) {
+ loadMetaData();
+ }
+ Set uris = this.namespace2metamap.keySet();
+ return (String[]) uris.toArray(new String[uris.size()]);
}
}
Modified: lenya/trunk/src/modules/sourcerepository/java/src/org/apache/lenya/cms/repository/SourceNodeMetaData.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/sourcerepository/java/src/org/apache/lenya/cms/repository/SourceNodeMetaData.java?rev=423862&r1=423861&r2=423862&view=diff
==============================================================================
--- lenya/trunk/src/modules/sourcerepository/java/src/org/apache/lenya/cms/repository/SourceNodeMetaData.java (original)
+++ lenya/trunk/src/modules/sourcerepository/java/src/org/apache/lenya/cms/repository/SourceNodeMetaData.java Thu Jul 20 03:11:21 2006
@@ -18,7 +18,6 @@
import java.util.Arrays;
import java.util.HashMap;
-import java.util.Map;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.avalon.framework.service.ServiceException;
@@ -142,7 +141,12 @@
for (int i = 0; i < elements.length; i++) {
String key = elements[i].getName();
String[] values = getValues(key);
- map.put(key, Arrays.asList(values));
+ if (values.length == 1) {
+ map.put(key, values[0]);
+ }
+ else if (values.length > 1) {
+ map.put(key, Arrays.asList(values));
+ }
}
} catch (DocumentException e) {
throw new RuntimeException(e);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org