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/21 10:22:46 UTC
svn commit: r424224 [1/2] - 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/...
Author: andreas
Date: Fri Jul 21 01:22:43 2006
New Revision: 424224
URL: http://svn.apache.org/viewvc?rev=424224&view=rev
Log:
Advancing towards component-based meta data
Added:
lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataException.java
Removed:
lenya/trunk/src/java/org/apache/lenya/cms/metadata/CustomMetaData.java
lenya/trunk/src/java/org/apache/lenya/cms/metadata/LenyaMetaData.java
lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataImpl.java
lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataManager.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/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/metadata/JCRMetaDataManager.java
lenya/trunk/src/modules/repository/java/src/org/apache/lenya/cms/repo/adapter/RepoLenyaMetaData.java
lenya/trunk/src/modules/repository/java/src/org/apache/lenya/cms/repo/adapter/RepoMetaDataManager.java
Modified:
lenya/trunk/src/impl/java/org/apache/lenya/cms/metadata/ConfigurableElementSet.java
lenya/trunk/src/impl/java/org/apache/lenya/cms/metadata/MetaDataRegistryImpl.java
lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/DefaultResourcesManager.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/CustomMetaDataModule.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/ElementSet.java
lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaData.java
lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataOwner.java
lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataRegistry.java
lenya/trunk/src/java/org/apache/lenya/cms/publication/Resource.java
lenya/trunk/src/java/org/apache/lenya/cms/repository/RepositoryManagerImpl.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/Create.java
lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/CreateDocument.java
lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/JCRSourceNode.java
lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/LenyaJCRSourceFactory.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/JCRMetaData.java
lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/usecases/Import.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/LenyaElements.java
lenya/trunk/src/modules/repository/java/src/org/apache/lenya/cms/repo/adapter/RepoMetaData.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
lenya/trunk/src/modules/webdav/java/src/org/apache/lenya/cms/usecases/webdav/Mkcol.java
lenya/trunk/src/modules/webdav/java/src/org/apache/lenya/cms/usecases/webdav/Put.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=424224&r1=424223&r2=424224&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 Fri Jul 21 01:22:43 2006
@@ -20,25 +20,25 @@
import java.util.HashMap;
import java.util.Map;
+import org.apache.avalon.framework.activity.Initializable;
import org.apache.avalon.framework.configuration.Configurable;
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.avalon.framework.service.ServiceException;
+import org.apache.avalon.framework.service.ServiceManager;
+import org.apache.avalon.framework.service.Serviceable;
import org.apache.avalon.framework.thread.ThreadSafe;
/**
* Avalon-based element set.
*/
public class ConfigurableElementSet extends AbstractLogEnabled implements ElementSet, Configurable,
- ThreadSafe {
+ ThreadSafe, Initializable, Serviceable {
private String namespaceUri;
private Map elements = new HashMap();
- protected String getNamespaceURI() {
- return this.namespaceUri;
- }
-
public void configure(Configuration config) throws ConfigurationException {
this.namespaceUri = config.getAttribute("name");
@@ -68,6 +68,25 @@
public boolean containsElement(String name) {
return this.elements.keySet().contains(name);
+ }
+
+ public void initialize() throws Exception {
+ MetaDataRegistry registry = null;
+ try {
+ registry = (MetaDataRegistry) this.manager.lookup(MetaDataRegistry.ROLE);
+ registry.register(getNamespaceUri(), this);
+ }
+ finally {
+ if (registry != null) {
+ this.manager.release(registry);
+ }
+ }
+ }
+
+ private ServiceManager manager;
+
+ public void service(ServiceManager manager) throws ServiceException {
+ this.manager = manager;
}
}
Modified: lenya/trunk/src/impl/java/org/apache/lenya/cms/metadata/MetaDataRegistryImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/impl/java/org/apache/lenya/cms/metadata/MetaDataRegistryImpl.java?rev=424224&r1=424223&r2=424224&view=diff
==============================================================================
--- lenya/trunk/src/impl/java/org/apache/lenya/cms/metadata/MetaDataRegistryImpl.java (original)
+++ lenya/trunk/src/impl/java/org/apache/lenya/cms/metadata/MetaDataRegistryImpl.java Fri Jul 21 01:22:43 2006
@@ -16,51 +16,44 @@
*/
package org.apache.lenya.cms.metadata;
-import org.apache.avalon.framework.component.ComponentException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
import org.apache.avalon.framework.logger.AbstractLogEnabled;
-import org.apache.avalon.framework.service.ServiceException;
-import org.apache.avalon.framework.service.ServiceManager;
-import org.apache.avalon.framework.service.ServiceSelector;
-import org.apache.avalon.framework.service.Serviceable;
-import org.apache.cocoon.components.ExtendedComponentSelector;
-import org.apache.lenya.cms.publication.DocumentException;
-
-public class MetaDataRegistryImpl extends AbstractLogEnabled implements MetaDataRegistry, Serviceable {
-
- public ElementSet getElementSet(String namespaceUri) throws DocumentException {
- ServiceSelector selector = null;
- try {
- selector = (ServiceSelector) this.manager.lookup(ElementSet.class.getName() + "Selector");
- return (ElementSet) selector.select(namespaceUri);
- } catch (ServiceException e) {
- throw new DocumentException(e);
- }
- finally {
- if (selector != null) {
- this.manager.release(selector);
- }
+import org.apache.avalon.framework.thread.ThreadSafe;
+
+/**
+ * Meta data registry implementation.
+ */
+public class MetaDataRegistryImpl extends AbstractLogEnabled implements MetaDataRegistry,
+ ThreadSafe {
+
+ public ElementSet getElementSet(String namespaceUri) throws MetaDataException {
+ if (!isRegistered(namespaceUri)) {
+ throw new MetaDataException("The namespace URI [" + namespaceUri
+ + "] is not registered.");
}
+ return (ElementSet) this.namespace2set.get(namespaceUri);
}
- public boolean isRegistered(String namespaceUri) throws DocumentException {
- ServiceSelector selector = null;
- try {
- selector = (ServiceSelector) this.manager.lookup(ElementSet.class.getName() + "Selector");
- return selector.isSelectable(namespaceUri);
- } catch (ServiceException e) {
- throw new DocumentException(e);
- }
- finally {
- if (selector != null) {
- this.manager.release(selector);
- }
+ public boolean isRegistered(String namespaceUri) throws MetaDataException {
+ return this.namespace2set.containsKey(namespaceUri);
+ }
+
+ private Map namespace2set = new HashMap();
+
+ public void register(String namespaceUri, ElementSet elementSet) throws MetaDataException {
+ if (this.namespace2set.containsKey(namespaceUri)) {
+ throw new MetaDataException("The namespace [" + namespaceUri
+ + "] is already registered.");
}
+ this.namespace2set.put(namespaceUri, elementSet);
}
- private ServiceManager manager;
-
- public void service(ServiceManager manager) throws ServiceException {
- this.manager = manager;
+ public String[] getNamespaceUris() throws MetaDataException {
+ Set keys = this.namespace2set.keySet();
+ return (String[]) keys.toArray(new String[keys.size()]);
}
}
Modified: lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/DefaultResourcesManager.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/DefaultResourcesManager.java?rev=424224&r1=424223&r2=424224&view=diff
==============================================================================
--- lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/DefaultResourcesManager.java (original)
+++ lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/DefaultResourcesManager.java Fri Jul 21 01:22:43 2006
@@ -40,6 +40,7 @@
import org.apache.excalibur.source.SourceResolver;
import org.apache.lenya.cms.cocoon.source.SourceUtil;
import org.apache.lenya.cms.metadata.MetaData;
+import org.apache.lenya.cms.metadata.MetaDataException;
import org.apache.lenya.cms.repository.Node;
/**
@@ -162,7 +163,7 @@
}
saveResource(resource, part);
- } catch (final DocumentException e) {
+ } catch (final MetaDataException e) {
getLogger().error("Document exception " + e.toString());
throw new RuntimeException(e);
} catch (final IOException e) {
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=424224&r1=424223&r2=424224&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 Fri Jul 21 01:22:43 2006
@@ -31,10 +31,9 @@
import org.apache.lenya.cms.cocoon.source.RepositorySource;
import org.apache.lenya.cms.cocoon.source.SourceUtil;
import org.apache.lenya.cms.metadata.MetaData;
-import org.apache.lenya.cms.metadata.MetaDataManager;
+import org.apache.lenya.cms.metadata.MetaDataException;
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.site.SiteManager;
/**
@@ -46,7 +45,6 @@
private DocumentIdentifier identifier;
private DocumentFactory identityMap;
protected ServiceManager manager;
- private MetaDataManager metaDataManager;
/**
* The meta data namespace.
@@ -124,9 +122,9 @@
MetaData metaData = null;
String expiresMeta = null;
try {
- metaData = this.getMetaDataManager().getLenyaMetaData();
+ metaData = this.getMetaData(METADATA_NAMESPACE);
expiresMeta = metaData.getFirstValue("expires");
- } catch (DocumentException e) {
+ } catch (MetaDataException e) {
throw new DocumentException(e);
}
if (expiresMeta != null) {
@@ -467,35 +465,6 @@
}
/**
- * @see org.apache.lenya.cms.metadata.MetaDataOwner#getMetaDataManager()
- */
- public MetaDataManager getMetaDataManager() {
- if (getLogger().isDebugEnabled()) {
- getLogger().debug("Publication source URI for document [" + this + "]: "
- + getPublication().getSourceURI());
- }
- if (this.metaDataManager == null) {
- SourceResolver resolver = null;
- RepositorySource source = null;
- try {
- resolver = (SourceResolver) this.manager.lookup(SourceResolver.ROLE);
- source = (RepositorySource) resolver.resolveURI(getSourceURI());
- this.metaDataManager = source.getNode().getMetaDataManager();
- } catch (Exception e) {
- throw new RuntimeException(e);
- } finally {
- if (resolver != null) {
- if (source != null) {
- resolver.release(source);
- }
- this.manager.release(resolver);
- }
- }
- }
- return metaDataManager;
- }
-
- /**
* @see org.apache.lenya.cms.publication.Document#delete()
*/
public void delete() throws DocumentException {
@@ -564,11 +533,11 @@
return this.resourceType;
}
- public MetaData getMetaData(String namespaceUri) throws RepositoryException {
+ public MetaData getMetaData(String namespaceUri) throws MetaDataException {
return getRepositoryNode().getMetaData(namespaceUri);
}
- public String[] getMetaDataNamespaceUris() throws RepositoryException {
+ public String[] getMetaDataNamespaceUris() throws MetaDataException {
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=424224&r1=424223&r2=424224&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 Fri Jul 21 01:22:43 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.MetaData;
+import org.apache.lenya.cms.metadata.MetaDataException;
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;
@@ -84,7 +84,7 @@
for (int i = 0; i < uris.length; i++) {
document.getMetaData(uris[i]).replaceBy(sourceDocument.getMetaData(uris[i]));
}
- } catch (RepositoryException e) {
+ } catch (MetaDataException 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=424224&r1=424223&r2=424224&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 Fri Jul 21 01:22:43 2006
@@ -18,7 +18,6 @@
import org.apache.lenya.ac.impl.AccessControlTest;
import org.apache.lenya.cms.metadata.dublincore.DublinCore;
-import org.apache.lenya.cms.metadata.dublincore.DublinCoreImpl;
import org.apache.lenya.cms.publication.Document;
import org.apache.lenya.cms.publication.DocumentException;
import org.apache.lenya.cms.publication.DocumentFactory;
@@ -55,7 +54,7 @@
}
- protected void checkSetTitle(MetaData dc) throws DocumentException {
+ protected void checkSetTitle(MetaData dc) throws MetaDataException {
Exception e = null;
try {
dc.setValue("foo", "bar");
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=424224&r1=424223&r2=424224&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 Fri Jul 21 01:22:43 2006
@@ -20,6 +20,7 @@
import org.apache.lenya.ac.AccessControlException;
import org.apache.lenya.ac.impl.AccessControlTest;
import org.apache.lenya.cms.metadata.MetaData;
+import org.apache.lenya.cms.metadata.MetaDataException;
import org.apache.lenya.cms.metadata.dublincore.DublinCore;
import org.apache.lenya.cms.repository.RepositoryException;
@@ -38,11 +39,13 @@
/**
* Test the fetching, modification and refetching of a dc core object.
* @throws PublicationException
+ * @throws MetaDataException
* @throws RepositoryException
* @throws AccessControlException
+ * @throws RepositoryException
*/
- final public void testModifySaveAndReload() throws PublicationException, RepositoryException,
- AccessControlException {
+ final public void testModifySaveAndReload() throws PublicationException, MetaDataException,
+ AccessControlException, RepositoryException {
login("lenya");
Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/CustomMetaDataModule.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/CustomMetaDataModule.java?rev=424224&r1=424223&r2=424224&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/CustomMetaDataModule.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/CustomMetaDataModule.java Fri Jul 21 01:22:43 2006
@@ -22,19 +22,18 @@
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Map;
+
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.MetaDataException;
import org.apache.lenya.cms.publication.Document;
-import org.apache.lenya.cms.publication.DocumentException;
/**
* Input module to access custom meta data values.
*/
public class CustomMetaDataModule extends AbstractPageEnvelopeModule {
- final static String NS_PREFIX = "lenya:";
-
/**
* @see org.apache.cocoon.components.modules.input.InputModule#getAttribute(java.lang.String,
* org.apache.avalon.framework.configuration.Configuration, java.util.Map)
@@ -45,13 +44,13 @@
MetaData metaData = getCustomMetaData(objectModel);
- if (!metaData.isValidAttribute(NS_PREFIX + name)) {
+ if (!metaData.isValidAttribute(name)) {
throw new ConfigurationException("The attribute [" + name + "] is not supported!");
}
try {
- value = metaData.getFirstValue(NS_PREFIX + name);
- } catch (DocumentException e) {
+ value = metaData.getFirstValue(name);
+ } catch (MetaDataException e) {
throw new ConfigurationException("Obtaining custom meta data value for [" + name
+ "] failed: ", e);
}
@@ -79,13 +78,13 @@
Object[] values;
MetaData metaData = getCustomMetaData(objectModel);
- if (!metaData.isValidAttribute(NS_PREFIX + name)) {
+ if (!metaData.isValidAttribute(name)) {
throw new ConfigurationException("The attribute [" + name + "] is not supported!");
}
try {
- values = metaData.getValues(NS_PREFIX + name);
- } catch (DocumentException e) {
+ values = metaData.getValues(name);
+ } catch (MetaDataException e) {
throw new ConfigurationException("Obtaining custom meta data value for [" + name
+ "] failed: ", e);
}
@@ -101,11 +100,21 @@
}
MetaData metaData = null;
try {
- metaData = document.getMetaDataManager().getCustomMetaData();
- } catch (DocumentException e) {
+ metaData = document.getMetaData(this.namespaceUri);
+ } catch (MetaDataException e) {
throw new ConfigurationException("Obtaining custom meta data value for ["
+ document.getSourceURI() + "] failed: ", e);
}
return metaData;
}
+
+ private String namespaceUri;
+
+ public void configure(Configuration conf) throws ConfigurationException {
+ super.configure(conf);
+ this.namespaceUri = conf.getAttribute("namespace", null);
+ }
+
+
+
}
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=424224&r1=424223&r2=424224&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 Fri Jul 21 01:22:43 2006
@@ -24,7 +24,6 @@
import java.util.Map;
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.avalon.framework.parameters.ParameterException;
import org.apache.avalon.framework.service.ServiceException;
import org.apache.avalon.framework.service.ServiceManager;
import org.apache.avalon.framework.service.Serviceable;
@@ -32,6 +31,7 @@
import org.apache.cocoon.environment.ObjectModelHelper;
import org.apache.cocoon.environment.Request;
import org.apache.lenya.cms.metadata.MetaData;
+import org.apache.lenya.cms.metadata.MetaDataException;
import org.apache.lenya.cms.metadata.dublincore.DublinCore;
import org.apache.lenya.cms.publication.Document;
import org.apache.lenya.cms.publication.DocumentException;
@@ -39,7 +39,6 @@
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;
@@ -128,7 +127,7 @@
String attribute = params.getParameter(PARAM_PROPERTY);
if (attribute.equals(RESOURCE_TYPE)) {
- value = getResourceType(document);
+ value = document.getResourceType().getName();
} else if (attribute.equals(LAST_MODIFIED)) {
value = getLastModified(document);
} else if (attribute.equals(MIME_TYPE)) {
@@ -150,7 +149,9 @@
throw new ConfigurationException("Attribute '" + attribute + "' not supported ["
+ name + "]");
}
- } catch (ParameterException e) {
+ } catch (ConfigurationException e) {
+ throw e;
+ } catch (Exception e) {
throw new ConfigurationException("Error getting input module parameters.", e);
}
@@ -167,25 +168,6 @@
}
- protected String getResourceType(Document document) throws ConfigurationException {
- String resourceType = null;
- MetaData metaData = null;
- try {
- metaData = document.getMetaDataManager().getLenyaMetaData();
- } catch (DocumentException e) {
- throw new ConfigurationException("Obtaining custom meta data value for ["
- + document.getSourceURI() + "] failed: " + e.getMessage(), e);
- }
-
- try {
- resourceType = metaData.getFirstValue(META_RESOURCE_TYPE);
- } catch (DocumentException e) {
- throw new ConfigurationException("Obtaining resource type for [" + document.getId()
- + "] failed: " + e.getMessage(), e);
- }
- return resourceType;
- }
-
/**
* Returns last modification date in HTTP date format (see RFC 1123).
* @param document
@@ -208,14 +190,14 @@
MetaData metaData = null;
try {
metaData = document.getMetaData(DublinCore.DC_NAMESPACE);
- } catch (RepositoryException e) {
+ } catch (MetaDataException e) {
throw new ConfigurationException("Obtaining custom meta data value failed ["
+ document.getSourceURI() + "]: " + e.getMessage(), e);
}
try {
mimeType = metaData.getFirstValue(DublinCore.ELEMENT_FORMAT);
- } catch (DocumentException e) {
+ } catch (MetaDataException e) {
throw new ConfigurationException("Obtaining resource type failed [" + document.getId()
+ "]: " + 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=424224&r1=424223&r2=424224&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 Fri Jul 21 01:22:43 2006
@@ -19,15 +19,16 @@
package org.apache.lenya.cms.cocoon.components.modules.input;
+import java.util.Arrays;
import java.util.Iterator;
-import java.util.List;
import java.util.Map;
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
+import org.apache.lenya.cms.metadata.Element;
import org.apache.lenya.cms.metadata.MetaData;
+import org.apache.lenya.cms.metadata.MetaDataRegistry;
import org.apache.lenya.cms.metadata.dublincore.DublinCore;
-import org.apache.lenya.cms.metadata.dublincore.DublinCoreImpl;
import org.apache.lenya.cms.publication.Document;
/**
@@ -69,13 +70,23 @@
*/
public Iterator getAttributeNames(Configuration modeConf, Map objectModel)
throws ConfigurationException {
+
+ MetaDataRegistry registry = null;
+ try {
+ registry = (MetaDataRegistry) this.manager.lookup(MetaDataRegistry.ROLE);
+ Element[] elements = registry.getElementSet(DublinCore.DC_NAMESPACE).getElements();
+ String[] keys = new String[elements.length];
+ for (int i = 0; i < keys.length; i++) {
+ keys[i] = elements[i].getName();
+ }
+ return Arrays.asList(keys).iterator();
+ } catch (Exception e) {
+ throw new ConfigurationException(e.getMessage(), e);
+ }
+ finally {
+ this.manager.release(registry);
+ }
- // calling static method on DublinCoreImpl is a work-around
- // because we do not have access to an instance here, because
- // the page envelope cannot be read here.
- List names = DublinCoreImpl.getAttributeNames();
-
- return names.iterator();
}
/**
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=424224&r1=424223&r2=424224&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 Fri Jul 21 01:22:43 2006
@@ -17,8 +17,6 @@
import java.io.IOException;
import java.io.Serializable;
-import java.util.HashMap;
-import java.util.Iterator;
import java.util.Map;
import org.apache.avalon.framework.parameters.Parameters;
@@ -34,8 +32,7 @@
import org.apache.excalibur.source.impl.validity.TimeStampValidity;
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.metadata.MetaDataException;
import org.apache.lenya.cms.publication.Document;
import org.apache.lenya.cms.publication.DocumentBuildException;
import org.apache.lenya.cms.publication.DocumentFactory;
@@ -65,7 +62,7 @@
protected static final String ROOT_META_NODE_NAME = "meta";
/** The URI of the namespace of the metadata */
- protected static final String URI_META = "http://apache.org/cocoon/lenya/page-envelope/1.0";
+ protected static final String URI_META = "http://apache.org/cocoon/lenya/metadata/1.0";
/** The namespace prefix for this namespace */
protected static final String PREFIX_META = "lenya";
@@ -194,16 +191,9 @@
* not cacheable.
*/
public SourceValidity getValidity() {
- long lastModified = 0;
+ long lastModified;
try {
- MetaDataManager metaMgr = document.getMetaDataManager();
- MetaData dcElements = document.getMetaData(DublinCore.DC_NAMESPACE);
- if (lastModified < metaMgr.getCustomMetaData().getLastModified())
- lastModified = metaMgr.getCustomMetaData().getLastModified();
- if (lastModified < dcElements.getLastModified())
- lastModified = dcElements.getLastModified();
- if (lastModified < metaMgr.getLenyaMetaData().getLastModified())
- lastModified = metaMgr.getLenyaMetaData().getLastModified();
+ lastModified = document.getLastModified().getTime();
} catch (Exception e) {
getLogger().error("Error determining last modification date", e);
return null;
@@ -215,102 +205,76 @@
* Generate XML data.
*/
public void generate() throws IOException, SAXException, ProcessingException {
- // START metadata
- startNodeRoot(ROOT_META_NODE_NAME);
- // lenya document meta
+ startNodeRoot();
performIncludesMeta();
- // END metadata
- endNodeRoot(ROOT_META_NODE_NAME);
+ endNodeRoot();
}
private void performIncludesMeta() throws SAXException, ProcessingException {
- // custom metadata
- startNodeMeta(ROOT_CUSTOM_META_NODE_NAME);
- parseMetaData("custom");
- endNodeMeta(ROOT_CUSTOM_META_NODE_NAME);
- // internal metadata
- startNodeMeta(ROOT_INTERNAL_META_NODE_NAME);
- parseMetaData("internal");
- endNodeMeta(ROOT_INTERNAL_META_NODE_NAME);
- // dc metadata
- startNodeMeta(ROOT_DC_META_NODE_NAME);
- parseMetaData("dc");
- endNodeMeta(ROOT_DC_META_NODE_NAME);
- }
-
- private void parseMetaData(String type) throws ProcessingException, SAXException {
- MetaData metaData = getMetaData(type);
- HashMap elementMap;
- elementMap = metaData.getAvailableKey2Value();
- if ("dc".equals(type)) {
- Iterator iteratorMap = elementMap.entrySet().iterator();
- while (iteratorMap.hasNext()) {
- Map.Entry entry = (Map.Entry) iteratorMap.next();
- this.contentHandler.startPrefixMapping(PREFIX_META_DC, URI_META_DC);
- startNodeMetaDC((String) entry.getKey());
- String valueNode = (String) entry.getValue();
- char[] textNode = valueNode.toCharArray();
- this.contentHandler.characters(textNode, 0, textNode.length);
- endNodeMetaDC((String) entry.getKey());
- this.contentHandler.endPrefixMapping(PREFIX_META_DC);
+
+ try {
+ String[] namespaces = this.document.getMetaDataNamespaceUris();
+ for (int i = 0; i < namespaces.length; i++) {
+ startNodeMeta(namespaces[i]);
+ parseMetaData(namespaces[i]);
+ endNodeMeta(namespaces[i]);
+ }
+ } catch (MetaDataException e) {
+ throw new ProcessingException(e);
+ }
+
+ }
+
+ private void parseMetaData(String namespace) throws ProcessingException, SAXException {
+ MetaData metaData = getMetaData(namespace);
+
+ String[] names = metaData.getAvailableKeys();
+ for (int i = 0; i < names.length; i++) {
+ String[] values;
+ try {
+ values = metaData.getValues(names[i]);
+ } catch (MetaDataException e) {
+ throw new ProcessingException(e);
}
- } else if ("custom".equals(type) | "internal".equals(type)) {
- Iterator iteratorMap = elementMap.entrySet().iterator();
- while (iteratorMap.hasNext()) {
- Map.Entry entry = (Map.Entry) iteratorMap.next();
- startNodeMeta((String) entry.getKey());
- String valueNode = (String) entry.getValue();
- char[] textNode = valueNode.toCharArray();
- this.contentHandler.characters(textNode, 0, textNode.length);
- endNodeMeta((String) entry.getKey());
+ for (int j = 0; j < values.length; j++) {
+ this.contentHandler.startElement(namespace, names[i], names[i], new AttributesImpl());
+ char[] valueChars = values[j].toCharArray();
+ this.contentHandler.characters(valueChars, 0, valueChars.length);
+ this.contentHandler.endElement(namespace, names[i], names[i]);
}
}
}
- private void endNodeRoot(String nodeName) throws SAXException {
- endNodeMeta(nodeName);
+ private void endNodeRoot() throws SAXException {
+ this.contentHandler.endElement(URI_META, "metadata", PREFIX_META + ":metadata");
this.contentHandler.endPrefixMapping(PREFIX_META);
this.contentHandler.endDocument();
}
- private void startNodeRoot(String nodeName) throws SAXException {
+ private void startNodeRoot() throws SAXException {
this.contentHandler.startDocument();
this.contentHandler.startPrefixMapping(PREFIX_META, URI_META);
- startNodeMeta(nodeName);
- }
-
- private void startNodeMeta(String nodeName) throws SAXException {
this.contentHandler.startElement(URI_META,
- nodeName,
- PREFIX_META + ":" + nodeName,
+ "metadata",
+ PREFIX_META + ":metadata",
attributes);
}
- private void endNodeMeta(String nodeName) throws SAXException {
- this.contentHandler.endElement(URI_META, nodeName, PREFIX_META + ":" + nodeName);
- }
-
- private void startNodeMetaDC(String nodeName) throws SAXException {
- this.contentHandler.startElement(URI_META_DC,
- nodeName,
- PREFIX_META_DC + ":" + nodeName,
+ private void startNodeMeta(String namespace) throws SAXException {
+ this.contentHandler.startElement(namespace,
+ "elements",
+ "elements",
attributes);
}
- private void endNodeMetaDC(String nodeName) throws SAXException {
- this.contentHandler.endElement(URI_META_DC, nodeName, PREFIX_META_DC + ":" + nodeName);
+ private void endNodeMeta(String namespace) throws SAXException {
+ this.contentHandler.endElement(namespace, "elements", "elements");
}
- protected MetaData getMetaData(String type) throws ProcessingException {
+ protected MetaData getMetaData(String namespaceUri) throws ProcessingException {
MetaData metaData = null;
try {
- if ("custom".equals(type)) {
- metaData = this.document.getMetaDataManager().getCustomMetaData();
- } else if ("internal".equals(type)) {
- metaData = this.document.getMetaDataManager().getLenyaMetaData();
- } else if ("dc".equals(type)) {
- metaData = this.document.getMetaData(DublinCore.DC_NAMESPACE);
- }
+ metaData = this.document.getMetaData(namespaceUri);
} 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/ElementSet.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/metadata/ElementSet.java?rev=424224&r1=424223&r2=424224&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 Fri Jul 21 01:22:43 2006
@@ -16,8 +16,6 @@
*/
package org.apache.lenya.cms.metadata;
-import org.apache.lenya.cms.repository.RepositoryException;
-
/**
* Definition of a set of meta data elements.
*/
@@ -31,9 +29,9 @@
/**
* @param name The name.
* @return The element.
- * @throws RepositoryException if the element with this name does not exist.
+ * @throws MetaDataException if the element with this name does not exist.
*/
- Element getElement(String name) throws RepositoryException;
+ Element getElement(String name) throws MetaDataException;
/**
* @return The namespace URI of this element set.
Modified: lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaData.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaData.java?rev=424224&r1=424223&r2=424224&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaData.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaData.java Fri Jul 21 01:22:43 2006
@@ -18,8 +18,6 @@
import java.util.HashMap;
-import org.apache.lenya.cms.publication.DocumentException;
-
/**
* Generic meta data interface.
*
@@ -31,17 +29,17 @@
* Returns the values for a certain key.
* @param key The key.
* @return An array of strings.
- * @throws DocumentException when something went wrong.
+ * @throws MetaDataException when something went wrong.
*/
- String[] getValues(String key) throws DocumentException;
+ String[] getValues(String key) throws MetaDataException;
/**
* Returns the first value for a certain key.
* @param key The key.
* @return A string or <code>null</code> if no value is set for this key.
- * @throws DocumentException if an error occurs.
+ * @throws MetaDataException if an error occurs.
*/
- String getFirstValue(String key) throws DocumentException;
+ String getFirstValue(String key) throws MetaDataException;
/**
* Get all available keys.
@@ -53,24 +51,24 @@
* Sets the value for a certain key. All existing values will be removed.
* @param key The key.
* @param value The value to set.
- * @throws DocumentException when something went wrong.
+ * @throws MetaDataException when something went wrong.
*/
- void setValue(String key, String value) throws DocumentException;
+ void setValue(String key, String value) throws MetaDataException;
/**
* Addds a value for a certain key. The existing values will not be removed.
* @param key The key.
* @param value The value to add.
- * @throws DocumentException when something went wrong.
+ * @throws MetaDataException when something went wrong.
*/
- void addValue(String key, String value) throws DocumentException;
+ void addValue(String key, String value) throws MetaDataException;
/**
* Replace the contents of the current meta data by the contents of other.
* @param other The other meta data manager.
- * @throws DocumentException if an error occurs.
+ * @throws MetaDataException if an error occurs.
*/
- void replaceBy(MetaData other) throws DocumentException;
+ void replaceBy(MetaData other) throws MetaDataException;
/**
* @return All keys that can be used.
@@ -92,9 +90,9 @@
/**
* Get last modification date.
* @return last modification date
- * @throws DocumentException if an error occurs.
+ * @throws MetaDataException if an error occurs.
*/
- long getLastModified() throws DocumentException;
+ long getLastModified() throws MetaDataException;
/**
* @return The element set this meta data object belongs to.
Added: lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataException.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataException.java?rev=424224&view=auto
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataException.java (added)
+++ lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataException.java Fri Jul 21 01:22:43 2006
@@ -0,0 +1,53 @@
+/*
+ * 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.metadata;
+
+/**
+ * Meta data exception.
+ */
+public class MetaDataException extends Exception {
+
+ /**
+ *
+ */
+ public MetaDataException() {
+ super();
+ }
+
+ /**
+ * @param arg0
+ * @param arg1
+ */
+ public MetaDataException(String arg0, Throwable arg1) {
+ super(arg0, arg1);
+ }
+
+ /**
+ * @param arg0
+ */
+ public MetaDataException(String arg0) {
+ super(arg0);
+ }
+
+ /**
+ * @param arg0
+ */
+ public MetaDataException(Throwable arg0) {
+ super(arg0);
+ }
+
+}
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=424224&r1=424223&r2=424224&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 Fri Jul 21 01:22:43 2006
@@ -16,9 +16,6 @@
*/
package org.apache.lenya.cms.metadata;
-import org.apache.lenya.cms.publication.DocumentException;
-import org.apache.lenya.cms.repository.RepositoryException;
-
/**
* Owner of meta-data.
*
@@ -27,24 +24,18 @@
public interface MetaDataOwner {
/**
- * @return A manager for the meta data.
- * @deprecated Use {@link #getMetaData(String)}ĂŠinstead.
- */
- MetaDataManager getMetaDataManager() throws DocumentException;
-
- /**
* Returns a meta data object.
* @param namespaceUri The namespace URI.
* @return A meta data object.
- * @throws RepositoryException if an error occurs.
+ * @throws MetaDataException if an error occurs.
*/
- MetaData getMetaData(String namespaceUri) throws RepositoryException;
+ MetaData getMetaData(String namespaceUri) throws MetaDataException;
/**
* Returns the URIs of the meta data currently supported by the owner.
* @return An array of strings.
- * @throws RepositoryException if an error occurs.
+ * @throws MetaDataException if an error occurs.
*/
- String[] getMetaDataNamespaceUris() throws RepositoryException;
+ String[] getMetaDataNamespaceUris() throws MetaDataException;
}
Modified: lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataRegistry.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataRegistry.java?rev=424224&r1=424223&r2=424224&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataRegistry.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataRegistry.java Fri Jul 21 01:22:43 2006
@@ -16,8 +16,6 @@
*/
package org.apache.lenya.cms.metadata;
-import org.apache.lenya.cms.publication.DocumentException;
-
/**
* Meta data registry.
*/
@@ -31,16 +29,30 @@
/**
* @param namespaceUri The namespace URI of the element set.
* @return the element set.
- * @throws DocumentException if an error occurs.
+ * @throws MetaDataException if an error occurs.
*/
- ElementSet getElementSet(String namespaceUri) throws DocumentException;
+ ElementSet getElementSet(String namespaceUri) throws MetaDataException;
/**
* Checks if an element set is registered.
* @param namespaceUri The namespace URI.
* @return A boolean value.
- * @throws DocumentException if an error occurs.
+ * @throws MetaDataException if an error occurs.
+ */
+ boolean isRegistered(String namespaceUri) throws MetaDataException;
+
+ /**
+ * Register an element set.
+ * @param namespaceUri The namespace URI.
+ * @param elementSet The element set.
+ * @throws MetaDataException if a set is already registered for this name.
+ */
+ void register(String namespaceUri, ElementSet elementSet) throws MetaDataException;
+
+ /**
+ * @return The registered namespace URIs.
+ * @throws MetaDataException if an error occurs.
*/
- boolean isRegistered(String namespaceUri) throws DocumentException;
+ String[] getNamespaceUris() throws MetaDataException;
}
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=424224&r1=424223&r2=424224&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 Fri Jul 21 01:22:43 2006
@@ -27,10 +27,9 @@
import org.apache.excalibur.source.SourceResolver;
import org.apache.lenya.cms.cocoon.source.RepositorySource;
import org.apache.lenya.cms.metadata.MetaData;
-import org.apache.lenya.cms.metadata.MetaDataManager;
+import org.apache.lenya.cms.metadata.MetaDataException;
import org.apache.lenya.cms.metadata.MetaDataOwner;
import org.apache.lenya.cms.repository.Node;
-import org.apache.lenya.cms.repository.RepositoryException;
/**
* A resource (asset).
@@ -42,7 +41,6 @@
private Document document;
private String name;
private ServiceManager manager;
- private MetaDataManager metaDataManager;
private String contentDir = null;
protected static final String FILE_PREFIX = "file:/";
@@ -77,31 +75,6 @@
}
/**
- * @see org.apache.lenya.cms.metadata.MetaDataOwner#getMetaDataManager()
- */
- public MetaDataManager getMetaDataManager() {
- if (this.metaDataManager == null) {
- SourceResolver resolver = null;
- RepositorySource source = null;
- try {
- resolver = (SourceResolver) this.manager.lookup(SourceResolver.ROLE);
- source = (RepositorySource) resolver.resolveURI(getSourceURI());
- this.metaDataManager = source.getNode().getMetaDataManager();
- } catch (Exception e) {
- throw new RuntimeException(e);
- } finally {
- if (resolver != null) {
- if (source != null) {
- resolver.release(source);
- }
- this.manager.release(resolver);
- }
- }
- }
- return metaDataManager;
- }
-
- /**
* @return The source URI.
*/
public String getSourceURI() {
@@ -258,11 +231,11 @@
}
}
- public MetaData getMetaData(String namespaceUri) throws RepositoryException {
+ public MetaData getMetaData(String namespaceUri) throws MetaDataException {
return getRepositoryNodes()[0].getMetaData(namespaceUri);
}
- public String[] getMetaDataNamespaceUris() throws RepositoryException {
+ public String[] getMetaDataNamespaceUris() throws MetaDataException {
return getRepositoryNodes()[0].getMetaDataNamespaceUris();
}
Modified: lenya/trunk/src/java/org/apache/lenya/cms/repository/RepositoryManagerImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/repository/RepositoryManagerImpl.java?rev=424224&r1=424223&r2=424224&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/repository/RepositoryManagerImpl.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/repository/RepositoryManagerImpl.java Fri Jul 21 01:22:43 2006
@@ -37,7 +37,10 @@
SourceResolver resolver = null;
try {
resolver = (SourceResolver) this.manager.lookup(SourceResolver.ROLE);
- destination.getMetaDataManager().replaceMetaData(source.getMetaDataManager());
+ String[] namespaces = source.getMetaDataNamespaceUris();
+ for (int i = 0; i < namespaces.length; i++) {
+ destination.getMetaData(namespaces[i]).replaceBy(source.getMetaData(namespaces[i]));
+ }
SourceUtil.copy(resolver, source.getSourceURI(), destination.getSourceURI());
} catch (Exception e) {
throw new RepositoryException(e);
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=424224&r1=424223&r2=424224&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 Fri Jul 21 01:22:43 2006
@@ -23,6 +23,7 @@
import java.util.Map;
import org.apache.lenya.cms.metadata.MetaData;
+import org.apache.lenya.cms.metadata.MetaDataRegistry;
import org.apache.lenya.cms.repository.Node;
import org.apache.lenya.cms.site.usecases.SiteUsecase;
import org.apache.lenya.cms.usecase.UsecaseException;
@@ -54,32 +55,30 @@
*/
protected void initParameters() {
super.initParameters();
-
- // dc metadata
-
+
+ MetaDataRegistry registry = null;
try {
-
+ registry = (MetaDataRegistry) this.manager.lookup(MetaDataRegistry.ROLE);
+
List numbers = new ArrayList();
-
Map num2namespace = new HashMap();
-
List keyList = new ArrayList();
-
- String[] namespaces = getSourceDocument().getMetaDataNamespaceUris();
-
+
+ String[] namespaces = registry.getNamespaceUris();
+
for (int nsIndex = 0; nsIndex < namespaces.length; nsIndex++) {
MetaData meta = getSourceDocument().getMetaData(namespaces[nsIndex]);
boolean matched = false;
String[] keys = meta.getPossibleKeys();
for (int keyIndex = 0; keyIndex < keys.length; keyIndex++) {
if (meta.getElementSet().getElement(keys[keyIndex]).isEditable()) {
+ String key = nsIndex + "." + keys[keyIndex];
String value = meta.getFirstValue(keys[keyIndex]);
if (value != null) {
- String key = nsIndex + "." + keys[keyIndex];
setParameter(key, value);
- keyList.add(key);
- matched = true;
}
+ keyList.add(key);
+ matched = true;
}
}
if (matched) {
@@ -87,16 +86,20 @@
num2namespace.put("" + nsIndex, namespaces[nsIndex]);
}
}
-
+
setParameter("numbers", numbers);
setParameter("namespaces", num2namespace);
-
+
Collections.sort(keyList);
setParameter("keys", keyList);
} catch (Exception e) {
getLogger().error("Unable to load meta data.", e);
addErrorMessage("Unable to load meta data: " + e.getMessage());
+ } finally {
+ if (registry != null) {
+ this.manager.release(registry);
+ }
}
}
Modified: lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Create.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Create.java?rev=424224&r1=424223&r2=424224&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Create.java (original)
+++ lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Create.java Fri Jul 21 01:22:43 2006
@@ -20,7 +20,6 @@
import java.util.Arrays;
import java.util.Collections;
import java.util.GregorianCalendar;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -31,6 +30,8 @@
import org.apache.cocoon.environment.Session;
import org.apache.lenya.ac.Identity;
import org.apache.lenya.ac.User;
+import org.apache.lenya.cms.metadata.MetaData;
+import org.apache.lenya.cms.metadata.MetaDataException;
import org.apache.lenya.cms.metadata.dublincore.DublinCore;
import org.apache.lenya.cms.publication.Document;
import org.apache.lenya.cms.publication.DocumentException;
@@ -219,22 +220,21 @@
* @param document The document.
* @throws DocumentException if an error occurs.
*/
- protected void setMetaData(Document document) throws DocumentException {
+ protected void setMetaData(Document document) throws MetaDataException {
if (document == null)
throw new IllegalArgumentException("parameter document may not be null");
- Map dcMetaData = new HashMap();
- dcMetaData.put(DublinCore.ELEMENT_TITLE, getParameterAsString(DublinCore.ELEMENT_TITLE));
- dcMetaData.put(DublinCore.ELEMENT_CREATOR, getParameterAsString(DublinCore.ELEMENT_CREATOR));
- dcMetaData.put(DublinCore.ELEMENT_PUBLISHER,
+ MetaData dcMetaData = document.getMetaData(DublinCore.DC_NAMESPACE);
+
+ dcMetaData.setValue(DublinCore.ELEMENT_TITLE, getParameterAsString(DublinCore.ELEMENT_TITLE));
+ dcMetaData.setValue(DublinCore.ELEMENT_CREATOR, getParameterAsString(DublinCore.ELEMENT_CREATOR));
+ dcMetaData.setValue(DublinCore.ELEMENT_PUBLISHER,
getParameterAsString(DublinCore.ELEMENT_PUBLISHER));
- dcMetaData.put(DublinCore.ELEMENT_SUBJECT, getParameterAsString(DublinCore.ELEMENT_SUBJECT));
- dcMetaData.put(DublinCore.ELEMENT_DATE, getParameterAsString(DublinCore.ELEMENT_DATE));
- dcMetaData.put(DublinCore.ELEMENT_RIGHTS, getParameterAsString(DublinCore.ELEMENT_RIGHTS));
- dcMetaData.put(DublinCore.ELEMENT_LANGUAGE, getParameterAsString(LANGUAGE));
-
- document.getMetaDataManager().setDublinCoreMetaData(dcMetaData);
+ dcMetaData.setValue(DublinCore.ELEMENT_SUBJECT, getParameterAsString(DublinCore.ELEMENT_SUBJECT));
+ dcMetaData.setValue(DublinCore.ELEMENT_DATE, getParameterAsString(DublinCore.ELEMENT_DATE));
+ dcMetaData.setValue(DublinCore.ELEMENT_RIGHTS, getParameterAsString(DublinCore.ELEMENT_RIGHTS));
+ dcMetaData.setValue(DublinCore.ELEMENT_LANGUAGE, getParameterAsString(LANGUAGE));
}
/**
Modified: lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/CreateDocument.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/CreateDocument.java?rev=424224&r1=424223&r2=424224&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/CreateDocument.java (original)
+++ lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/CreateDocument.java Fri Jul 21 01:22:43 2006
@@ -19,11 +19,8 @@
import java.util.Arrays;
import org.apache.avalon.framework.service.ServiceSelector;
-import org.apache.lenya.cms.metadata.MetaData;
-import org.apache.lenya.cms.metadata.usecases.Metadata;
import org.apache.lenya.cms.publication.Document;
import org.apache.lenya.cms.publication.DocumentBuilder;
-import org.apache.lenya.cms.publication.DocumentException;
import org.apache.lenya.cms.publication.Publication;
/**
@@ -174,23 +171,6 @@
return getParameterAsString(DOCUMENT_TYPE);
}
- /**
- * @see org.apache.lenya.cms.site.usecases.Create#setMetaData(org.apache.lenya.cms.publication.Document)
- */
- protected void setMetaData(Document document) throws DocumentException {
- super.setMetaData(document);
-
- MetaData customMeta = document.getMetaDataManager().getCustomMetaData();
- String[] paramNames = getParameterNames();
- for (int i=0; i<paramNames.length; i++) {
- if (paramNames[i].startsWith("custom.")) {
- String key = paramNames[i].substring("custom.".length());
- String value = getParameterAsString(paramNames[i]);
- customMeta.addValue(key, value);
- }
- }
- }
-
protected String getSourceExtension() {
return "xml";
}
Modified: lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/JCRSourceNode.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/JCRSourceNode.java?rev=424224&r1=424223&r2=424224&view=diff
==============================================================================
--- lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/JCRSourceNode.java (original)
+++ lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/JCRSourceNode.java Fri Jul 21 01:22:43 2006
@@ -18,9 +18,6 @@
import org.apache.avalon.framework.logger.Logger;
import org.apache.avalon.framework.service.ServiceManager;
-import org.apache.lenya.cms.jcr.metadata.JCRMetaDataManager;
-import org.apache.lenya.cms.metadata.MetaDataManager;
-import org.apache.lenya.cms.publication.DocumentException;
import org.apache.lenya.cms.repository.RepositoryException;
import org.apache.lenya.cms.repository.Session;
import org.apache.lenya.cms.repository.SourceNode;
@@ -52,15 +49,6 @@
return "jcr://" + path;
}
- private MetaDataManager metaDataManager;
-
- public MetaDataManager getMetaDataManager() throws DocumentException {
- if (this.metaDataManager == null) {
- this.metaDataManager = new JCRMetaDataManager(getRealSourceURI(), this.manager, getLogger());
- }
- return this.metaDataManager;
- }
-
/**
* No separate meta data node, so no locking is required.
* @see org.apache.lenya.cms.repository.SourceNode#lockMetaData()
Modified: lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/LenyaJCRSourceFactory.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/LenyaJCRSourceFactory.java?rev=424224&r1=424223&r2=424224&view=diff
==============================================================================
--- lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/LenyaJCRSourceFactory.java (original)
+++ lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/LenyaJCRSourceFactory.java Fri Jul 21 01:22:43 2006
@@ -20,13 +20,13 @@
import javax.jcr.RepositoryException;
import org.apache.cocoon.jcr.source.JCRSourceFactory;
-import org.apache.lenya.cms.metadata.LenyaMetaData;
+import org.apache.lenya.cms.publication.PageEnvelope;
public class LenyaJCRSourceFactory extends JCRSourceFactory {
public Node createFileNode(Node folderNode, String name) throws RepositoryException {
Node node = super.createFileNode(folderNode, name);
- String prefix = node.getSession().getNamespacePrefix(LenyaMetaData.NAMESPACE);
+ String prefix = node.getSession().getNamespacePrefix(PageEnvelope.NAMESPACE);
if (!prefix.equals("")) {
prefix = prefix + ":";
}
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=424224&r1=424223&r2=424224&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 Fri Jul 21 01:22:43 2006
@@ -45,9 +45,7 @@
import org.apache.jackrabbit.core.nodetype.PropDef;
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;
/**
* Lenya-specific repository implementation.
@@ -129,16 +127,17 @@
NodeTypeManagerImpl nodeTypeManager = (NodeTypeManagerImpl) jcrSession.getWorkspace()
.getNodeTypeManager();
NodeTypeRegistry registry = nodeTypeManager.getNodeTypeRegistry();
+ /*
if (!registry.isRegistered(new QName(LenyaMetaData.NAMESPACE, CONTENT_NODE))) {
-
+
List propDefs = new ArrayList();
Map key2namespace = new HashMap();
-/*
+
String[] lenyaKeys = LenyaMetaData.ELEMENTS;
for (int i = 0; i < lenyaKeys.length; i++) {
key2namespace.put(lenyaKeys[i], LenyaMetaData.NAMESPACE);
}
-*/
+
List dcKeyList = DublinCoreImpl.getAttributeNames();
String[] dcKeys = (String[]) dcKeyList.toArray(new String[dcKeyList.size()]);
for (int i = 0; i < dcKeys.length; i++) {
@@ -165,6 +164,7 @@
registry.registerNodeType(def);
}
+ */
}
}
Modified: lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/metadata/JCRMetaData.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/metadata/JCRMetaData.java?rev=424224&r1=424223&r2=424224&view=diff
==============================================================================
--- lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/metadata/JCRMetaData.java (original)
+++ lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/metadata/JCRMetaData.java Fri Jul 21 01:22:43 2006
@@ -35,7 +35,9 @@
import org.apache.excalibur.source.SourceResolver;
import org.apache.lenya.cms.metadata.ElementSet;
import org.apache.lenya.cms.metadata.MetaData;
+import org.apache.lenya.cms.metadata.MetaDataException;
import org.apache.lenya.cms.publication.DocumentException;
+import org.apache.lenya.cms.repository.RepositoryException;
/**
* JCR based meta data.
@@ -113,7 +115,7 @@
}
}
- public void save() throws DocumentException {
+ public void save() throws MetaDataException {
SourceResolver resolver = null;
JCRNodeSource source = null;
try {
@@ -154,11 +156,11 @@
}
}
- public String[] getValues(String key) throws DocumentException {
+ public String[] getValues(String key) throws MetaDataException {
return (String[]) getKey2Values().get(key);
}
- public String getFirstValue(String key) throws DocumentException {
+ public String getFirstValue(String key) throws MetaDataException {
String value = null;
String[] values = (String[]) getKey2Values().get(key);
if (values.length > 0) {
@@ -167,12 +169,12 @@
return value;
}
- public void setValue(String key, String value) throws DocumentException {
+ public void setValue(String key, String value) throws MetaDataException {
String[] values = { value };
getKey2Values().put(key, values);
}
- public void addValue(String key, String value) throws DocumentException {
+ public void addValue(String key, String value) throws MetaDataException {
String[] values = (String[]) getKey2Values().get(key);
List valueList = new ArrayList(Arrays.asList(values));
valueList.add(value);
@@ -180,7 +182,7 @@
getKey2Values().put(key, values);
}
- public void replaceBy(MetaData other) throws DocumentException {
+ public void replaceBy(MetaData other) throws MetaDataException {
this.key2values = new HashMap();
String[] keys = getPossibleKeys();
for (int i = 0; i < keys.length; i++) {
@@ -213,14 +215,14 @@
return null;
}
- public long getLastModified() throws DocumentException {
+ public long getLastModified() throws MetaDataException {
long lastModified = 0;
try {
SourceResolver resolver = (SourceResolver) this.manager.lookup(SourceResolver.ROLE);
JCRNodeSource source = (JCRNodeSource) resolver.resolveURI(this.sourceUri);
lastModified = source.getLastModified();
} catch (Exception e) {
- throw new DocumentException("Error resolving meta data source", e);
+ throw new MetaDataException("Error resolving meta data source", e);
}
return lastModified;
}
Modified: lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/usecases/Import.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/usecases/Import.java?rev=424224&r1=424223&r2=424224&view=diff
==============================================================================
--- lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/usecases/Import.java (original)
+++ lenya/trunk/src/modules-optional/jcrsource/java/src/org/apache/lenya/cms/jcr/usecases/Import.java Fri Jul 21 01:22:43 2006
@@ -26,8 +26,6 @@
import org.apache.avalon.framework.service.ServiceSelector;
import org.apache.excalibur.source.SourceResolver;
import org.apache.lenya.cms.cocoon.source.SourceUtil;
-import org.apache.lenya.cms.jcr.metadata.JCRMetaDataManager;
-import org.apache.lenya.cms.metadata.MetaDataManager;
import org.apache.lenya.cms.publication.Document;
import org.apache.lenya.cms.publication.DocumentFactory;
import org.apache.lenya.cms.publication.Publication;
@@ -81,10 +79,12 @@
final String lenyaUri = docs[j].getSourceURI();
final String sourcePath = lenyaUri.substring("lenya://".length());
final String contextUri = "context://" + sourcePath + ".meta";
+ /*
MetaDataManager meta = new MetaDataManager(contextUri,
this.manager,
getLogger());
uri2meta.put(docs[j].getSourceURI(), meta);
+ */
}
nodes.add(siteManager.getSiteStructure(map, pub, areas[i]).getRepositoryNode());
}
@@ -97,7 +97,7 @@
final String jcrUri = "jcr://" + sourcePath;
if (SourceUtil.exists(contextUri, this.manager)) {
SourceUtil.copy(resolver, contextUri, jcrUri);
-
+/*
MetaDataManager sourceMgr = (MetaDataManager) uri2meta.get(lenyaUri);
if (sourceMgr != null) {
MetaDataManager jcrMgr = new JCRMetaDataManager(jcrUri,
@@ -105,6 +105,7 @@
getLogger());
jcrMgr.replaceMetaData(sourceMgr);
}
+ */
} else {
addInfoMessage("The source [" + contextUri + "] does not exist.");
}
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=424224&r1=424223&r2=424224&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 Fri Jul 21 01:22:43 2006
@@ -24,8 +24,8 @@
import java.io.InputStream;
import java.io.OutputStream;
-import org.apache.lenya.cms.metadata.LenyaMetaData;
import org.apache.lenya.cms.metadata.dublincore.DublinCore;
+import org.apache.lenya.cms.publication.PageEnvelope;
import org.apache.lenya.cms.repo.Area;
import org.apache.lenya.cms.repo.Asset;
import org.apache.lenya.cms.repo.AssetType;
@@ -221,7 +221,7 @@
} catch (Exception e) {
throw new RuntimeException(e);
}
- NamespaceHelper helper = new NamespaceHelper(LenyaMetaData.NAMESPACE, "", xmlDoc);
+ NamespaceHelper helper = new NamespaceHelper(PageEnvelope.NAMESPACE, "", xmlDoc);
Element metaElement = helper.getFirstChild(xmlDoc.getDocumentElement(), "meta");
Element internalElement = helper.getFirstChild(metaElement, "internal");
Element resourceTypeElement = helper.getFirstChild(internalElement, "resourceType");
@@ -299,7 +299,7 @@
org.w3c.dom.Document xmlDoc = DocumentHelper.readDocument(metaFile);
importMetaData(trans,
xmlDoc,
- LenyaMetaData.NAMESPACE,
+ PageEnvelope.NAMESPACE,
"internal",
LenyaElements.ELEMENT_SET,
LenyaElements.ELEMENTS);
@@ -324,7 +324,7 @@
String namespaceUri, String parentElement, String elementSetName,
org.apache.lenya.cms.repo.metadata.Element[] elements) throws RepositoryException {
- NamespaceHelper lenyaHelper = new NamespaceHelper(LenyaMetaData.NAMESPACE, "", xmlDoc);
+ NamespaceHelper lenyaHelper = new NamespaceHelper(PageEnvelope.NAMESPACE, "", xmlDoc);
Element metaElement = lenyaHelper.getFirstChild(xmlDoc.getDocumentElement(), "meta");
Element parent = lenyaHelper.getFirstChild(metaElement, parentElement);
Modified: lenya/trunk/src/modules/repository/java/src/org/apache/lenya/cms/repo/adapter/LenyaElements.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/repository/java/src/org/apache/lenya/cms/repo/adapter/LenyaElements.java?rev=424224&r1=424223&r2=424224&view=diff
==============================================================================
--- lenya/trunk/src/modules/repository/java/src/org/apache/lenya/cms/repo/adapter/LenyaElements.java (original)
+++ lenya/trunk/src/modules/repository/java/src/org/apache/lenya/cms/repo/adapter/LenyaElements.java Fri Jul 21 01:22:43 2006
@@ -16,7 +16,6 @@
*/
package org.apache.lenya.cms.repo.adapter;
-import org.apache.lenya.cms.metadata.LenyaMetaData;
import org.apache.lenya.cms.repo.metadata.Element;
import org.apache.lenya.cms.repo.metadata.impl.ElementImpl;
Modified: lenya/trunk/src/modules/repository/java/src/org/apache/lenya/cms/repo/adapter/RepoMetaData.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/repository/java/src/org/apache/lenya/cms/repo/adapter/RepoMetaData.java?rev=424224&r1=424223&r2=424224&view=diff
==============================================================================
--- lenya/trunk/src/modules/repository/java/src/org/apache/lenya/cms/repo/adapter/RepoMetaData.java (original)
+++ lenya/trunk/src/modules/repository/java/src/org/apache/lenya/cms/repo/adapter/RepoMetaData.java Fri Jul 21 01:22:43 2006
@@ -21,7 +21,7 @@
import org.apache.lenya.cms.metadata.ElementSet;
import org.apache.lenya.cms.metadata.MetaData;
-import org.apache.lenya.cms.publication.DocumentException;
+import org.apache.lenya.cms.metadata.MetaDataException;
import org.apache.lenya.cms.repo.RepositoryException;
import org.apache.lenya.cms.repo.metadata.Element;
@@ -37,18 +37,18 @@
return this.delegate;
}
- public void save() throws DocumentException {
+ public void save() throws RepositoryException {
}
- public String[] getValues(String key) throws DocumentException {
+ public String[] getValues(String key) throws MetaDataException {
try {
return delegate.getValues(key);
} catch (RepositoryException e) {
- throw new DocumentException(e);
+ throw new MetaDataException(e);
}
}
- public String getFirstValue(String key) throws DocumentException {
+ public String getFirstValue(String key) throws MetaDataException {
try {
if (delegate.getElementSet().getElement(key).isMultiple()) {
String[] values = delegate.getValues(key);
@@ -57,7 +57,7 @@
return delegate.getValue(key);
}
} catch (RepositoryException e) {
- throw new DocumentException(e);
+ throw new MetaDataException(e);
}
}
@@ -65,7 +65,7 @@
throw new RuntimeException("not implemented");
}
- public void setValue(String key, String value) throws DocumentException {
+ public void setValue(String key, String value) throws MetaDataException {
try {
if (delegate.getElementSet().getElement(key).isMultiple()) {
delegate.clear(key);
@@ -74,19 +74,19 @@
delegate.setValue(key, value);
}
} catch (RepositoryException e) {
- throw new DocumentException(e);
+ throw new MetaDataException(e);
}
}
- public void addValue(String key, String value) throws DocumentException {
+ public void addValue(String key, String value) throws MetaDataException {
try {
delegate.addValue(key, value);
} catch (RepositoryException e) {
- throw new DocumentException(e);
+ throw new MetaDataException(e);
}
}
- public void replaceBy(MetaData other) throws DocumentException {
+ public void replaceBy(MetaData other) throws MetaDataException {
throw new RuntimeException("not implemented");
}
@@ -94,7 +94,7 @@
Element[] elements;
try {
elements = delegate.getElementSet().getElements();
- } catch (RepositoryException e) {
+ } catch (org.apache.lenya.cms.repo.RepositoryException e) {
throw new RuntimeException(e);
}
String[] names = new String[elements.length];
@@ -112,7 +112,7 @@
return Arrays.asList(getPossibleKeys()).contains(key);
}
- public long getLastModified() throws DocumentException {
+ public long getLastModified() throws MetaDataException {
throw new RuntimeException("not implemented");
}
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=424224&r1=424223&r2=424224&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 Fri Jul 21 01:22:43 2006
@@ -24,8 +24,7 @@
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.avalon.framework.logger.Logger;
import org.apache.lenya.cms.metadata.MetaData;
-import org.apache.lenya.cms.metadata.MetaDataManager;
-import org.apache.lenya.cms.publication.DocumentException;
+import org.apache.lenya.cms.metadata.MetaDataException;
import org.apache.lenya.cms.repo.Translation;
import org.apache.lenya.cms.repository.Node;
import org.apache.lenya.cms.repository.RepositoryException;
@@ -170,35 +169,16 @@
throw new RuntimeException("not implemented");
}
- private MetaDataManager metaDataManager;
-
- public MetaDataManager getMetaDataManager() throws DocumentException {
- if (this.metaDataManager == null) {
- org.apache.lenya.cms.repo.Session session;
- try {
- session = getTranslation().getAsset()
- .getContent()
- .getArea()
- .getPublication()
- .getSession();
- } catch (org.apache.lenya.cms.repo.RepositoryException e) {
- throw new DocumentException(e);
- }
- this.metaDataManager = new RepoMetaDataManager(session, getTranslation(), getLogger());
- }
- return this.metaDataManager;
- }
-
public String getIdentifiableType() {
return Node.IDENTIFIABLE_TYPE;
}
- public MetaData getMetaData(String namespaceUri) throws RepositoryException {
+ public MetaData getMetaData(String namespaceUri) throws MetaDataException {
// TODO Auto-generated method stub
return null;
}
- public String[] getMetaDataNamespaceUris() throws RepositoryException {
+ public String[] getMetaDataNamespaceUris() throws MetaDataException {
// TODO Auto-generated method stub
return null;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org