svn commit: r742944 - in /lenya/trunk: org.apache.lenya.core.ac/src/main/resources/META-INF/cocoon/spring/ org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/observation/ org.apache.lenya.core.impl/ org.apache.lenya.core.impl/src/main/java/or...

[email protected]
Newsgroups gmane.comp.cms.lenya.cvs
Message-ID <[email protected]>
Author: andreas
Date: Tue Feb 10 11:56:52 2009
New Revision: 742944

URL: http://svn.apache.org/viewvc?rev=742944&view=rev
Log:
Remove dependencies from observation and sourcerepository modules to core-impl to avoid circular dependencies, continued with test configuration.

Added:
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/observation/
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/observation/DocumentEventSource.java
    lenya/trunk/org.apache.lenya.core.impl/src/test/resources/
    lenya/trunk/org.apache.lenya.core.impl/src/test/resources/org/
    lenya/trunk/org.apache.lenya.core.impl/src/test/resources/org/apache/
    lenya/trunk/org.apache.lenya.core.impl/src/test/resources/org/apache/lenya/
    lenya/trunk/org.apache.lenya.core.impl/src/test/resources/org/apache/lenya/cms/
    lenya/trunk/org.apache.lenya.core.impl/src/test/resources/org/apache/lenya/cms/publication/
    lenya/trunk/org.apache.lenya.core.impl/src/test/resources/org/apache/lenya/cms/publication/DocumentManagerTest.spring.xml
    lenya/trunk/org.apache.lenya.core.repository/src/main/java/org/apache/lenya/cms/observation/RepositoryEventDescriptor.java
Removed:
    lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/observation/DocumentEvent.java
    lenya/trunk/org.apache.lenya.core.repository/src/main/java/org/apache/lenya/cms/observation/Observeable.java
Modified:
    lenya/trunk/org.apache.lenya.core.ac/src/main/resources/META-INF/cocoon/spring/lenya-core-ac-components.xml
    lenya/trunk/org.apache.lenya.core.impl/pom.xml
    lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/observation/RepositoryEventFactory.java
    lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/DocumentImpl.java
    lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/SessionImpl.java
    lenya/trunk/org.apache.lenya.core.impl/src/main/resources/META-INF/cocoon/spring/lenya-core-impl-components.xml
    lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/ac/impl/AbstractAccessControlTest.java
    lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/LenyaTestCase.java
    lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/DefaultDocumentTest.java
    lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/publication/file/FilePublicationTest.java
    lenya/trunk/org.apache.lenya.core.janitor/src/main/java/org/apache/lenya/cms/janitor/ContentJanitor.java
    lenya/trunk/org.apache.lenya.core.observation/pom.xml
    lenya/trunk/org.apache.lenya.core.observation/src/main/java/org/apache/lenya/cms/observation/ObservationManager.java
    lenya/trunk/org.apache.lenya.core.repository/src/main/java/org/apache/lenya/cms/observation/ObservationRegistry.java
    lenya/trunk/org.apache.lenya.core.repository/src/main/java/org/apache/lenya/cms/observation/RepositoryEvent.java
    lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/WorkflowNotifier.java
    lenya/trunk/org.apache.lenya.module.lucene/src/main/java/org/apache/lenya/cms/lucene/IndexUpdaterImpl.java
    lenya/trunk/org.apache.lenya.module.notification/src/main/java/org/apache/lenya/notification/Message.java
    lenya/trunk/org.apache.lenya.module.simplesite/src/main/java/org/apache/lenya/cms/site/simple/DocumentStore.java
    lenya/trunk/org.apache.lenya.module.sourcerepository/pom.xml
    lenya/trunk/org.apache.lenya.module.sourcerepository/src/main/java/org/apache/lenya/cms/repository/SourceNode.java
    lenya/trunk/org.apache.lenya.module.sourcerepository/src/main/java/org/apache/lenya/cms/repository/SourceNodeRCML.java

Modified: lenya/trunk/org.apache.lenya.core.ac/src/main/resources/META-INF/cocoon/spring/lenya-core-ac-components.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.ac/src/main/resources/META-INF/cocoon/spring/lenya-core-ac-components.xml?rev=742944&r1=742943&r2=742944&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.ac/src/main/resources/META-INF/cocoon/spring/lenya-core-ac-components.xml (original)
+++ lenya/trunk/org.apache.lenya.core.ac/src/main/resources/META-INF/cocoon/spring/lenya-core-ac-components.xml Tue Feb 10 11:56:52 2009
@@ -21,11 +21,13 @@
   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
   
   <!-- Resolvers -->
-  <bean name="org.apache.lenya.ac.AccessControllerResolver/publication"
+  <bean name="org.apache.lenya.ac.AccessControllerResolver"
     class="org.apache.lenya.cms.ac.PublicationAccessControllerResolver">
     <property name="sourceResolver" ref="org.apache.excalibur.source.SourceResolver"/>
     <property name="repository" ref="org.apache.lenya.cms.publication.Repository"/>
   </bean>
+  <!-- alternative resolvers, uncomment to change the resolver -->
+  <!--
   <bean name="org.apache.lenya.cms.ac.AccessControllerResolver/global"
     class="org.apache.lenya.ac.impl.ConfigurableAccessControllerResolver">
     <property name="sourceResolver" ref="org.apache.excalibur.source.SourceResolver"/>
@@ -40,6 +42,7 @@
       </list>
     </property>
   </bean>
+  -->
   
   <!-- Authenticators -->
   <bean name="org.apache.lenya.ac.Authenticator"

Added: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/observation/DocumentEventSource.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/observation/DocumentEventSource.java?rev=742944&view=auto
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/observation/DocumentEventSource.java (added)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/observation/DocumentEventSource.java Tue Feb 10 11:56:52 2009
@@ -0,0 +1,43 @@
+/*
+ * 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.
+ *
+ */
+package org.apache.lenya.cms.observation;
+
+import org.apache.commons.lang.Validate;
+import org.apache.lenya.cms.publication.Document;
+import org.apache.lenya.cms.publication.DocumentIdentifier;
+import org.apache.lenya.cms.publication.ResourceType;
+
+public class DocumentEventSource {
+    
+    private DocumentIdentifier identifier;
+    private ResourceType resourceType;
+
+    public DocumentEventSource(Document doc) {
+        Validate.notNull(doc, "document");
+        this.identifier = doc.getIdentifier();
+    }
+    
+    public DocumentIdentifier getIdentifier() {
+        return this.identifier;
+    }
+
+    public ResourceType getResourceType() {
+        return resourceType;
+    }
+
+}

Modified: lenya/trunk/org.apache.lenya.core.impl/pom.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/pom.xml?rev=742944&r1=742943&r2=742944&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/pom.xml (original)
+++ lenya/trunk/org.apache.lenya.core.impl/pom.xml Tue Feb 10 11:56:52 2009
@@ -52,8 +52,23 @@
     </dependency>
     <dependency>
       <groupId>org.apache.lenya</groupId>
+      <artifactId>lenya-core-observation</artifactId>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.lenya</groupId>
+      <artifactId>lenya-module-sourcerepository</artifactId>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.lenya</groupId>
       <artifactId>lenya-core-repository</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.apache.excalibur.components</groupId>
+      <artifactId>excalibur-sourceresolve</artifactId>
+      <version>2.2.3</version>
+    </dependency>
     
     <!-- Tests -->
     <dependency>
@@ -75,6 +90,11 @@
       <scope>test</scope>
       <type>test-jar</type>
     </dependency>
+    <dependency>
+      <groupId>org.apache.lenya</groupId>
+      <artifactId>lenya-core-ac</artifactId>
+      <scope>test</scope>
+    </dependency>
     
   </dependencies>
 </project>

Modified: lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/observation/RepositoryEventFactory.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/observation/RepositoryEventFactory.java?rev=742944&r1=742943&r2=742944&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/observation/RepositoryEventFactory.java (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/observation/RepositoryEventFactory.java Tue Feb 10 11:56:52 2009
@@ -20,7 +20,6 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.lenya.cms.publication.Document;
-import org.apache.lenya.cms.publication.DocumentException;
 import org.apache.lenya.cms.publication.DocumentImpl;
 import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.cms.repository.Node;
@@ -30,11 +29,11 @@
  * Factory to create repository events.
  */
 public class RepositoryEventFactory {
-    
+
     private static final Log logger = LogFactory.getLog(RepositoryEventFactory.class);
 
     /**
-     * Creates a repository event for a node.
+     * Creates a repository event without source..
      * @param session The session.
      * @param descriptor The descriptor.
      * @return An event.
@@ -49,21 +48,16 @@
      * @param descriptor The descriptor.
      * @return An event.
      */
-    public static final DocumentEvent createEvent(Document doc, Object descriptor) {
-        try {
-            Node node = ((DocumentImpl) doc).getRepositoryNode();
-            DocumentEvent event = new DocumentEvent(node.getRepositorySession(), doc.getPublication()
-                    .getId(), doc.getArea(), doc.getUUID(), doc.getLanguage(), doc
-                    .getResourceType(), descriptor);
-            event.setNodeUri(node.getSourceURI());
-            int[] revisions = node.getHistory().getRevisionNumbers();
-            if (revisions.length > 0) {
-                event.setRevision(revisions[0]);
-            }
-            return event;
-        } catch (DocumentException e) {
-            throw new RuntimeException(e);
+    public static final RepositoryEvent createEvent(Document doc, Object descriptor) {
+        Node node = ((DocumentImpl) doc).getRepositoryNode();
+        RepositoryEvent event = new RepositoryEvent(node.getRepositorySession(),
+                new DocumentEventSource(doc), descriptor);
+        event.setNodeUri(node.getSourceURI());
+        int[] revisions = node.getHistory().getRevisionNumbers();
+        if (revisions.length > 0) {
+            event.setRevision(revisions[0]);
         }
+        return event;
 
     }
 
@@ -115,7 +109,8 @@
 
         try {
 
-            org.apache.lenya.cms.publication.Session session = (org.apache.lenya.cms.publication.Session) node.getRepositorySession();
+            org.apache.lenya.cms.publication.Session session = (org.apache.lenya.cms.publication.Session) node
+                    .getRepositorySession();
             Publication pub = session.getPublication(pubId);
             String docPath = path.substring((pubId + "/content/" + area).length());
 

Modified: lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/DocumentImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/DocumentImpl.java?rev=742944&r1=742943&r2=742944&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/DocumentImpl.java (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/DocumentImpl.java Tue Feb 10 11:56:52 2009
@@ -35,7 +35,6 @@
 import org.apache.lenya.cms.metadata.MetaDataCache;
 import org.apache.lenya.cms.metadata.MetaDataException;
 import org.apache.lenya.cms.metadata.MetaDataWrapper;
-import org.apache.lenya.cms.observation.Observeable;
 import org.apache.lenya.cms.publication.util.DocumentVisitor;
 import org.apache.lenya.cms.repository.ContentHolder;
 import org.apache.lenya.cms.repository.Node;
@@ -50,7 +49,7 @@
  * A typical CMS document.
  * @version $Id$
  */
-public class DocumentImpl implements Document, RepositoryItem, Observeable {
+public class DocumentImpl implements Document, RepositoryItem {
 
     private static final Log logger = LogFactory.getLog(DocumentImpl.class);
 

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=742944&r1=742943&r2=742944&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 11:56:52 2009
@@ -27,7 +27,6 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.lenya.ac.Identity;
-import org.apache.lenya.cms.observation.DocumentEvent;
 import org.apache.lenya.cms.observation.ObservationRegistry;
 import org.apache.lenya.cms.observation.RepositoryEvent;
 import org.apache.lenya.cms.observation.RepositoryEventFactory;
@@ -152,7 +151,8 @@
     }
 
     public void enqueueEvent(Document document, Object descriptor) {
-        DocumentEvent event = RepositoryEventFactory.createEvent(document, descriptor);
+        RepositoryEvent event = RepositoryEventFactory.createEvent(document, descriptor);
+        getRepositorySession().enqueueEvent(event);
     }
 
     public boolean isModifiable() {

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=742944&r1=742943&r2=742944&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 11:56:52 2009
@@ -31,8 +31,6 @@
   </bean>
   <bean name="org.apache.lenya.cms.publication.PublicationManager"
     class="org.apache.lenya.cms.publication.PublicationManagerImpl">
-    <property name="documentFactoryBuilder"
-      ref="org.apache.lenya.cms.publication.DocumentFactoryBuilder"/>
     <property name="nodeFactory" ref="org.apache.lenya.cms.repository.NodeFactory"/>
   </bean>
   <bean name="org.apache.lenya.cms.metadata.MetaDataCache"

Modified: lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/ac/impl/AbstractAccessControlTest.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/ac/impl/AbstractAccessControlTest.java?rev=742944&r1=742943&r2=742944&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/ac/impl/AbstractAccessControlTest.java (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/ac/impl/AbstractAccessControlTest.java Tue Feb 10 11:56:52 2009
@@ -22,7 +22,6 @@
 
 import javax.servlet.http.HttpSession;
 
-import org.apache.avalon.framework.service.ServiceSelector;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.lenya.ac.AccessControlException;
@@ -43,17 +42,15 @@
  * Generation>Code and Comments
  */
 public class AbstractAccessControlTest extends LenyaTestCase {
-    
+
     private static final Log logger = LogFactory.getLog(AbstractAccessControlTest.class);
 
     protected static final String TEST_PUB_ID = "test";
-    private ServiceSelector accessControllerResolverSelector;
     private AccessControllerResolver accessControllerResolver;
     private AccessController accessController;
     private Repository repository;
-    
-    protected Session login(String userId)
-            throws AccessControlException {
+
+    protected Session login(String userId) throws AccessControlException {
         return login(userId, TEST_PUB_ID);
     }
 
@@ -75,8 +72,8 @@
         if (!identity.contains(user)) {
             User oldUser = identity.getUser();
             if (oldUser != null) {
-                if (getLogger().isDebugEnabled()) {
-                    getLogger().debug("Removing user [" + oldUser + "] from identity.");
+                if (logger.isDebugEnabled()) {
+                    logger.debug("Removing user [" + oldUser + "] from identity.");
                 }
                 identity.removeIdentifiable(oldUser);
             }
@@ -87,7 +84,7 @@
 
         Accreditable[] accrs = identity.getAccreditables();
         for (int i = 0; i < accrs.length; i++) {
-            getLogger().info("Accreditable: " + accrs[i]);
+            logger.info("Accreditable: " + accrs[i]);
         }
 
         Session session = getRepository().startSession(identity, true);
@@ -95,38 +92,24 @@
         return session;
     }
 
-    protected AccessController getAccessController() {
+    protected AccessController getAccessController() throws AccessControlException {
         return getAccessController(getSession(), TEST_PUB_ID);
     }
 
-    protected AccessController getAccessController(Session session, String pubId) {
+    protected AccessController getAccessController(Session session, String pubId) throws AccessControlException {
         AccessController controller;
-        try {
-            this.accessControllerResolverSelector = (ServiceSelector) getManager().lookup(
-                    AccessControllerResolver.ROLE + "Selector");
-            assertNotNull(this.accessControllerResolverSelector);
-
-            this.accessControllerResolver = (AccessControllerResolver) this.accessControllerResolverSelector
-                    .select(AccessControllerResolver.DEFAULT_RESOLVER);
-
-            assertNotNull(this.accessControllerResolver);
-            getLogger().info(
-                    "Using access controller resolver: ["
-                            + this.accessControllerResolver.getClass() + "]");
-
-            Publication pub = session.getPublication(pubId);
-            getLogger().info("Resolve access controller");
-            getLogger().info(
-                    "Publication directory: [" + pub.getDirectory().getAbsolutePath() + "]");
-
-            String url = "/" + pubId + "/authoring/index.html";
-            controller = this.accessControllerResolver.resolveAccessController(url);
-
-            assertNotNull(controller);
-            getLogger().info("Resolved access controller: [" + controller.getClass() + "]");
-        } catch (Exception e) {
-            throw new RuntimeException(e);
-        }
+        logger.info("Using access controller resolver: ["
+                getAccessControllerResolver().getClass() + "]");
+
+        Publication pub = session.getPublication(pubId);
+        logger.info("Resolve access controller");
+        logger.info("Publication directory: [" + pub.getDirectory().getAbsolutePath() + "]");
+
+        String url = "/" + pubId + "/authoring/index.html";
+        controller = this.getAccessControllerResolver().resolveAccessController(url);
+
+        assertNotNull(controller);
+        logger.info("Resolved access controller: [" + controller.getClass() + "]");
         return controller;
     }
 
@@ -135,15 +118,8 @@
      * @exception Exception if an error occurs
      */
     public void tearDown() throws Exception {
-
-        if (this.accessControllerResolverSelector != null) {
-            if (this.accessControllerResolver != null) {
-                if (this.accessController != null) {
-                    this.accessControllerResolver.release(this.accessController);
-                }
-                this.accessControllerResolverSelector.release(this.accessControllerResolver);
-            }
-            getManager().release(this.accessControllerResolverSelector);
+        if (this.accessController != null) {
+            this.getAccessControllerResolver().release(this.accessController);
         }
         super.tearDown();
     }
@@ -153,16 +129,18 @@
     /**
      * Returns the policy manager.
      * @return A policy manager.
+     * @throws AccessControlException 
      */
-    protected PolicyManager getPolicyManager() {
+    protected PolicyManager getPolicyManager() throws AccessControlException {
         return getAccessController().getPolicyManager();
     }
 
     /**
      * Returns the accreditable manager.
      * @return An accreditable manager.
+     * @throws AccessControlException 
      */
-    protected AccreditableManager getAccreditableManager() {
+    protected AccreditableManager getAccreditableManager() throws AccessControlException {
         return getAccessController().getAccreditableManager();
     }
 
@@ -192,6 +170,21 @@
     }
 
     public Repository getRepository() {
+        if (this.repository == null) {
+            this.repository = (Repository) getBeanFactory().getBean(Repository.class.getName());
+        }
         return repository;
     }
+
+    public void setAccessControllerResolver(AccessControllerResolver accessControllerResolver) {
+        this.accessControllerResolver = accessControllerResolver;
+    }
+
+    protected AccessControllerResolver getAccessControllerResolver() {
+        if (this.accessControllerResolver == null) {
+            this.accessControllerResolver = (AccessControllerResolver) getBeanFactory().getBean(AccessControllerResolver.ROLE);
+        }
+        return this.accessControllerResolver;
+    }
+
 }

Modified: lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/LenyaTestCase.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/LenyaTestCase.java?rev=742944&r1=742943&r2=742944&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/LenyaTestCase.java (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/test/java/org/apache/lenya/cms/LenyaTestCase.java Tue Feb 10 11:56:52 2009
@@ -25,6 +25,7 @@
 
 import org.apache.avalon.framework.container.ContainerUtil;
 import org.apache.avalon.framework.context.DefaultContext;
+import org.apache.cocoon.AbstractTestCase;
 import org.apache.cocoon.Constants;
 import org.apache.cocoon.components.ContextHelper;
 import org.apache.cocoon.core.container.ContainerTestCase;
@@ -34,6 +35,8 @@
 import org.apache.cocoon.environment.mock.MockEnvironment;
 import org.apache.cocoon.util.IOUtils;
 import org.apache.commons.lang.SystemUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.excalibur.source.SourceResolver;
 import org.apache.excalibur.xml.EntityResolver;
 import org.apache.lenya.xml.DocumentHelper;
@@ -42,6 +45,8 @@
  * Base class for Lenya tests which need the context information.
  */
 public class LenyaTestCase extends ContainerTestCase {
+    
+    private static final Log logger = LogFactory.getLog(LenyaTestCase.class);
 
     protected DefaultContext context;
     
@@ -168,7 +173,7 @@
         // buildClassPath.append(File.pathSeparatorChar)
         // .append(getExtraClassPath(context));
 
-        getLogger().info("Context classpath: " + buildClassPath);
+        logger.info("Context classpath: " + buildClassPath);
         return buildClassPath.toString();
     }
     

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=742944&r1=742943&r2=742944&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 11:56:52 2009
@@ -45,12 +45,12 @@
      */
     protected void doDocumentTest(DocumentTestSet testSet) throws PublicationException {
         Document document = getDocument(testSet);
-        getLogger().info("UUID:         " + document.getUUID());
-        getLogger().info("Area:         " + document.getArea());
-        getLogger().info("Language:     " + document.getLanguage());
-        getLogger().info("Document URL: " + document.getCanonicalDocumentURL());
-        getLogger().info("Complete URL: " + document.getCanonicalWebappURL());
-        getLogger().info("Extension:    " + document.getExtension());
+        logger.info("UUID:         " + document.getUUID());
+        logger.info("Area:         " + document.getArea());
+        logger.info("Language:     " + document.getLanguage());
+        logger.info("Document URL: " + document.getCanonicalDocumentURL());
+        logger.info("Complete URL: " + document.getCanonicalWebappURL());
+        logger.info("Extension:    " + document.getExtension());
 
         Publication publication = getSession().getPublication("test");
         assertEquals(document.getPublication(), publication);
@@ -62,7 +62,7 @@
                 + document.getArea() + testSet.getUrl());
         assertEquals(document.getExtension(), testSet.getExtension());
 
-        getLogger().info("-----------------------------------------------");
+        logger.info("-----------------------------------------------");
     }
 
     /**

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=742944&r1=742943&r2=742944&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 11:56:52 2009
@@ -20,6 +20,8 @@
 
 package org.apache.lenya.cms.publication.file;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.lenya.ac.impl.AbstractAccessControlTest;
 import org.apache.lenya.cms.publication.Document;
 import org.apache.lenya.cms.publication.DocumentException;
@@ -33,6 +35,8 @@
  * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
  */
 public class FilePublicationTest extends AbstractAccessControlTest {
+    
+    private static final Log logger = LogFactory.getLog(FilePublicationTest.class);
 
     /**
      * <code>sourceDocumentId</code> The source document id
@@ -81,13 +85,13 @@
             String _destinationLanguage) throws PublicationException, DocumentException,
             SiteException {
 
-        getLogger().info("Copy document");
-        getLogger().info("    Source area:             [" + sourceArea + "]");
-        getLogger().info("    Source document ID:      [" + _sourceDocumentId + "]");
-        getLogger().info("    Source language:         [" + _sourceLanguage + "]");
-        getLogger().info("    Destination area:        [" + destinationArea + "]");
-        getLogger().info("    Destination document ID: [" + _destinationDocumentId + "]");
-        getLogger().info("    Destination language:    [" + _destinationLanguage + "]");
+        logger.info("Copy document");
+        logger.info("    Source area:             [" + sourceArea + "]");
+        logger.info("    Source document ID:      [" + _sourceDocumentId + "]");
+        logger.info("    Source language:         [" + _sourceLanguage + "]");
+        logger.info("    Destination area:        [" + destinationArea + "]");
+        logger.info("    Destination document ID: [" + _destinationDocumentId + "]");
+        logger.info("    Destination language:    [" + _destinationLanguage + "]");
 
         Session session = getSession();
         Publication publication = session.getPublication("test");

Added: 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=742944&view=auto
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/test/resources/org/apache/lenya/cms/publication/DocumentManagerTest.spring.xml (added)
+++ lenya/trunk/org.apache.lenya.core.impl/src/test/resources/org/apache/lenya/cms/publication/DocumentManagerTest.spring.xml Tue Feb 10 11:56:52 2009
@@ -0,0 +1,31 @@
+<?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">
+  
+  <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-module-sourcerepository-components.xml"/>
+  
+</beans>

Modified: lenya/trunk/org.apache.lenya.core.janitor/src/main/java/org/apache/lenya/cms/janitor/ContentJanitor.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.janitor/src/main/java/org/apache/lenya/cms/janitor/ContentJanitor.java?rev=742944&r1=742943&r2=742944&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.janitor/src/main/java/org/apache/lenya/cms/janitor/ContentJanitor.java (original)
+++ lenya/trunk/org.apache.lenya.core.janitor/src/main/java/org/apache/lenya/cms/janitor/ContentJanitor.java Tue Feb 10 11:56:52 2009
@@ -24,8 +24,10 @@
 import org.apache.excalibur.source.SourceResolver;
 import org.apache.lenya.cms.cocoon.source.SourceUtil;
 import org.apache.lenya.cms.observation.AbstractRepositoryListener;
-import org.apache.lenya.cms.observation.DocumentEvent;
+import org.apache.lenya.cms.observation.RepositoryEventDescriptor;
+import org.apache.lenya.cms.observation.DocumentEventSource;
 import org.apache.lenya.cms.observation.RepositoryEvent;
+import org.apache.lenya.cms.publication.DocumentIdentifier;
 import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.cms.publication.Repository;
 import org.apache.lenya.cms.publication.Session;
@@ -40,12 +42,13 @@
 
     public void eventFired(RepositoryEvent repoEvent) {
         
-        if (!(repoEvent instanceof DocumentEvent)) {
+        if (!(repoEvent.getDescriptor() instanceof RepositoryEventDescriptor)) {
             return;
         }
-        DocumentEvent event = (DocumentEvent) repoEvent;
+        DocumentEventSource source = (DocumentEventSource) repoEvent.getSource();
+        DocumentIdentifier id = source.getIdentifier();
         
-        if (!event.getDescriptor().equals(DocumentEvent.REMOVED)) {
+        if (repoEvent.getDescriptor() != RepositoryEventDescriptor.REMOVED) {
             return;
         }
         
@@ -53,8 +56,8 @@
             ProcessInfoProvider process = (ProcessInfoProvider) WebAppContextUtils
                     .getCurrentWebApplicationContext().getBean(ProcessInfoProvider.ROLE);
             Session session = this.repository.getSession(process.getRequest());
-            Publication pub = session.getPublication(event.getPublicationId());
-            File contentFile = pub.getContentDirectory(event.getArea());
+            Publication pub = session.getPublication(id.getPublicationId());
+            File contentFile = pub.getContentDirectory(id.getArea());
             String contentUri = contentFile.toURI().toString();
             SourceUtil.deleteEmptyCollections(contentUri, this.sourceResolver);
         } catch (Exception e) {

Modified: lenya/trunk/org.apache.lenya.core.observation/pom.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.observation/pom.xml?rev=742944&r1=742943&r2=742944&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.observation/pom.xml (original)
+++ lenya/trunk/org.apache.lenya.core.observation/pom.xml Tue Feb 10 11:56:52 2009
@@ -25,10 +25,6 @@
     </dependency>
     <dependency>
       <groupId>org.apache.lenya</groupId>
-      <artifactId>lenya-core-impl</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.lenya</groupId>
       <artifactId>lenya-core-repository</artifactId>
     </dependency>
   </dependencies>

Modified: lenya/trunk/org.apache.lenya.core.observation/src/main/java/org/apache/lenya/cms/observation/ObservationManager.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.observation/src/main/java/org/apache/lenya/cms/observation/ObservationManager.java?rev=742944&r1=742943&r2=742944&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.observation/src/main/java/org/apache/lenya/cms/observation/ObservationManager.java (original)
+++ lenya/trunk/org.apache.lenya.core.observation/src/main/java/org/apache/lenya/cms/observation/ObservationManager.java Tue Feb 10 11:56:52 2009
@@ -36,7 +36,7 @@
     private Map identifier2listeners = new HashMap();
     private Set listeners = new HashSet();
 
-    public synchronized void registerListener(RepositoryListener listener, Observeable observeable)
+    public synchronized void registerListener(RepositoryListener listener, Object observeable)
             throws ObservationException {
         Document doc = (Document) observeable;
         Set listeners = getListeners(doc.getIdentifier());
@@ -64,14 +64,6 @@
         this.listeners.add(listener);
     }
 
-    protected DocumentIdentifier getIdentifier(DocumentEvent event)
-    {
-        Validate.notNull(event);
-        DocumentIdentifier id = new DocumentIdentifier(event.getPublicationId(), event.getArea(),
-                event.getUuid(), event.getLanguage());
-        return id;
-    }
-
     protected Set getAllListeners(DocumentIdentifier doc) {
         Set allListeners = new HashSet();
         synchronized (this) {
@@ -82,17 +74,18 @@
     }
 
     protected void notify(Set listeners, RepositoryEvent event) {
-            for (Iterator i = listeners.iterator(); i.hasNext();) {
-                RepositoryListener listener = (RepositoryListener) i.next();
-                listener.eventFired(event);
-            }
+        for (Iterator i = listeners.iterator(); i.hasNext();) {
+            RepositoryListener listener = (RepositoryListener) i.next();
+            listener.eventFired(event);
+        }
     }
 
     public void eventFired(RepositoryEvent event) {
         Validate.notNull(event);
         Set listeners;
-        if (event instanceof DocumentEvent) {
-            DocumentIdentifier id = getIdentifier((DocumentEvent) event);
+        Object source = event.getSource();
+        if (source instanceof DocumentEventSource) {
+            DocumentIdentifier id = ((DocumentEventSource) source).getIdentifier();
             listeners = getAllListeners(id);
         } else {
             listeners = this.listeners;

Modified: lenya/trunk/org.apache.lenya.core.repository/src/main/java/org/apache/lenya/cms/observation/ObservationRegistry.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.repository/src/main/java/org/apache/lenya/cms/observation/ObservationRegistry.java?rev=742944&r1=742943&r2=742944&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.repository/src/main/java/org/apache/lenya/cms/observation/ObservationRegistry.java (original)
+++ lenya/trunk/org.apache.lenya.core.repository/src/main/java/org/apache/lenya/cms/observation/ObservationRegistry.java Tue Feb 10 11:56:52 2009
@@ -29,10 +29,10 @@
 
     /**
      * @param listener The listener.
-     * @param observeable The observeable to listen to.
-     * @throws ObservationException if the listener is already registered for this observeable.
+     * @param source The event source to listen to.
+     * @throws ObservationException if the listener is already registered for this event source.
      */
-    void registerListener(RepositoryListener listener, Observeable observeable) throws ObservationException;
+    void registerListener(RepositoryListener listener, Object source) throws ObservationException;
     
     /**
      * Registers a listener which is notified for all events.

Modified: lenya/trunk/org.apache.lenya.core.repository/src/main/java/org/apache/lenya/cms/observation/RepositoryEvent.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.repository/src/main/java/org/apache/lenya/cms/observation/RepositoryEvent.java?rev=742944&r1=742943&r2=742944&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.repository/src/main/java/org/apache/lenya/cms/observation/RepositoryEvent.java (original)
+++ lenya/trunk/org.apache.lenya.core.repository/src/main/java/org/apache/lenya/cms/observation/RepositoryEvent.java Tue Feb 10 11:56:52 2009
@@ -28,10 +28,23 @@
     private Session session;
     private Object descriptor = null;
     private int revision = -1;
+    private Object source;
 
     /**
      * Ctor.
      * @param session The session.
+     * @param source The source of the event.
+     * @param descriptor More information about the event.
+     */
+    public RepositoryEvent(Session session, Object source, Object descriptor) {
+        this(session, descriptor);
+        Validate.notNull(source);
+        this.source = source;
+    }
+    
+    /**
+     * Ctor.
+     * @param session The session.
      * @param descriptor More information about the event.
      */
     public RepositoryEvent(Session session, Object descriptor) {
@@ -40,7 +53,7 @@
         this.session = session;
         this.descriptor = descriptor;
     }
-    
+
     /**
      * @return The session.
      */
@@ -89,4 +102,8 @@
         return this.revision;
     }
 
+    public Object getSource() {
+        return source;
+    }
+
 }

Added: lenya/trunk/org.apache.lenya.core.repository/src/main/java/org/apache/lenya/cms/observation/RepositoryEventDescriptor.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.repository/src/main/java/org/apache/lenya/cms/observation/RepositoryEventDescriptor.java?rev=742944&view=auto
==============================================================================
--- lenya/trunk/org.apache.lenya.core.repository/src/main/java/org/apache/lenya/cms/observation/RepositoryEventDescriptor.java (added)
+++ lenya/trunk/org.apache.lenya.core.repository/src/main/java/org/apache/lenya/cms/observation/RepositoryEventDescriptor.java Tue Feb 10 11:56:52 2009
@@ -0,0 +1,35 @@
+/*
+ * 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.
+ *
+ */
+package org.apache.lenya.cms.observation;
+
+public class RepositoryEventDescriptor {
+
+    public static final RepositoryEventDescriptor CHANGED = new RepositoryEventDescriptor("changed");
+    public static final RepositoryEventDescriptor REMOVED = new RepositoryEventDescriptor("removed");
+    
+    private String name;
+    
+    private RepositoryEventDescriptor(String name) {
+        this.name = name;
+    }
+    
+    public String toString() {
+        return this.name;
+    }
+
+}

Modified: lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/WorkflowNotifier.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/WorkflowNotifier.java?rev=742944&r1=742943&r2=742944&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/WorkflowNotifier.java (original)
+++ lenya/trunk/org.apache.lenya.core.workflow/src/main/java/org/apache/lenya/cms/workflow/WorkflowNotifier.java Tue Feb 10 11:56:52 2009
@@ -18,7 +18,7 @@
 package org.apache.lenya.cms.workflow;
 
 import org.apache.lenya.cms.observation.AbstractRepositoryListener;
-import org.apache.lenya.cms.observation.DocumentEvent;
+import org.apache.lenya.cms.observation.DocumentEventSource;
 import org.apache.lenya.cms.observation.RepositoryEvent;
 import org.apache.lenya.workflow.Version;
 
@@ -28,15 +28,15 @@
 public class WorkflowNotifier extends AbstractRepositoryListener {
 
     public void eventFired(RepositoryEvent event) {
-        if (!(event instanceof DocumentEvent)) {
+        Object source = event.getSource();
+        if (!(source instanceof DocumentEventSource)) {
             return;
         }
-        DocumentEvent docEvent = (DocumentEvent) event;
-        if (!(docEvent.getDescriptor() instanceof WorkflowEventDescriptor)) {
+        if (!(event.getDescriptor() instanceof WorkflowEventDescriptor)) {
             return;
         }
 
-        WorkflowEventDescriptor descriptor = (WorkflowEventDescriptor) docEvent.getDescriptor();
+        WorkflowEventDescriptor descriptor = (WorkflowEventDescriptor) event.getDescriptor();
         Version version = descriptor.getVersion();
     }
 

Modified: lenya/trunk/org.apache.lenya.module.lucene/src/main/java/org/apache/lenya/cms/lucene/IndexUpdaterImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.module.lucene/src/main/java/org/apache/lenya/cms/lucene/IndexUpdaterImpl.java?rev=742944&r1=742943&r2=742944&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.module.lucene/src/main/java/org/apache/lenya/cms/lucene/IndexUpdaterImpl.java (original)
+++ lenya/trunk/org.apache.lenya.module.lucene/src/main/java/org/apache/lenya/cms/lucene/IndexUpdaterImpl.java Tue Feb 10 11:56:52 2009
@@ -27,10 +27,12 @@
 import org.apache.cocoon.components.search.IndexException;
 import org.apache.cocoon.util.AbstractLogEnabled;
 import org.apache.lenya.cms.cocoon.source.SourceUtil;
-import org.apache.lenya.cms.observation.DocumentEvent;
+import org.apache.lenya.cms.observation.RepositoryEventDescriptor;
+import org.apache.lenya.cms.observation.DocumentEventSource;
 import org.apache.lenya.cms.observation.ObservationRegistry;
 import org.apache.lenya.cms.observation.RepositoryEvent;
 import org.apache.lenya.cms.publication.Area;
+import org.apache.lenya.cms.publication.DocumentIdentifier;
 import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.cms.publication.ResourceType;
 import org.apache.lenya.cms.repository.Session;
@@ -41,20 +43,23 @@
 public class IndexUpdaterImpl extends AbstractLogEnabled implements IndexUpdater, Startable,
         Serviceable, ThreadSafe {
 
-    public void eventFired(RepositoryEvent repoEvent) {
+    public void eventFired(RepositoryEvent event) {
 
-        if (!(repoEvent instanceof DocumentEvent)) {
+        Object descriptor = event.getDescriptor();
+        if (!(descriptor instanceof RepositoryEventDescriptor)) {
             return;
         }
-        DocumentEvent event = (DocumentEvent) repoEvent;
+
+        DocumentEventSource source = (DocumentEventSource) event.getSource();
+        DocumentIdentifier id = source.getIdentifier();
 
         try {
-            if (event.getDescriptor().equals(DocumentEvent.CHANGED)) {
-                index(event.getSession(), event.getResourceType(), event.getPublicationId(), event
-                        .getArea(), event.getUuid(), event.getLanguage());
-            } else if (event.getDescriptor().equals(DocumentEvent.REMOVED)) {
-                delete(event.getSession(), event.getResourceType(), event.getPublicationId(), event
-                        .getArea(), event.getUuid(), event.getLanguage());
+            if (descriptor == RepositoryEventDescriptor.CHANGED) {
+                index(event.getSession(), source.getResourceType(), id.getPublicationId(), id
+                        .getArea(), id.getUUID(), id.getLanguage());
+            } else if (event.getDescriptor().equals(RepositoryEventDescriptor.REMOVED)) {
+                delete(event.getSession(), source.getResourceType(), id.getPublicationId(), id
+                        .getArea(), id.getUUID(), id.getLanguage());
             }
 
         } catch (IndexException e) {

Modified: lenya/trunk/org.apache.lenya.module.notification/src/main/java/org/apache/lenya/notification/Message.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.module.notification/src/main/java/org/apache/lenya/notification/Message.java?rev=742944&r1=742943&r2=742944&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.module.notification/src/main/java/org/apache/lenya/notification/Message.java (original)
+++ lenya/trunk/org.apache.lenya.module.notification/src/main/java/org/apache/lenya/notification/Message.java Tue Feb 10 11:56:52 2009
@@ -20,6 +20,7 @@
 import java.util.Arrays;
 import java.util.Date;
 
+import org.apache.commons.lang.Validate;
 import org.apache.lenya.ac.Identifiable;
 
 /**

Modified: lenya/trunk/org.apache.lenya.module.simplesite/src/main/java/org/apache/lenya/cms/site/simple/DocumentStore.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.module.simplesite/src/main/java/org/apache/lenya/cms/site/simple/DocumentStore.java?rev=742944&r1=742943&r2=742944&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.module.simplesite/src/main/java/org/apache/lenya/cms/site/simple/DocumentStore.java (original)
+++ lenya/trunk/org.apache.lenya.module.simplesite/src/main/java/org/apache/lenya/cms/site/simple/DocumentStore.java Tue Feb 10 11:56:52 2009
@@ -32,7 +32,6 @@
 import org.apache.lenya.cms.publication.DocumentBuildException;
 import org.apache.lenya.cms.publication.DocumentException;
 import org.apache.lenya.cms.publication.DocumentImpl;
-import org.apache.lenya.cms.publication.History;
 import org.apache.lenya.cms.publication.LockException;
 import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.cms.publication.RepositoryException;
@@ -212,8 +211,8 @@
     public Link add(String path, Document document) throws SiteException {
         Validate.notNull(path);
         Validate.notNull(document);
-        Validate.isTrue(!contains(document), "Document contained already", document);
         try {
+            Validate.isTrue(!contains(document), "Document contained already", document);
             String key = getKey(document.getUUID(), document.getLanguage());
             if (!doc2path().containsKey(key)) {
                 doc2path().put(key, path);

Modified: lenya/trunk/org.apache.lenya.module.sourcerepository/pom.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.module.sourcerepository/pom.xml?rev=742944&r1=742943&r2=742944&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.module.sourcerepository/pom.xml (original)
+++ lenya/trunk/org.apache.lenya.module.sourcerepository/pom.xml Tue Feb 10 11:56:52 2009
@@ -19,15 +19,6 @@
       <groupId>org.apache.cocoon</groupId>
       <artifactId>cocoon-core</artifactId>
     </dependency>
-    <!-- TODO: remove dependency to Lenya core API and impl -->
-    <dependency>
-      <groupId>org.apache.lenya</groupId>
-      <artifactId>lenya-core-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.lenya</groupId>
-      <artifactId>lenya-core-impl</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.apache.lenya</groupId>
       <artifactId>lenya-core-repository</artifactId>

Modified: lenya/trunk/org.apache.lenya.module.sourcerepository/src/main/java/org/apache/lenya/cms/repository/SourceNode.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.module.sourcerepository/src/main/java/org/apache/lenya/cms/repository/SourceNode.java?rev=742944&r1=742943&r2=742944&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.module.sourcerepository/src/main/java/org/apache/lenya/cms/repository/SourceNode.java (original)
+++ lenya/trunk/org.apache.lenya.module.sourcerepository/src/main/java/org/apache/lenya/cms/repository/SourceNode.java Tue Feb 10 11:56:52 2009
@@ -25,11 +25,8 @@
 import org.apache.commons.logging.Log;
 import org.apache.excalibur.source.SourceResolver;
 import org.apache.excalibur.source.TraversableSource;
-import org.apache.lenya.ac.User;
-import org.apache.lenya.cms.observation.DocumentEvent;
+import org.apache.lenya.cms.observation.RepositoryEventDescriptor;
 import org.apache.lenya.cms.observation.RepositoryEvent;
-import org.apache.lenya.cms.observation.RepositoryEventFactory;
-import org.apache.lenya.cms.publication.IdentityWrapper;
 import org.apache.lenya.cms.rc.CheckInEntry;
 import org.apache.lenya.cms.rc.RCML;
 import org.apache.lenya.cms.rc.RCMLEntry;
@@ -84,15 +81,7 @@
     }
 
     protected String getUserId() {
-        String userId = null;
-        IdentityWrapper identity = (IdentityWrapper) getRepositorySession().getIdentity();
-        if (identity != null) {
-            User user = identity.getIdentity().getUser();
-            if (user != null) {
-                userId = user.getId();
-            }
-        }
-        return userId;
+        return getRepositorySession().getIdentity().getUserId();
     }
 
     /**
@@ -341,7 +330,7 @@
         try {
             if (!getRepositorySession().isDirty(this)) {
                 getRepositorySession().registerDirty(this);
-                enqueueEvent(DocumentEvent.CHANGED);
+                enqueueEvent(RepositoryEventDescriptor.CHANGED);
             }
         } catch (TransactionException e) {
             throw new RepositoryException(e);
@@ -349,14 +338,14 @@
     }
 
     protected void enqueueEvent(Object descriptor) {
-        RepositoryEvent event = RepositoryEventFactory.createEvent(this, descriptor);
+        RepositoryEvent event = new RepositoryEvent(getRepositorySession(), this, descriptor);
         getRepositorySession().enqueueEvent(event);
     }
 
     public void registerRemoved() throws RepositoryException {
         try {
             getRepositorySession().registerRemoved(this);
-            enqueueEvent(DocumentEvent.REMOVED);
+            enqueueEvent(RepositoryEventDescriptor.REMOVED);
         } catch (Exception e) {
             throw new RepositoryException(e);
         }

Modified: lenya/trunk/org.apache.lenya.module.sourcerepository/src/main/java/org/apache/lenya/cms/repository/SourceNodeRCML.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.module.sourcerepository/src/main/java/org/apache/lenya/cms/repository/SourceNodeRCML.java?rev=742944&r1=742943&r2=742944&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.module.sourcerepository/src/main/java/org/apache/lenya/cms/repository/SourceNodeRCML.java (original)
+++ lenya/trunk/org.apache.lenya.module.sourcerepository/src/main/java/org/apache/lenya/cms/repository/SourceNodeRCML.java Tue Feb 10 11:56:52 2009
@@ -32,7 +32,6 @@
 import org.apache.commons.lang.Validate;
 import org.apache.excalibur.source.SourceResolver;
 import org.apache.lenya.cms.cocoon.source.SourceUtil;
-import org.apache.lenya.cms.publication.IdentityWrapper;
 import org.apache.lenya.cms.rc.CheckInEntry;
 import org.apache.lenya.cms.rc.CheckOutEntry;
 import org.apache.lenya.cms.rc.RCML;
@@ -144,8 +143,7 @@
     public synchronized void checkOutIn(Node node, short type, long time, boolean backup,
             boolean newVersion, boolean restrictedToSession) throws RevisionControlException {
 
-        IdentityWrapper wrapper = (IdentityWrapper) node.getRepositorySession().getIdentity();
-        String identity = wrapper.getIdentity().getUser().getId();
+        String identity = node.getRepositorySession().getIdentity().getUserId();
 
         Vector entries = getEntries();
         if (entries.size() == 0) {
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.