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 2009/02/10 19:22:34 UTC

svn commit: r743041 [2/9] - in /lenya/trunk: org.apache.lenya.core.api/ org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/ org.apache.lenya.core.api/src/test/ org.apache.lenya.core.api/src/test/java/ org.apache.lenya.core.api/src...

Modified: lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/PublicationConfiguration.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/PublicationConfiguration.java?rev=743041&r1=743040&r2=743041&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/PublicationConfiguration.java (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/PublicationConfiguration.java Tue Feb 10 18:22:23 2009
@@ -32,11 +32,13 @@
 import org.apache.avalon.framework.configuration.DefaultConfigurationSerializer;
 import org.apache.cocoon.util.AbstractLogEnabled;
 import org.apache.commons.lang.Validate;
+import org.apache.excalibur.source.ModifiableSource;
+import org.apache.excalibur.source.Source;
+import org.apache.excalibur.source.SourceResolver;
 import org.apache.lenya.cms.repository.Node;
 
 /**
- * A publication's configuration. Keep in sync with
- * src/resources/build/publication.rng!
+ * A publication's configuration. Keep in sync with src/resources/build/publication.rng!
  */
 public class PublicationConfiguration extends AbstractLogEnabled implements Publication {
 
@@ -47,8 +49,8 @@
     private String lenyaVersion;
     private String lenyaRevision;
     private String cocoonVersion;
-    
-    private File servletContext;
+
+    private String pubBaseUri;
     private DocumentIdToPathMapper mapper = null;
     private SortedSet languages = new TreeSet();
     private String defaultLanguage = null;
@@ -57,14 +59,14 @@
     private String contentDir = null;
     private SortedSet modules = new TreeSet();
     private String contextPath;
+    private SourceResolver sourceResolver;
 
     private boolean isConfigLoaded = false;
 
     /**
      * <code>CONFIGURATION_FILE</code> The publication configuration file
      */
-    public static final String CONFIGURATION_FILE = CONFIGURATION_PATH + File.separator
-            + "publication.xml";
+    public static final String CONFIGURATION_URI = CONFIGURATION_PATH + "/" + "publication.xml";
 
     private static final String CONFIGURATION_NAMESPACE = "http://apache.org/cocoon/lenya/publication/1.1";
 
@@ -98,25 +100,28 @@
     private static final String ATTRIBUTE_AREA = "area";
     private static final String ATTRIBUTE_URL = "url";
     private static final String ATTRIBUTE_SSL = "ssl";
-    
+
     protected static final String NAMESPACE = "http://apache.org/cocoon/lenya/publication/1.1";
     protected static final String NS_PREFIX = "";
 
     /**
      * Creates a new instance of Publication
      * @param _id the publication id
-     * @param servletContextPath the servlet context directory of this publication
+     * @param pubBaseUri The base filesystem path where publications are located.
      * @param servletContextUrlPath The servlet context path (URL snippet).
-     * @throws PublicationException if there was a problem reading the config
-     *         file
+     * @throws PublicationException if there was a problem reading the config file
      */
-    protected PublicationConfiguration(String _id, String servletContextPath, String servletContextUrlPath)
+    protected PublicationConfiguration(String _id, String pubBaseUri, String servletContextUrlPath)
             throws PublicationException {
         this.id = _id;
-        this.servletContext = new File(servletContextPath);
+        this.pubBaseUri = pubBaseUri;
         this.contextPath = servletContextUrlPath;
     }
 
+    public void setSourceResolver(SourceResolver resolver) {
+        this.sourceResolver = resolver;
+    }
+
     /**
      * Loads the configuration.
      */
@@ -130,38 +135,43 @@
             getLogger().debug("Loading configuration for publication [" + getId() + "]");
         }
 
-        File configFile = getConfigurationFile();
-
-        if (!configFile.exists()) {
-            getLogger().error(
-                    "Config file [" + configFile.getAbsolutePath() + "] does not exist: ",
-                    new RuntimeException());
-            throw new RuntimeException("The configuration file [" + configFile
-                    + "] does not exist!");
-        } else {
-            getLogger().debug("Configuration file [" + configFile + "] exists.");
-        }
-
-        final boolean ENABLE_XML_NAMESPACES = true;
-        DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder(ENABLE_XML_NAMESPACES);
-
+        String configUri = getConfigurationUri();
         Configuration config;
+        Source source = null;
+        try {
+            source = this.sourceResolver.resolveURI(configUri);
+            if (!source.exists()) {
+                throw new RuntimeException("The configuration file [" + configUri
+                        + "] does not exist!");
+            } else {
+                getLogger().debug("Configuration file [" + configUri + "] exists.");
+            }
+            final boolean ENABLE_XML_NAMESPACES = true;
+            DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder(
+                    ENABLE_XML_NAMESPACES);
+            config = builder.build(source.getInputStream());
+        } catch (final Exception e) {
+            throw new RuntimeException("Problem with config file: " + configUri, e);
+        } finally {
+            if (source != null) {
+                this.sourceResolver.release(source);
+            }
+        }
 
         String pathMapperClassName = null;
 
         try {
-            config = builder.buildFromFile(configFile);
 
             String pubName = config.getChild(ELEMENT_NAME).getValue(null);
             if (pubName == null) {
-                getLogger().warn("No publication name set for publication [" + getId() +
-                        "], using default name.");
+                getLogger().warn(
+                        "No publication name set for publication [" + getId()
+                                + "], using default name.");
                 this.name = getId();
-            }
-            else {
+            } else {
                 this.name = pubName;
             }
-            
+
             this.description = config.getChild(ELEMENT_DESCRIPTION).getValue("");
             this.version = config.getChild(ELEMENT_VERSION).getValue("");
             this.lenyaVersion = config.getChild(ELEMENT_LENYA_VERSION).getValue("");
@@ -176,7 +186,7 @@
                 if (config.getChild(ELEMENT_PATH_MAPPER).getNamespace() != CONFIGURATION_NAMESPACE) {
                     getLogger().warn(
                             "Deprecated configuration: the publication configuration elements in "
-                                    + configFile + " must be in the " + CONFIGURATION_NAMESPACE
+                                    + configUri + " must be in the " + CONFIGURATION_NAMESPACE
                                     + " namespace."
                                     + " See webapp/lenya/resources/schemas/publication.xml.");
                 }
@@ -275,25 +285,23 @@
             }
 
         } catch (final Exception e) {
-            throw new RuntimeException("Problem with config file: " + configFile.getAbsolutePath(),
-                    e);
+            throw new RuntimeException("Problem with config file: " + configUri, e);
         }
 
         this.breadcrumbprefix = config.getChild(ELEMENT_BREADCRUMB_PREFIX).getValue("");
 
         isConfigLoaded = true;
     }
-    
+
     protected String getDefaultProxyUrl(String area) {
         return this.contextPath + "/" + this.id + "/" + area;
     }
 
     /**
-     * @return The configuration file ({@link #CONFIGURATION_FILE}).
+     * @return The configuration file ({@link #CONFIGURATION_URI}).
      */
-    protected File getConfigurationFile() {
-        File configFile = new File(getDirectory(), CONFIGURATION_FILE);
-        return configFile;
+    protected String getConfigurationUri() {
+        return getPubBaseUri() + "/" + getId() + "/" + CONFIGURATION_URI;
     }
 
     /**
@@ -309,8 +317,8 @@
      * <code>webapps/lenya</code> directory).
      * @return A <code>File</code> object.
      */
-    public File getServletContext() {
-        return this.servletContext;
+    public String getPubBaseUri() {
+        return this.pubBaseUri;
     }
 
     /**
@@ -318,7 +326,7 @@
      * @return A <code>File</code> object.
      */
     public File getDirectory() {
-        return new File(getServletContext(), PUBLICATION_PREFIX + File.separator + getId());
+        return new File(getPubBaseUri(), getId());
     }
 
     /**
@@ -366,8 +374,8 @@
     public void setDefaultLanguage(String language) {
         Validate.notNull(language);
         if (!Arrays.asList(getLanguages()).contains(language)) {
-            throw new IllegalArgumentException("The publication [" + this +
-                    "] doesn't contain the language [" + language + "]!");
+            throw new IllegalArgumentException("The publication [" + this
+                    + "] doesn't contain the language [" + language + "]!");
         }
         this.defaultLanguage = language;
     }
@@ -382,8 +390,8 @@
     }
 
     /**
-     * Get the breadcrumb prefix. It can be used as a prefix if a publication is
-     * part of a larger site
+     * Get the breadcrumb prefix. It can be used as a prefix if a publication is part of a larger
+     * site
      * @return the breadcrumb prefix
      */
     public String getBreadcrumbPrefix() {
@@ -411,7 +419,7 @@
         if (getClass().isInstance(object)) {
             Publication publication = (Publication) object;
             equals = getId().equals(publication.getId())
-                    && getServletContext().equals(publication.getServletContext());
+                    && getPubBaseUri().equals(publication.getPubBaseUri());
         }
 
         return equals;
@@ -421,7 +429,7 @@
      * @see java.lang.Object#hashCode()
      */
     public int hashCode() {
-        String key = getServletContext() + ":" + getId();
+        String key = getPubBaseUri() + ":" + getId();
         return key.hashCode();
     }
 
@@ -436,14 +444,13 @@
     protected String getProxyKey(String area, boolean isSslProtected) {
         return area + ":" + isSslProtected;
     }
-    
+
     protected String getProxyUrl(String area, boolean isSslProtected) {
         loadConfiguration();
         Object key = getProxyKey(area, isSslProtected);
         return (String) this.areaSsl2proxy.get(key);
     }
 
-    
     public Proxy getProxy(Document document, boolean isSslProtected) {
         return getProxy(document.getArea(), isSslProtected);
     }
@@ -457,14 +464,24 @@
         }
         return proxy;
     }
-    
+
     private String siteManagerName;
 
     /**
      * @see org.apache.lenya.cms.publication.Publication#exists()
      */
     public boolean exists() {
-        return getConfigurationFile().exists();
+        Source source = null;
+        try {
+            source = this.sourceResolver.resolveURI(getConfigurationUri());
+            return source.exists();
+        } catch (final Exception e) {
+            throw new RuntimeException(e);
+        } finally {
+            if (source != null) {
+                this.sourceResolver.release(source);
+            }
+        }
     }
 
     private String template;
@@ -505,14 +522,14 @@
     }
 
     protected String getDefaultContentDir() {
-        return new File(getDirectory(), CONTENT_PATH).getAbsolutePath();
+        return getPubBaseUri() + "/" + getId() + "/" + CONTENT_PATH;
     }
 
     /**
      * @see org.apache.lenya.cms.publication.Publication#getSourceURI()
      */
     public String getSourceURI() {
-        return Node.LENYA_PROTOCOL + PUBLICATION_PREFIX_URI + "/" + this.id;
+        return Node.LENYA_PROTOCOL + "/" + this.id;
     }
 
     /**
@@ -590,12 +607,12 @@
     public void removeLanguage(String language) {
         Validate.notNull(language);
         if (!Arrays.asList(getLanguages()).contains(language)) {
-            throw new IllegalArgumentException("The publication [" + this +
-                    "] doesn't contain the language [" + language + "]!");
+            throw new IllegalArgumentException("The publication [" + this
+                    + "] doesn't contain the language [" + language + "]!");
         }
         if (language.equals(getDefaultLanguage())) {
-            throw new IllegalArgumentException("Can't remove the language [" + language +
-                    "] because it is the default language.");
+            throw new IllegalArgumentException("Can't remove the language [" + language
+                    + "] because it is the default language.");
         }
         this.languages.remove(language);
     }
@@ -605,7 +622,7 @@
         Validate.isTrue(name.length() > 0, "name must not be empty");
         this.name = name;
     }
-    
+
     protected DefaultConfiguration createConfig(String name) {
         return new DefaultConfiguration(name, "", NAMESPACE, NS_PREFIX);
     }
@@ -623,105 +640,112 @@
     }
 
     public void saveConfiguration() {
-        File configFile = getConfigurationFile();
-
-        DefaultConfiguration config = new DefaultConfiguration("publication", "", NAMESPACE, NS_PREFIX);
 
-        try {
+        DefaultConfiguration config = new DefaultConfiguration("publication", "", NAMESPACE,
+                NS_PREFIX);
 
-            config.addChild(createConfig(ELEMENT_NAME, getName()));
-            config.addChild(createConfig(ELEMENT_DESCRIPTION, this.description));
-            config.addChild(createConfig(ELEMENT_VERSION, this.version));
-            config.addChild(createConfig(ELEMENT_LENYA_VERSION, this.lenyaVersion));
-            config.addChild(createConfig(ELEMENT_LENYA_REVISION, this.lenyaRevision));
-            config.addChild(createConfig(ELEMENT_COCOON_VERSION, this.cocoonVersion));
-
-            config.addChild(createConfig(ELEMENT_PATH_MAPPER, getPathMapper().getClass().getName()));
-            config.addChild(createConfig(ELEMENT_DOCUMENT_BUILDER, ATTRIBUTE_NAME, getDocumentBuilderHint()));
-            
-            String[] languages = getLanguages();
-            String defaultLanguage = getDefaultLanguage();
-            
-            DefaultConfiguration languagesConfig = createConfig(ELEMENT_LANGUAGES);
-            for (int i = 0; i < languages.length; i++) {
-                DefaultConfiguration languageConfig = createConfig(ELEMENT_LANGUAGE);
-                languageConfig.setValue(languages[i]);
-                if (languages[i].equals(defaultLanguage)) {
-                    languageConfig.setAttribute(ATTRIBUTE_DEFAULT_LANGUAGE, true);
-                }
-                languagesConfig.addChild(languageConfig);
-            }
-            config.addChild(languagesConfig);
-            
-            config.addChild(createConfig(ELEMENT_SITE_MANAGER, ATTRIBUTE_NAME, getSiteManagerHint()));
-            
-            DefaultConfiguration proxiesConfig = createConfig(ELEMENT_PROXIES);
-            config.addChild(proxiesConfig);
-            Boolean[] booleans = { Boolean.FALSE, Boolean.TRUE };
-            String[] areas = getAreaNames();
-            for (int b = 0; b < booleans.length; b++) {
-                for (int a = 0; a < areas.length; a++) {
-                    boolean ssl = booleans[b].booleanValue();
-                    
-                    Proxy proxy = getProxy(areas[a], ssl);
-                    
-                    // add only proxy URLs for non-default proxies
-                    if (!proxy.getUrl().equals(proxy.getDefaultUrl())) {
-                        DefaultConfiguration proxyConf = createConfig(ELEMENT_PROXY);
-                        proxyConf.setAttribute(ATTRIBUTE_AREA, areas[a]);
-                        proxyConf.setAttribute(ATTRIBUTE_SSL, ssl);
-                        proxyConf.setAttribute(ATTRIBUTE_URL, proxy.getUrl());
-                        proxiesConfig.addChild(proxyConf);
-                    }
-                    
+        config.addChild(createConfig(ELEMENT_NAME, getName()));
+        config.addChild(createConfig(ELEMENT_DESCRIPTION, this.description));
+        config.addChild(createConfig(ELEMENT_VERSION, this.version));
+        config.addChild(createConfig(ELEMENT_LENYA_VERSION, this.lenyaVersion));
+        config.addChild(createConfig(ELEMENT_LENYA_REVISION, this.lenyaRevision));
+        config.addChild(createConfig(ELEMENT_COCOON_VERSION, this.cocoonVersion));
+
+        config.addChild(createConfig(ELEMENT_PATH_MAPPER, getPathMapper().getClass().getName()));
+        config.addChild(createConfig(ELEMENT_DOCUMENT_BUILDER, ATTRIBUTE_NAME,
+                getDocumentBuilderHint()));
+
+        String[] languages = getLanguages();
+        String defaultLanguage = getDefaultLanguage();
+
+        DefaultConfiguration languagesConfig = createConfig(ELEMENT_LANGUAGES);
+        for (int i = 0; i < languages.length; i++) {
+            DefaultConfiguration languageConfig = createConfig(ELEMENT_LANGUAGE);
+            languageConfig.setValue(languages[i]);
+            if (languages[i].equals(defaultLanguage)) {
+                languageConfig.setAttribute(ATTRIBUTE_DEFAULT_LANGUAGE, true);
+            }
+            languagesConfig.addChild(languageConfig);
+        }
+        config.addChild(languagesConfig);
+
+        config.addChild(createConfig(ELEMENT_SITE_MANAGER, ATTRIBUTE_NAME, getSiteManagerHint()));
+
+        DefaultConfiguration proxiesConfig = createConfig(ELEMENT_PROXIES);
+        config.addChild(proxiesConfig);
+        Boolean[] booleans = { Boolean.FALSE, Boolean.TRUE };
+        String[] areas = getAreaNames();
+        for (int b = 0; b < booleans.length; b++) {
+            for (int a = 0; a < areas.length; a++) {
+                boolean ssl = booleans[b].booleanValue();
+
+                Proxy proxy = getProxy(areas[a], ssl);
+
+                // add only proxy URLs for non-default proxies
+                if (!proxy.getUrl().equals(proxy.getDefaultUrl())) {
+                    DefaultConfiguration proxyConf = createConfig(ELEMENT_PROXY);
+                    proxyConf.setAttribute(ATTRIBUTE_AREA, areas[a]);
+                    proxyConf.setAttribute(ATTRIBUTE_SSL, ssl);
+                    proxyConf.setAttribute(ATTRIBUTE_URL, proxy.getUrl());
+                    proxiesConfig.addChild(proxyConf);
                 }
+
             }
-            
-            String template = getTemplateId();
-            if (template != null) {
-                config.addChild(createConfig(ELEMENT_TEMPLATE, ATTRIBUTE_ID, template));
-            }
-
-            String instantiatorHint = getInstantiatorHint();
-            if (instantiatorHint != null) {
-                config.addChild(createConfig(ELEMENT_TEMPLATE_INSTANTIATOR, ATTRIBUTE_NAME, instantiatorHint));
-            }
-            
-            String contentDir = getContentDir();
-            if (!contentDir.equals(getDefaultContentDir())) {
-                config.addChild(createConfig(ELEMENT_CONTENT_DIR, ATTRIBUTE_SRC, this.contentDir));
-            }
-            
-            DefaultConfiguration resourceTypesConf = createConfig(ELEMENT_RESOURCE_TYPES);
-            config.addChild(resourceTypesConf);
-            String[] resourceTypes = getResourceTypeNames();
-            for (int i = 0; i < resourceTypes.length; i++) {
-                String type = resourceTypes[i];
-                DefaultConfiguration resourceTypeConf = createConfig(ELEMENT_RESOURCE_TYPE, ATTRIBUTE_NAME, type);
-                if (this.resourceType2workflow.containsKey(type)) {
-                    resourceTypeConf.setAttribute(ATTRIBUTE_WORKFLOW, (String)
-                            this.resourceType2workflow.get(type));
-                }
-                resourceTypesConf.addChild(resourceTypeConf);
+        }
+
+        String template = getTemplateId();
+        if (template != null) {
+            config.addChild(createConfig(ELEMENT_TEMPLATE, ATTRIBUTE_ID, template));
+        }
+
+        String instantiatorHint = getInstantiatorHint();
+        if (instantiatorHint != null) {
+            config.addChild(createConfig(ELEMENT_TEMPLATE_INSTANTIATOR, ATTRIBUTE_NAME,
+                    instantiatorHint));
+        }
+
+        String contentDir = getContentDir();
+        if (!contentDir.equals(getDefaultContentDir())) {
+            config.addChild(createConfig(ELEMENT_CONTENT_DIR, ATTRIBUTE_SRC, this.contentDir));
+        }
+
+        DefaultConfiguration resourceTypesConf = createConfig(ELEMENT_RESOURCE_TYPES);
+        config.addChild(resourceTypesConf);
+        String[] resourceTypes = getResourceTypeNames();
+        for (int i = 0; i < resourceTypes.length; i++) {
+            String type = resourceTypes[i];
+            DefaultConfiguration resourceTypeConf = createConfig(ELEMENT_RESOURCE_TYPE,
+                    ATTRIBUTE_NAME, type);
+            if (this.resourceType2workflow.containsKey(type)) {
+                resourceTypeConf.setAttribute(ATTRIBUTE_WORKFLOW,
+                        (String) this.resourceType2workflow.get(type));
             }
-            
-            DefaultConfiguration modulesConf = createConfig(ELEMENT_MODULES);
-            config.addChild(modulesConf);
-            String[] modules = getModuleNames();
-            for (int i = 0; i < modules.length; i++) {
-                DefaultConfiguration moduleConf = createConfig(ELEMENT_MODULE, ATTRIBUTE_NAME, modules[i]);
-                modulesConf.addChild(moduleConf);
-            }
-            
-            config.addChild(createConfig(ELEMENT_BREADCRUMB_PREFIX, getBreadcrumbPrefix()));
-            
-            DefaultConfigurationSerializer serializer = new DefaultConfigurationSerializer();
-            serializer.setIndent(true);
-            serializer.serializeToFile(getConfigurationFile(), config);
+            resourceTypesConf.addChild(resourceTypeConf);
+        }
 
+        DefaultConfiguration modulesConf = createConfig(ELEMENT_MODULES);
+        config.addChild(modulesConf);
+        String[] modules = getModuleNames();
+        for (int i = 0; i < modules.length; i++) {
+            DefaultConfiguration moduleConf = createConfig(ELEMENT_MODULE, ATTRIBUTE_NAME,
+                    modules[i]);
+            modulesConf.addChild(moduleConf);
+        }
+
+        config.addChild(createConfig(ELEMENT_BREADCRUMB_PREFIX, getBreadcrumbPrefix()));
+
+        DefaultConfigurationSerializer serializer = new DefaultConfigurationSerializer();
+        serializer.setIndent(true);
+        ModifiableSource source = null;
+        try {
+            source = (ModifiableSource) this.sourceResolver.resolveURI(getConfigurationUri());
+            serializer.serialize(source.getOutputStream(), config);
         } catch (final Exception e) {
-            throw new RuntimeException("Problem with config file: " + configFile.getAbsolutePath(),
-                    e);
+            throw new RuntimeException("Problem with config file: " + getConfigurationUri(), e);
+        } finally {
+            if (source != null) {
+                this.sourceResolver.release(source);
+            }
         }
     }
 

Modified: lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/PublicationFactory.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/PublicationFactory.java?rev=743041&r1=743040&r2=743041&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/PublicationFactory.java (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/PublicationFactory.java Tue Feb 10 18:22:23 2009
@@ -21,7 +21,6 @@
 import org.apache.lenya.cms.repository.RepositoryException;
 import org.apache.lenya.cms.repository.RepositoryItem;
 import org.apache.lenya.cms.repository.RepositoryItemFactory;
-import org.apache.lenya.cms.repository.Session;
 
 /**
  * Publication factory.
@@ -30,18 +29,19 @@
 
     private PublicationConfiguration config;
     private NodeFactory nodeFactory;
+    private Session session;
 
     /**
      * @param config The publication configuration.
      */
-    public PublicationFactory(NodeFactory nodeFactory, PublicationConfiguration config) {
+    public PublicationFactory(Session session, NodeFactory nodeFactory, PublicationConfiguration config) {
         this.config = config;
         this.nodeFactory = nodeFactory;
+        this.session = session;
     }
 
-    public RepositoryItem buildItem(Session session, String key) throws RepositoryException {
-        return new PublicationImpl((org.apache.lenya.cms.publication.Session) session,
-                this.nodeFactory, config);
+    public RepositoryItem buildItem(org.apache.lenya.cms.repository.Session session, String key) throws RepositoryException {
+        return new PublicationImpl(this.session, this.nodeFactory, config);
     }
 
     public String getItemType() {

Modified: lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/PublicationImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/PublicationImpl.java?rev=743041&r1=743040&r2=743041&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/PublicationImpl.java (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/PublicationImpl.java Tue Feb 10 18:22:23 2009
@@ -28,6 +28,7 @@
 import org.apache.cocoon.processing.ProcessInfoProvider;
 import org.apache.cocoon.spring.configurator.WebAppContextUtils;
 import org.apache.cocoon.util.AbstractLogEnabled;
+import org.apache.commons.lang.Validate;
 import org.apache.lenya.cms.repository.NodeFactory;
 import org.apache.lenya.cms.repository.RepositoryItem;
 
@@ -82,9 +83,9 @@
         if (this.documentBuilder == null) {
             try {
                 this.documentBuilder = (DocumentBuilder) WebAppContextUtils
-                        .getCurrentWebApplicationContext()
-                        .getBean(
-                                DocumentBuilder.class.getName() + delegate.getDocumentBuilderHint());
+                        .getCurrentWebApplicationContext().getBean(
+                                DocumentBuilder.class.getName() + "/"
+                                        + delegate.getDocumentBuilderHint());
             } catch (Exception e) {
                 throw new RuntimeException(e);
             }
@@ -143,8 +144,8 @@
         return (String[]) this.allResourceTypes.toArray(new String[this.allResourceTypes.size()]);
     }
 
-    public File getServletContext() {
-        return delegate.getServletContext();
+    public String getPubBaseUri() {
+        return delegate.getPubBaseUri();
     }
 
     public String getSiteManagerHint() {

Modified: lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/PublicationManagerImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/PublicationManagerImpl.java?rev=743041&r1=743040&r2=743041&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/PublicationManagerImpl.java (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/PublicationManagerImpl.java Tue Feb 10 18:22:23 2009
@@ -20,9 +20,8 @@
 
 package org.apache.lenya.cms.publication;
 
-import java.io.File;
-import java.io.FileFilter;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -33,9 +32,12 @@
 import org.apache.cocoon.spring.configurator.WebAppContextUtils;
 import org.apache.cocoon.util.AbstractLogEnabled;
 import org.apache.commons.lang.Validate;
+import org.apache.excalibur.source.Source;
+import org.apache.excalibur.source.SourceResolver;
+import org.apache.excalibur.source.TraversableSource;
+import org.apache.excalibur.source.impl.ResourceSource;
 import org.apache.lenya.cms.repository.NodeFactory;
 import org.apache.lenya.cms.repository.RepositoryException;
-import org.apache.lenya.cms.repository.Session;
 
 /**
  * Factory for creating publication objects.
@@ -44,28 +46,42 @@
 
     private Map id2config;
     private NodeFactory nodeFactory;
+    private String publicationBaseUri;
+    private SourceResolver sourceResolver;
 
     protected synchronized Map getId2config() throws PublicationException {
         if (this.id2config == null) {
             this.id2config = new HashMap();
-            File servletContext = new File(getServletContextPath());
-            File publicationsDirectory = new File(servletContext, Publication.PUBLICATION_PREFIX);
-            if (publicationsDirectory.isDirectory()) {
-                File[] publicationDirectories = publicationsDirectory.listFiles(new FileFilter() {
-                    public boolean accept(File file) {
-                        File configFile = new File(file,
-                                PublicationConfiguration.CONFIGURATION_FILE);
-                        return configFile.exists();
+            ResourceSource res;
+            Source source = null;
+            try {
+                source = this.sourceResolver.resolveURI(getPubBaseUri());
+                if (source instanceof TraversableSource) {
+                    TraversableSource pubsSource = (TraversableSource) source;
+                    if (pubsSource.isCollection()) {
+                        Collection pubSources = pubsSource.getChildren();
+                        for (Iterator i = pubSources.iterator(); i.hasNext();) {
+                            TraversableSource pubSource = (TraversableSource) i.next();
+                            TraversableSource configSource = (TraversableSource) this.sourceResolver
+                                    .resolveURI(pubSource.getURI() + "/"
+                                            + PublicationConfiguration.CONFIGURATION_URI);
+                            if (configSource.exists()) {
+                                String id = pubSource.getName();
+                                addPublication(id);
+                            }
+                        }
+                    } else {
+                        getLogger().warn(
+                                "The publications directory " + pubsSource
+                                        + " does not exist.");
                     }
-                });
-                for (int i = 0; i < publicationDirectories.length; i++) {
-                    String id = publicationDirectories[i].getName();
-                    addPublication(id);
                 }
-            } else {
-                getLogger().warn(
-                        "The publications directory " + publicationsDirectory.getAbsolutePath()
-                                + " does not exist.");
+            } catch (final Exception e) {
+                throw new PublicationException(e);
+            } finally {
+                if (source != null) {
+                    this.sourceResolver.release(source);
+                }
             }
         }
         return this.id2config;
@@ -80,9 +96,11 @@
         }
 
         PublicationConfiguration config = (PublicationConfiguration) id2config.get(id);
-        PublicationFactory pubFactory = new PublicationFactory(getNodeFactory(), config);
+        PublicationFactory pubFactory = new PublicationFactory(factory.getSession(),
+                getNodeFactory(), config);
         try {
-            org.apache.lenya.cms.repository.Session repoSession = (Session) factory.getSession();
+            org.apache.lenya.cms.repository.Session repoSession = ((SessionImpl) factory
+                    .getSession()).getRepositorySession();
             return (Publication) repoSession.getRepositoryItem(pubFactory, id);
         } catch (RepositoryException e) {
             throw new PublicationException(e);
@@ -125,12 +143,17 @@
         }
         ProcessInfoProvider process = (ProcessInfoProvider) WebAppContextUtils
                 .getCurrentWebApplicationContext().getBean(ProcessInfoProvider.ROLE);
-        PublicationConfiguration config = new PublicationConfiguration(pubId,
-                getServletContextPath(), process.getRequest().getContextPath());
+        PublicationConfiguration config = new PublicationConfiguration(pubId, getPubBaseUri(),
+                process.getRequest().getContextPath());
+        config.setSourceResolver(this.sourceResolver);
         id2config.put(pubId, config);
     }
 
-    protected String getServletContextPath() {
+    protected String getPubBaseUri() throws PublicationException {
+        return this.publicationBaseUri == null ? getServletContext() : this.publicationBaseUri;
+    }
+
+    private String getServletContext() {
         return WebAppContextUtils.getCurrentWebApplicationContext().getServletContext()
                 .getRealPath("/");
     }
@@ -143,4 +166,12 @@
         this.nodeFactory = nodeFactory;
     }
 
+    public void setPubBaseUri(String uri) {
+        this.publicationBaseUri = uri;
+    }
+
+    public void setSourceResolver(SourceResolver sourceResolver) {
+        this.sourceResolver = sourceResolver;
+    }
+
 }

Modified: lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/RepositoryImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/RepositoryImpl.java?rev=743041&r1=743040&r2=743041&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/RepositoryImpl.java (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/RepositoryImpl.java Tue Feb 10 18:22:23 2009
@@ -28,6 +28,7 @@
 public class RepositoryImpl implements Repository {
 
     private RepositoryManager repositoryManager;
+    private DocumentFactoryBuilder documentFactoryBuilder;
 
     public Session getSession(HttpServletRequest request) {
         Validate.notNull(request);
@@ -47,7 +48,6 @@
     }
 
     public Session startSession(Identity identity, boolean modifiable) {
-
         IdentityWrapper wrapper = new IdentityWrapper(identity);
         org.apache.lenya.cms.repository.Session repoSession;
         try {
@@ -57,6 +57,7 @@
             throw new RuntimeException(e);
         }
         SessionImpl session = new SessionImpl(this, repoSession);
+        session.setDocumentFactoryBuilder(this.documentFactoryBuilder);
         return session;
     }
 
@@ -81,4 +82,8 @@
         return repositoryManager;
     }
 
+    public void setDocumentFactoryBuilder(DocumentFactoryBuilder documentFactoryBuilder) {
+        this.documentFactoryBuilder = documentFactoryBuilder;
+    }
+
 }

Modified: lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/SessionImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/SessionImpl.java?rev=743041&r1=743040&r2=743041&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/SessionImpl.java (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/SessionImpl.java Tue Feb 10 18:22:23 2009
@@ -17,64 +17,42 @@
  */
 package org.apache.lenya.cms.publication;
 
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
 import org.apache.commons.lang.Validate;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.lenya.ac.Identity;
-import org.apache.lenya.cms.observation.ObservationRegistry;
 import org.apache.lenya.cms.observation.RepositoryEvent;
 import org.apache.lenya.cms.observation.RepositoryEventFactory;
-import org.apache.lenya.cms.observation.RepositoryListener;
-import org.apache.lenya.cms.repository.Node;
-import org.apache.lenya.cms.repository.Persistable;
-import org.apache.lenya.cms.repository.RepositoryItem;
-import org.apache.lenya.cms.repository.RepositoryItemFactory;
-import org.apache.lenya.cms.repository.RepositoryItemFactoryWrapper;
-import org.apache.lenya.cms.repository.SharedItemStore;
-import org.apache.lenya.cms.repository.UUIDGenerator;
-import org.apache.lenya.transaction.ConcurrentModificationException;
-import org.apache.lenya.transaction.IdentityMap;
-import org.apache.lenya.transaction.IdentityMapImpl;
-import org.apache.lenya.transaction.Lock;
-import org.apache.lenya.transaction.Lockable;
-import org.apache.lenya.transaction.TransactionException;
-import org.apache.lenya.transaction.TransactionLock;
-import org.apache.lenya.transaction.Transactionable;
+import org.apache.lenya.cms.repository.SessionHolder;
 import org.apache.lenya.transaction.UnitOfWork;
-import org.apache.lenya.transaction.UnitOfWorkImpl;
 
-public class SessionImpl implements Session {
+public class SessionImpl implements Session, SessionHolder {
 
     private static final Log logger = LogFactory.getLog(SessionImpl.class);
-    
+
     private org.apache.lenya.cms.repository.Session repositorySession;
     private RepositoryImpl repository;
     private DocumentFactory documentFactory;
     private DocumentFactoryBuilder documentFactoryBuilder;
 
-    
-    public SessionImpl(RepositoryImpl repository, org.apache.lenya.cms.repository.Session repoSession) {
+    public SessionImpl(RepositoryImpl repository,
+            org.apache.lenya.cms.repository.Session repoSession) {
         Validate.notNull(repository, "repository");
         Validate.notNull(repoSession, "repository session");
         this.repository = repository;
         this.repositorySession = repoSession;
+        this.repositorySession.setHolder(this);
     }
 
-    protected org.apache.lenya.cms.repository.Session getRepositorySession() {
+    public org.apache.lenya.cms.repository.Session getRepositorySession() {
         return this.repositorySession;
     }
 
-    public Publication getPublication(String id) {
+    public Publication getPublication(String id) throws ResourceNotFoundException {
         try {
             return getDocumentFactory().getPublication(id);
         } catch (PublicationException e) {
-            throw new RuntimeException(e);
+            throw new ResourceNotFoundException(e);
         }
     }
 
@@ -82,7 +60,7 @@
         return this.repository;
     }
 
-    public DocumentFactory getDocumentFactory() {
+    protected DocumentFactory getDocumentFactory() {
         if (this.documentFactory == null) {
             this.documentFactory = this.documentFactoryBuilder.createDocumentFactory(this);
         }
@@ -102,7 +80,6 @@
     }
 
     private UnitOfWork unitOfWork;
-    private SharedItemStore sharedItemStore;
 
     /**
      * @return The unit of work.
@@ -159,4 +136,17 @@
         return getRepositorySession().isModifiable();
     }
 
+    public void setDocumentFactoryBuilder(DocumentFactoryBuilder documentFactoryBuilder) {
+        this.documentFactoryBuilder = documentFactoryBuilder;
+    }
+
+    public Publication addPublication(String id) throws RepositoryException {
+        if (existsPublication(id)) {
+            throw new RepositoryException("The publication '" + id + "' already exists.");
+        }
+        DocumentFactoryImpl factory = (DocumentFactoryImpl) getDocumentFactory();
+        factory.getPublicationManager().addPublication(id);
+        return getPublication(id);
+    }
+
 }

Modified: lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/repository/SharedItemStoreImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/repository/SharedItemStoreImpl.java?rev=743041&r1=743040&r2=743041&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/repository/SharedItemStoreImpl.java (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/repository/SharedItemStoreImpl.java Tue Feb 10 18:22:23 2009
@@ -54,19 +54,19 @@
     }
 
     public void addListener(RepositoryListener listener) throws RepositoryException {
-        throw new IllegalStateException("Operation not permitted.");
+        throw new UnsupportedOperationException();
     }
 
     public void commit() throws RepositoryException {
-        throw new IllegalStateException("Operation not permitted.");
+        throw new UnsupportedOperationException();
     }
 
     public void enqueueEvent(RepositoryEvent event) {
-        throw new IllegalStateException("Operation not permitted.");
+        throw new UnsupportedOperationException();
     }
 
     public Identity getIdentity() {
-        throw new IllegalStateException("Operation not permitted.");
+        throw new UnsupportedOperationException();
     }
 
     public RepositoryItem getRepositoryItem(RepositoryItemFactory factory, String key)
@@ -83,15 +83,15 @@
     }
 
     public void rollback() throws RepositoryException {
-        throw new IllegalStateException("Operation not permitted.");
+        throw new UnsupportedOperationException();
     }
 
     public void setIdentity(Identity identity) {
-        throw new IllegalStateException("Operation not permitted.");
+        throw new UnsupportedOperationException();
     }
 
     public Lock createLock(Lockable lockable, int version) throws TransactionException {
-        throw new IllegalStateException("Operation not permitted.");
+        throw new UnsupportedOperationException();
     }
 
     public boolean isDirty(Transactionable transactionable) {
@@ -99,19 +99,19 @@
     }
 
     public void registerDirty(Transactionable object) throws TransactionException {
-        throw new IllegalStateException("Operation not permitted.");
+        throw new UnsupportedOperationException();
     }
 
     public void registerNew(Transactionable object) throws TransactionException {
-        throw new IllegalStateException("Operation not permitted.");
+        throw new UnsupportedOperationException();
     }
 
     public void registerRemoved(Transactionable object) throws TransactionException {
-        throw new IllegalStateException("Operation not permitted.");
+        throw new UnsupportedOperationException();
     }
 
     public void removeLock(Lockable lockable) throws TransactionException {
-        throw new IllegalStateException("Operation not permitted.");
+        throw new UnsupportedOperationException();
     }
 
     public synchronized void clear() {
@@ -122,4 +122,12 @@
         return getClass().getName();
     }
 
+    public SessionHolder getHolder() {
+        throw new UnsupportedOperationException();
+    }
+
+    public void setHolder(SessionHolder holder) {
+        throw new UnsupportedOperationException();
+    }
+
 }

Modified: lenya/trunk/org.apache.lenya.core.impl/src/main/resources/META-INF/cocoon/spring/lenya-core-impl-components.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/main/resources/META-INF/cocoon/spring/lenya-core-impl-components.xml?rev=743041&r1=743040&r2=743041&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/main/resources/META-INF/cocoon/spring/lenya-core-impl-components.xml (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/main/resources/META-INF/cocoon/spring/lenya-core-impl-components.xml Tue Feb 10 18:22:23 2009
@@ -19,40 +19,57 @@
   xsi:schemaLocation="http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"
   xmlns="http://www.springframework.org/schema/beans">
+  
   <bean name="org.apache.lenya.cms.publication.Repository"
     class="org.apache.lenya.cms.publication.RepositoryImpl">
     <property name="repositoryManager" ref="org.apache.lenya.cms.repository.RepositoryManager"/>
+    <property name="documentFactoryBuilder" ref="org.apache.lenya.cms.publication.DocumentFactoryBuilder"/>
   </bean>
+  
   <bean name="org.apache.lenya.cms.repository.RepositoryManager"
     class="org.apache.lenya.cms.repository.RepositoryManagerImpl">
     <property name="observationRegistry" ref="org.apache.lenya.cms.observation.ObservationRegistry"/>
     <property name="uuidGenerator" ref="org.apache.lenya.cms.repository.UUIDGenerator"/>
     <property name="sharedItemStore" ref="org.apache.lenya.cms.repository.SharedItemStore"/>
   </bean>
+  
   <bean name="org.apache.lenya.cms.publication.PublicationManager"
     class="org.apache.lenya.cms.publication.PublicationManagerImpl">
     <property name="nodeFactory" ref="org.apache.lenya.cms.repository.NodeFactory"/>
+    <property name="sourceResolver" ref="org.apache.excalibur.source.SourceResolver"/>
+    <property name="pubBaseUri" value="resource://pubs"/>
   </bean>
+  
   <bean name="org.apache.lenya.cms.metadata.MetaDataCache"
-    class="org.apache.lenya.cms.metadata.MetaDataCache"/>
+  class="org.apache.lenya.cms.metadata.MetaDataCache"/>
+  
   <bean name="org.apache.lenya.cms.publication.DocumentFactoryBuilder"
     class="org.apache.lenya.cms.publication.DocumentFactoryBuilderImpl">
     <property name="publicationManager" ref="org.apache.lenya.cms.publication.PublicationManager"/>
     <property name="metaDataCache" ref="org.apache.lenya.cms.metadata.MetaDataCache"/>
     <property name="sourceResolver" ref="org.apache.excalibur.source.SourceResolver"/>
+    <property name="nodeFactory" ref="org.apache.lenya.cms.repository.NodeFactory"/>
   </bean>
+  
   <bean name="org.apache.lenya.cms.publication.DocumentManager"
     class="org.apache.lenya.cms.publication.DocumentManagerImpl">
     <property name="sourceResolver" ref="org.apache.excalibur.source.SourceResolver"/>
     <property name="nodeFactory" ref="org.apache.lenya.cms.repository.NodeFactory"/>
     <property name="uuidGenerator" ref="org.apache.lenya.cms.repository.UUIDGenerator"/>
   </bean>
+  
   <bean name="org.apache.lenya.cms.module.ModuleManager"
-    class="org.apache.lenya.cms.module.ModuleManagerImpl"/>
+  class="org.apache.lenya.cms.module.ModuleManagerImpl"/>
+  
   <bean name="org.apache.lenya.cms.repository.SharedItemStore"
     class="org.apache.lenya.cms.repository.SharedItemStoreImpl">
     <property name="repositoryManager" ref="org.apache.lenya.cms.repository.RepositoryManager"/>
   </bean>
+  
   <bean name="org.apache.lenya.cms.repository.UUIDGenerator"
-    class="org.apache.lenya.cms.repository.LenyaUUIDGenerator"/>
+  class="org.apache.lenya.cms.repository.LenyaUUIDGenerator"/>
+  
+  <bean name="org.apache.lenya.cms.publication.DocumentBuilder/default"
+    class="org.apache.lenya.cms.publication.DefaultDocumentBuilder"/>
+  
 </beans>

Modified: lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/metadata/MetaDataTest.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/metadata/MetaDataTest.java?rev=743041&r1=743040&r2=743041&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/metadata/MetaDataTest.java (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/metadata/MetaDataTest.java Tue Feb 10 18:22:23 2009
@@ -19,7 +19,7 @@
 
 import java.util.Map;
 
-import org.apache.lenya.ac.impl.AbstractAccessControlTest;
+import org.apache.lenya.cms.AbstractAccessControlTest;
 import org.apache.lenya.cms.metadata.dublincore.DublinCore;
 import org.apache.lenya.cms.publication.Document;
 import org.apache.lenya.cms.publication.Publication;

Modified: lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/DefaultDocumentTest.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/DefaultDocumentTest.java?rev=743041&r1=743040&r2=743041&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/DefaultDocumentTest.java (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/DefaultDocumentTest.java Tue Feb 10 18:22:23 2009
@@ -22,7 +22,7 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.lenya.ac.impl.AbstractAccessControlTest;
+import org.apache.lenya.cms.AbstractAccessControlTest;
 
 /**
  * 

Modified: lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/DocumentFactoryTest.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/DocumentFactoryTest.java?rev=743041&r1=743040&r2=743041&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/DocumentFactoryTest.java (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/DocumentFactoryTest.java Tue Feb 10 18:22:23 2009
@@ -19,7 +19,7 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.lenya.ac.impl.AbstractAccessControlTest;
+import org.apache.lenya.cms.AbstractAccessControlTest;
 
 /**
  * Document factory test.

Modified: lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/DocumentManagerTest.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/DocumentManagerTest.java?rev=743041&r1=743040&r2=743041&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/DocumentManagerTest.java (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/DocumentManagerTest.java Tue Feb 10 18:22:23 2009
@@ -22,7 +22,7 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.lenya.ac.impl.AbstractAccessControlTest;
+import org.apache.lenya.cms.AbstractAccessControlTest;
 import org.apache.lenya.cms.site.NodeSet;
 import org.apache.lenya.cms.site.SiteException;
 import org.apache.lenya.cms.site.SiteNode;
@@ -34,7 +34,7 @@
  * Document manager test.
  */
 public class DocumentManagerTest extends AbstractAccessControlTest {
-    
+
     private DocumentManager docManager;
 
     /**
@@ -55,10 +55,9 @@
     }
 
     protected void doTestCopyToArea(DocumentManager docManager, String sourceAreaName,
-            String destAreaName, String path1, String path2) throws PublicationException,
-            SiteException {
+            String destAreaName, String path1, String path2) throws Exception {
 
-        Publication pub = getSession().getPublication("test");
+        Publication pub = getSession().addPublication("test");
         SiteStructure sourceArea = pub.getArea(sourceAreaName).getSite();
         SiteStructure destArea = pub.getArea(destAreaName).getSite();
 
@@ -185,11 +184,10 @@
 
     }
 
-    public void setDocManager(DocumentManager docManager) {
-        this.docManager = docManager;
-    }
-
     public DocumentManager getDocManager() {
+        if (this.docManager == null) {
+            this.docManager = (DocumentManager) getBeanFactory().getBean(DocumentManager.ROLE);
+        }
         return docManager;
     }
 }

Modified: lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/DublinCoreTest.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/DublinCoreTest.java?rev=743041&r1=743040&r2=743041&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/DublinCoreTest.java (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/DublinCoreTest.java Tue Feb 10 18:22:23 2009
@@ -18,7 +18,7 @@
 
 package org.apache.lenya.cms.publication;
 
-import org.apache.lenya.ac.impl.AbstractAccessControlTest;
+import org.apache.lenya.cms.AbstractAccessControlTest;
 import org.apache.lenya.cms.metadata.MetaData;
 import org.apache.lenya.cms.metadata.dublincore.DublinCore;
 

Modified: lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/PublicationTest.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/PublicationTest.java?rev=743041&r1=743040&r2=743041&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/PublicationTest.java (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/PublicationTest.java Tue Feb 10 18:22:23 2009
@@ -22,7 +22,7 @@
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.lenya.ac.impl.AbstractAccessControlTest;
+import org.apache.lenya.cms.AbstractAccessControlTest;
 
 /**
  * Publication test.

Modified: lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/file/FilePublicationTest.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/file/FilePublicationTest.java?rev=743041&r1=743040&r2=743041&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/file/FilePublicationTest.java (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/file/FilePublicationTest.java Tue Feb 10 18:22:23 2009
@@ -22,7 +22,7 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.lenya.ac.impl.AbstractAccessControlTest;
+import org.apache.lenya.cms.AbstractAccessControlTest;
 import org.apache.lenya.cms.publication.Document;
 import org.apache.lenya.cms.publication.DocumentException;
 import org.apache.lenya.cms.publication.Publication;

Modified: lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/rc/RCMLTest.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/rc/RCMLTest.java?rev=743041&r1=743040&r2=743041&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/rc/RCMLTest.java (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/rc/RCMLTest.java Tue Feb 10 18:22:23 2009
@@ -23,7 +23,7 @@
 import java.io.PrintWriter;
 
 import org.w3c.dom.Document;
-import org.apache.lenya.ac.impl.AbstractAccessControlTest;
+import org.apache.lenya.cms.AbstractAccessControlTest;
 import org.apache.lenya.xml.DocumentHelper;
 
 /**

Modified: lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/rc/RevisionControllerTest.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/rc/RevisionControllerTest.java?rev=743041&r1=743040&r2=743041&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/rc/RevisionControllerTest.java (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/rc/RevisionControllerTest.java Tue Feb 10 18:22:23 2009
@@ -20,7 +20,7 @@
 
 package org.apache.lenya.cms.rc;
 
-import org.apache.lenya.ac.impl.AbstractAccessControlTest;
+import org.apache.lenya.cms.AbstractAccessControlTest;
 import org.apache.lenya.cms.publication.Document;
 import org.apache.lenya.cms.publication.DocumentManager;
 import org.apache.lenya.cms.repository.RepositoryException;

Added: lenya/trunk/org.apache.lenya.core.impl/src/test/resources/org/apache/lenya/cms/metadata/MetaDataTest.spring.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/test/resources/org/apache/lenya/cms/metadata/MetaDataTest.spring.xml?rev=743041&view=auto
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/test/resources/org/apache/lenya/cms/metadata/MetaDataTest.spring.xml (added)
+++ lenya/trunk/org.apache.lenya.core.impl/src/test/resources/org/apache/lenya/cms/metadata/MetaDataTest.spring.xml Tue Feb 10 18:22:23 2009
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You 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.
+-->
+
+<beans xmlns="http://www.springframework.org/schema/beans"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
+  
+  <import resource="classpath:META-INF/cocoon/spring/lenya-core-ac-components.xml"/>
+  <import resource="classpath:META-INF/cocoon/spring/lenya-core-impl-components.xml"/>
+  <import resource="classpath:META-INF/cocoon/spring/lenya-core-observation-components.xml"/>
+  <import resource="classpath:META-INF/cocoon/spring/lenya-module-sourcerepository-components.xml"/>
+  
+</beans>

Added: lenya/trunk/org.apache.lenya.core.impl/src/test/resources/org/apache/lenya/cms/metadata/MetaDataTest.xtest
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/test/resources/org/apache/lenya/cms/metadata/MetaDataTest.xtest?rev=743041&view=auto
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/test/resources/org/apache/lenya/cms/metadata/MetaDataTest.xtest (added)
+++ lenya/trunk/org.apache.lenya.core.impl/src/test/resources/org/apache/lenya/cms/metadata/MetaDataTest.xtest Tue Feb 10 18:22:23 2009
@@ -0,0 +1,41 @@
+<?xml version="1.0" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You 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.
+-->
+<testcase>
+  <roles>
+    <role name="org.apache.excalibur.source.SourceFactorySelector"
+      shorthand="source-factories"
+      default-class="org.apache.cocoon.core.container.DefaultServiceSelector"/>
+    <role name="org.apache.excalibur.source.SourceResolver"
+      shorthand="source-resolver"
+      default-class="org.apache.excalibur.source.impl.SourceResolverImpl"
+    />
+  </roles>
+  
+  <components>
+    
+    <source-factories>
+      <component-instance class="org.apache.cocoon.components.source.impl.XMLizableSourceFactory" name="xml" logger="core.xmlsource"/>
+      <component-instance class="org.apache.excalibur.source.impl.FileSourceFactory" name="file" logger="core.filesource"/>
+      <component-instance class="org.apache.excalibur.source.impl.ResourceSourceFactory" name="resource" logger="core.resourcesource"/>
+      <component-instance class="org.apache.cocoon.components.source.impl.ContextSourceFactory" name="context"/>
+      <component-instance class="org.apache.excalibur.source.impl.URLSourceFactory" name="*"/>
+    </source-factories>
+    
+  </components>
+  
+</testcase>

Modified: lenya/trunk/org.apache.lenya.core.impl/src/test/resources/org/apache/lenya/cms/publication/DocumentManagerTest.spring.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/test/resources/org/apache/lenya/cms/publication/DocumentManagerTest.spring.xml?rev=743041&r1=743040&r2=743041&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/test/resources/org/apache/lenya/cms/publication/DocumentManagerTest.spring.xml (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/test/resources/org/apache/lenya/cms/publication/DocumentManagerTest.spring.xml Tue Feb 10 18:22:23 2009
@@ -20,12 +20,12 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
   
-  <bean name="org.apache.excalibur.source.SourceResolver"
-    class="org.apache.cocoon.components.source.CocoonSourceResolver"/>
-  
   <import resource="classpath:META-INF/cocoon/spring/lenya-core-ac-components.xml"/>
   <import resource="classpath:META-INF/cocoon/spring/lenya-core-impl-components.xml"/>
   <import resource="classpath:META-INF/cocoon/spring/lenya-core-observation-components.xml"/>
+  <import resource="classpath:META-INF/cocoon/spring/lenya-core-repository-components.xml"/>
   <import resource="classpath:META-INF/cocoon/spring/lenya-module-sourcerepository-components.xml"/>
+  <import resource="classpath:META-INF/cocoon/spring/lenya-module-sitetree-components.xml"/>
+  <import resource="classpath:META-INF/cocoon/spring/cocoon-xml-impl.xml"/>
   
 </beans>

Added: lenya/trunk/org.apache.lenya.core.impl/src/test/resources/org/apache/lenya/cms/publication/DocumentManagerTest.xtest
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/test/resources/org/apache/lenya/cms/publication/DocumentManagerTest.xtest?rev=743041&view=auto
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/test/resources/org/apache/lenya/cms/publication/DocumentManagerTest.xtest (added)
+++ lenya/trunk/org.apache.lenya.core.impl/src/test/resources/org/apache/lenya/cms/publication/DocumentManagerTest.xtest Tue Feb 10 18:22:23 2009
@@ -0,0 +1,41 @@
+<?xml version="1.0" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You 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.
+-->
+<testcase>
+  <roles>
+    <role name="org.apache.excalibur.source.SourceFactorySelector"
+      shorthand="source-factories"
+      default-class="org.apache.cocoon.core.container.DefaultServiceSelector"/>
+    <role name="org.apache.excalibur.source.SourceResolver"
+      shorthand="source-resolver"
+      default-class="org.apache.excalibur.source.impl.SourceResolverImpl"
+    />
+  </roles>
+  
+  <components>
+    
+    <source-factories>
+      <component-instance class="org.apache.cocoon.components.source.impl.XMLizableSourceFactory" name="xml" logger="core.xmlsource"/>
+      <component-instance class="org.apache.excalibur.source.impl.FileSourceFactory" name="file" logger="core.filesource"/>
+      <component-instance class="org.apache.excalibur.source.impl.ResourceSourceFactory" name="resource" logger="core.resourcesource"/>
+      <component-instance class="org.apache.cocoon.components.source.impl.ContextSourceFactory" name="context"/>
+      <component-instance class="org.apache.excalibur.source.impl.URLSourceFactory" name="*"/>
+    </source-factories>
+    
+  </components>
+  
+</testcase>

Added: lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/access-control.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/access-control.xml?rev=743041&view=auto
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/access-control.xml (added)
+++ lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/access-control.xml Tue Feb 10 18:22:23 2009
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You 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.
+-->
+
+<!-- $Id: access-control.xml 666714 2008-06-11 15:42:59Z andreas $ -->
+
+<access-controller type="bypassable">
+  
+  <accreditable-manager type="file">
+    <parameter name="directory" value="resource://pubs/test/config/access-control/passwd"/>
+    
+    <user-manager>
+      <user-type class="org.apache.lenya.ac.file.FileUser" create-use-case="admin.addUser">Local User</user-type>
+      <!-- uncomment the following line if you want LDAP support -->
+      <!-- <user-type class="org.apache.lenya.ac.ldap.LDAPUser" create-use-case="admin.addUser">LDAP User</user-type> -->
+    </user-manager>
+  </accreditable-manager>
+  
+  <policy-manager type="document">
+    <policy-manager type="file">
+      <parameter name="directory" value="resource://pubs/test/config/access-control/policies"/>
+    </policy-manager>
+  </policy-manager>
+  <!--
+    FIXME: Disabled because of dependency to usecase module.
+  <authorizer type="usecase"/>
+  -->
+  
+</access-controller>

Added: lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/admin.gml
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/admin.gml?rev=743041&view=auto
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/admin.gml (added)
+++ lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/admin.gml Tue Feb 10 18:22:23 2009
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You 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.
+-->
+
+<!-- $Id: admin.gml 473861 2006-11-12 03:51:14Z gregor $ -->
+
+<group class="org.apache.lenya.ac.file.FileGroup" id="admin"/>
\ No newline at end of file

Added: lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/admin.rml
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/admin.rml?rev=743041&view=auto
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/admin.rml (added)
+++ lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/admin.rml Tue Feb 10 18:22:23 2009
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You 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.
+-->
+
+<!-- $Id: admin.rml 597037 2007-11-21 11:15:43Z andreas $ -->
+
+<role class="org.apache.lenya.ac.file.FileRole" id="admin" assignable="false"/>
\ No newline at end of file

Added: lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/alice.iml
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/alice.iml?rev=743041&view=auto
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/alice.iml (added)
+++ lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/alice.iml Tue Feb 10 18:22:23 2009
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You 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.
+-->
+
+<!-- $Id: alice.iml 604189 2007-12-14 13:34:13Z andreas $ -->
+
+<identity id="alice" class="org.apache.lenya.ac.file.FileUser">
+  <name>Alice</name>
+  <description></description>
+  <email>alice@lenya.apache.org</email>
+  <password type="md5">8e07dafd13495561db9063ebe4db4b27</password>
+  <groups>
+    <group>editor</group>
+    <group>reviewer</group>
+  </groups>
+</identity>

Added: lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/cifs.properties.sample
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/cifs.properties.sample?rev=743041&view=auto
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/cifs.properties.sample (added)
+++ lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/cifs.properties.sample Tue Feb 10 18:22:23 2009
@@ -0,0 +1,5 @@
+# the name of the domain controller (or samba sever) to authenticate against
+domain-controller=my-domain-controller
+
+# domain/workgroup name to use
+domain=WORKGROUP
\ No newline at end of file

Added: lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/edit.rml
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/edit.rml?rev=743041&view=auto
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/edit.rml (added)
+++ lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/edit.rml Tue Feb 10 18:22:23 2009
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You 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.
+-->
+
+<!-- $Id$ -->
+
+<role class="org.apache.lenya.ac.file.FileRole" id="edit"/>

Added: lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/editor.gml
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/editor.gml?rev=743041&view=auto
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/editor.gml (added)
+++ lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/editor.gml Tue Feb 10 18:22:23 2009
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You 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.
+-->
+
+<!-- $Id: editor.gml 473861 2006-11-12 03:51:14Z gregor $ -->
+
+<group class="org.apache.lenya.ac.file.FileGroup" id="editor"/>
\ No newline at end of file

Added: lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/ldap.properties.sample
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/ldap.properties.sample?rev=743041&view=auto
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/ldap.properties.sample (added)
+++ lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/ldap.properties.sample Tue Feb 10 18:22:23 2009
@@ -0,0 +1,56 @@
+#############################################################################
+# File: ldap.properties.sample
+# $Id: ldap.properties.sample 557591 2007-07-19 12:11:39Z jann $
+#############################################################################
+
+#############################################################################
+# General settings 
+#    set handl-referrals to "follow" is your ldap server uses referrals
+#############################################################################
+provider-url=ldaps://ldap.example.com:389/dc=example,dc=com
+base-dn=dc=example,dc=com
+handle-referrals=
+
+#############################################################################
+# User parameters for authentication:
+# usr-branch: 
+#      if users are to be taken from a specific branch, set this.
+#      If you set this to empty, users will be searched in the whole 
+#      subtree, i.e.:
+#         usr-branch=
+# usr-authentication:
+#      authentication method when the user authenticates
+# domain-name:
+#      AFAIK, this is only relevant for MS Active Directory
+#############################################################################
+#usr-branch=ou=People
+usr-branch=
+usr-attr=uid
+usr-name-attr=sn
+usr-authentication=simple
+domain-name=
+
+############################################################################
+# Security settings
+# -----------------
+# security-authentication:
+#       you can set this to none if there is no manager authentication, i.e.:
+#         security-authentication=none
+# mgr-dn and mgr-pw:
+#       Manager/user which is allowed to retrieve a list of "all" users
+#       (fullname) from LDAP server. Leave it empty for anonymous bindings.
+# key-store:
+#       - If you do not use ssl, you can comment out this property.
+#       - keystore is taken relatively to the publication config/ac/passwd
+#       directory. You should put the Directory-Server certificate in this 
+#       file, if using ssl. 
+#       The keystore file can be generated as follows:
+#          keytool -import -keystore .keystore -file <ca_cert_file> 
+#                    -alias <yourdomain.com>
+#       
+############################################################################
+security-authentication=simple
+mgr-dn=
+mgr-pw=
+key-store=.keystore
+security-protocol=ssl

Added: lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/lenya.iml
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/lenya.iml?rev=743041&view=auto
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/lenya.iml (added)
+++ lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/lenya.iml Tue Feb 10 18:22:23 2009
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You 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.
+-->
+
+<!-- $Id: lenya.iml 604189 2007-12-14 13:34:13Z andreas $ -->
+
+<identity id="lenya" class="org.apache.lenya.ac.file.FileUser">
+  <name>Levi Vanya</name>
+  <description></description>
+  <email>levi.vanya@lenya.apache.org</email>
+  <password type="md5">8e07dafd13495561db9063ebe4db4b27</password>
+  <groups>
+    <group>editor</group>
+    <group>admin</group>
+    <group>sitemanager</group>
+  </groups>
+</identity>

Added: lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/localhost.ipml
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/localhost.ipml?rev=743041&view=auto
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/localhost.ipml (added)
+++ lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/localhost.ipml Tue Feb 10 18:22:23 2009
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You 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.
+-->
+
+<!-- $Id: localhost.ipml 473861 2006-11-12 03:51:14Z gregor $ -->
+
+<ip-range class="org.apache.lenya.ac.file.FileIPRange" id="localhost">
+  <name>Localhost</name>
+  <network-address>127.0.0.1</network-address>
+  <subnet-mask>255.255.255.0</subnet-mask>
+</ip-range>

Added: lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/review.rml
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/review.rml?rev=743041&view=auto
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/review.rml (added)
+++ lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/review.rml Tue Feb 10 18:22:23 2009
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You 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.
+-->
+
+<!-- $Id$ -->
+
+<role class="org.apache.lenya.ac.file.FileRole" id="review"/>

Added: lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/reviewer.gml
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/reviewer.gml?rev=743041&view=auto
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/reviewer.gml (added)
+++ lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/reviewer.gml Tue Feb 10 18:22:23 2009
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You 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.
+-->
+
+<!-- $Id: reviewer.gml 473861 2006-11-12 03:51:14Z gregor $ -->
+
+<group class="org.apache.lenya.ac.file.FileGroup" id="reviewer"/>
\ No newline at end of file

Added: lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/session.rml
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/session.rml?rev=743041&view=auto
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/session.rml (added)
+++ lenya/trunk/org.apache.lenya.core.impl/src/test/resources/pubs/test/config/access-control/passwd/session.rml Tue Feb 10 18:22:23 2009
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You 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.
+-->
+
+<!-- $Id$ -->
+
+<role class="org.apache.lenya.ac.file.FileRole" id="session"/>



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org