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