You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by dp...@apache.org on 2008/03/05 17:12:00 UTC

svn commit: r633899 - in /jackrabbit/trunk: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/ jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/config/ jackrabbit-site...

Author: dpfister
Date: Wed Mar  5 08:11:58 2008
New Revision: 633899

URL: http://svn.apache.org/viewvc?rev=633899&view=rev
Log:
JCR-1441 - Support workspace event listeners that will be created/registered on initialization time
- reverting commit

Removed:
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/WorkspaceAuditLogger.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/EventListenerConfig.java
Modified:
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/ConfigurationParser.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/RepositoryConfigurationParser.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/WorkspaceConfig.java
    jackrabbit/trunk/jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/config/repository-1.4.dtd
    jackrabbit/trunk/jackrabbit-site/src/site/resources/dtd/repository-1.4.dtd

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java?rev=633899&r1=633898&r2=633899&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java Wed Mar  5 08:11:58 2008
@@ -32,7 +32,6 @@
 import org.apache.jackrabbit.core.cluster.UpdateEventListener;
 import org.apache.jackrabbit.core.config.ClusterConfig;
 import org.apache.jackrabbit.core.config.DataStoreConfig;
-import org.apache.jackrabbit.core.config.EventListenerConfig;
 import org.apache.jackrabbit.core.config.FileSystemConfig;
 import org.apache.jackrabbit.core.config.LoginModuleConfig;
 import org.apache.jackrabbit.core.config.PersistenceManagerConfig;
@@ -604,24 +603,6 @@
                     | Event.PROPERTY_ADDED | Event.PROPERTY_REMOVED
                     | Event.PROPERTY_CHANGED,
                     "/", true, null, null, false);
-        }
-        
-        // create and register user-defined event listeners
-        EventListenerConfig[] elcs = wspInfo.config.getEventListenersConfig();
-        if (elcs != null) {
-            for (int i = 0; i < elcs.length; i++) {
-                EventListenerConfig elc = elcs[i];
-                
-                try {
-                    EventListener el = elcs[i].createEventListener();
-                    wsp.getObservationManager().addEventListener(el, 
-                            elc.getEventTypes(), elc.getAbsPath(), elc.isDeep(),
-                            elc.getUUID(), elc.getNodeTypeName(), elc.isNoLocal());
-                } catch (RepositoryException e) {
-                    log.error("Unable to create and register event listener: " +
-                            elc.getClassName() + ": " + e.getMessage(), e);
-                }
-            }
         }
     }
 

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/ConfigurationParser.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/ConfigurationParser.java?rev=633899&r1=633898&r2=633899&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/ConfigurationParser.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/ConfigurationParser.java Wed Mar  5 08:11:58 2008
@@ -286,49 +286,4 @@
         }
     }
 
-    /**
-     * Returns the value of the named attribute of the given element.
-     * If the attribute is not found, then the given default value is returned.
-     *
-     * @param element element
-     * @param name attribute name
-     * @param def default value
-     * @return attribute value, or the default value
-     */
-    protected boolean getAttribute(Element element, String name, boolean def) {
-        Attr attribute = element.getAttributeNode(name);
-        if (attribute != null) {
-            return Boolean.valueOf(attribute.getValue()).booleanValue();
-        } else {
-            return def;
-        }
-    }
-
-    /**
-     * Returns the value of the named attribute of the given element.
-     * If the attribute is not found, then the given default value is returned.
-     *
-     * @param element element
-     * @param name attribute name
-     * @param def default value
-     * @return attribute value, or the default value
-     */
-    protected int getAttribute(Element element, String name, int def) 
-            throws ConfigurationException {
-        
-        Attr attribute = element.getAttributeNode(name);
-        if (attribute != null) {
-            String s = attribute.getValue();
-            
-            try {
-                return Integer.parseInt(s);
-            } catch (NumberFormatException e) {
-                throw new ConfigurationException(
-                        "Value of attribute " + name + 
-                        " is not an integer: " + s, e);
-            }
-        } else {
-            return def;
-        }
-    }
 }

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/RepositoryConfigurationParser.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/RepositoryConfigurationParser.java?rev=633899&r1=633898&r2=633899&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/RepositoryConfigurationParser.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/RepositoryConfigurationParser.java Wed Mar  5 08:11:58 2008
@@ -17,11 +17,8 @@
 package org.apache.jackrabbit.core.config;
 
 import java.io.File;
-import java.util.ArrayList;
 import java.util.Properties;
 
-import javax.jcr.observation.Event;
-
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -95,9 +92,6 @@
     /** Name of the ism locking configuration element. */
     public static final String ISM_LOCKING_ELEMENT = "ISMLocking";
 
-    /** Name of the event listener configuration element. */
-    public static final String EVENT_LISTENER_ELEMENT = "EventListener";
-    
     /** Name of the application name configuration attribute. */
     public static final String APP_NAME_ATTRIBUTE = "appName";
 
@@ -130,32 +124,6 @@
     /** Default synchronization delay, in milliseconds. */
     public static final String DEFAULT_SYNC_DELAY = "5000";
 
-    /** Name of the eventTypes attribute */
-    public static final String EVENT_TYPES_ATTRIBUTE = "eventTypes";
-    
-    /** Default value of the eventTypes attribute */
-    public static final int EVENT_TYPES_VALUE = 
-        Event.NODE_ADDED | Event.NODE_REMOVED | Event.PROPERTY_ADDED |
-        Event.PROPERTY_CHANGED | Event.PROPERTY_REMOVED;
-
-    /** Name of the absPath attribute */
-    public static final String ABS_PATH_ATTRIBUTE = "absPath";
-
-    /** Name of the isDeep attribute */
-    public static final String IS_DEEP_ATTRIBUTE = "isDeep";
-
-    /** Name of the uuid attribute */
-    public static final String UUID_ATTRIBUTE = "uuid";
-
-    /** Name of the nodeTypeName attribute */
-    public static final String NODE_TYPE_NAME_ATTRIBUTE = "nodeTypeName";
-    
-    /** Name of the noLocal attribute */
-    public static final String NO_LOCAL_ATTRIBUTE = "noLocal";
-    
-    /** Name of the workspace property */
-    public static final String WORKSPACE_PROP_NAME = "workspace";
-    
     /**
      * Creates a new configuration parser with the given parser variables.
      *
@@ -403,10 +371,7 @@
         // Item state manager locking configuration (optional)
         ISMLockingConfig ismLockingConfig = tmpParser.parseISMLockingConfig(root);
 
-        // Event listeners configuration (optional)
-        EventListenerConfig[] elcs = tmpParser.parseEventListenersConfig(root);
-        
-        return new WorkspaceConfig(home, name, clustered, fsc, pmc, sc, ismLockingConfig, elcs);
+        return new WorkspaceConfig(home, name, clustered, fsc, pmc, sc, ismLockingConfig);
     }
 
     /**
@@ -507,70 +472,6 @@
         return null;
     }
 
-    
-    /**
-     * Parse event listeners config.
-     * 
-     * @param parent parent of the <code>EventListener</code> elements.
-     * @return event listener configuration array
-     * @throws ConfigurationException if the configuration is broken
-     */
-    protected EventListenerConfig[] parseEventListenersConfig(Element parent)
-            throws ConfigurationException {
-        
-        ArrayList configs = new ArrayList();
-        
-        NodeList children = parent.getChildNodes();
-        for (int i = 0; i < children.getLength(); i++) {
-            Node child = children.item(i);
-            if (child.getNodeType() == Node.ELEMENT_NODE
-                    && EVENT_LISTENER_ELEMENT.equals(child.getNodeName())) {
-                Element element = (Element) child;
-                configs.add(parseEventListenerConfig(element));
-            }
-        }
-        EventListenerConfig[] rv = new EventListenerConfig[configs.size()];
-        configs.toArray(rv);
-        return rv;
-    }
-
-    /**
-     * Parse event listener config.
-     * 
-     * @param element an  <code>EventListener</code> element.
-     * @return event listener configuration
-     * @throws ConfigurationException if the configuration is broken
-     */
-    protected EventListenerConfig parseEventListenerConfig(Element element)
-            throws ConfigurationException {
-        
-        String className = getAttribute(element, CLASS_ATTRIBUTE);
-        Properties parameters = parseParameters(element);
-        
-        // Provide a meaningful default for the workspace property
-        if (!parameters.containsKey(WORKSPACE_PROP_NAME)) {
-            parameters.put(WORKSPACE_PROP_NAME, 
-                    replaceVariables("${" + WORKSPACE_NAME_VARIABLE + "}"));
-        }
-
-        EventListenerConfig config = new EventListenerConfig(className, parameters);
-        config.setEventTypes(getAttribute(element, 
-                EVENT_TYPES_ATTRIBUTE, EVENT_TYPES_VALUE));
-        config.setAbsPath(getAttribute(element, ABS_PATH_ATTRIBUTE, "/"));
-        config.setDeep(getAttribute(element, IS_DEEP_ATTRIBUTE, true));
-        
-        String s = getAttribute(element, UUID_ATTRIBUTE, null);
-        if (s != null) {
-            config.setUUID(s.split(","));
-        }
-        s = getAttribute(element, NODE_TYPE_NAME_ATTRIBUTE, null);
-        if (s != null) {
-            config.setNodeTypeName(s.split(","));
-        }
-        config.setNoLocal(getAttribute(element, NO_LOCAL_ATTRIBUTE, false));
-        return config;
-    }
-    
     /**
      * Parses versioning configuration. Versioning configuration uses the
      * following format:

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/WorkspaceConfig.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/WorkspaceConfig.java?rev=633899&r1=633898&r2=633899&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/WorkspaceConfig.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/WorkspaceConfig.java Wed Mar  5 08:11:58 2008
@@ -63,11 +63,6 @@
     private ISMLockingConfig ismLockingConfig;
 
     /**
-     * Event listeners configuration.
-     */
-    private EventListenerConfig[] elcs;
-    
-    /**
      * Creates a workspace configuration object.
      *
      * @param home home directory
@@ -80,8 +75,7 @@
      */
     public WorkspaceConfig(String home, String name, boolean clustered,
                            FileSystemConfig fsc, PersistenceManagerConfig pmc,
-                           SearchConfig sc, ISMLockingConfig ismLockingConfig,
-                           EventListenerConfig[] elcs) {
+                           SearchConfig sc, ISMLockingConfig ismLockingConfig) {
         this.home = home;
         this.name = name;
         this.clustered = clustered;
@@ -93,7 +87,6 @@
         } else {
             this.ismLockingConfig = ISMLockingConfig.createDefaultConfig();
         }
-        this.elcs = elcs;
     }
 
     /**
@@ -131,13 +124,6 @@
         return ismLockingConfig;
     }
 
-    /**
-     * @return the configuration for the event listeners.
-     */
-    public EventListenerConfig[] getEventListenersConfig() {
-        return elcs;
-    }
-    
     /**
      * Returns the file system configuration.
      *

Modified: jackrabbit/trunk/jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/config/repository-1.4.dtd
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/config/repository-1.4.dtd?rev=633899&r1=633898&r2=633899&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/config/repository-1.4.dtd (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/config/repository-1.4.dtd Wed Mar  5 08:11:58 2008
@@ -119,7 +119,7 @@
     it is used to create the initial workspace if there's no workspace yet
     and for creating additional workspaces through the api
 -->
-<!ELEMENT Workspace (FileSystem,PersistenceManager,SearchIndex?,ISMLocking?,EventListener*)>
+<!ELEMENT Workspace (FileSystem,PersistenceManager,SearchIndex?,ISMLocking?)>
 <!ATTLIST Workspace name CDATA #REQUIRED>
 
 <!--
@@ -172,16 +172,3 @@
 -->
 <!ELEMENT ISMLocking (param*)>
 <!ATTLIST ISMLocking class CDATA #REQUIRED>
-
-<!--
-    The EventListener element configures a user-defined event listener that
-    will be created and registered on workspace initialization.
--->
-<!ELEMENT EventListener (param*)>
-<!ATTLIST EventListener class        CDATA #REQUIRED
-                        eventTypes   CDATA #IMPLIED
-                        absPath      CDATA #IMPLIED
-                        isDeep       CDATA #IMPLIED
-                        uuid         CDATA #IMPLIED
-                        nodeTypeName CDATA #IMPLIED
-                        noLocal      CDATA #IMPLIED>

Modified: jackrabbit/trunk/jackrabbit-site/src/site/resources/dtd/repository-1.4.dtd
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-site/src/site/resources/dtd/repository-1.4.dtd?rev=633899&r1=633898&r2=633899&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-site/src/site/resources/dtd/repository-1.4.dtd (original)
+++ jackrabbit/trunk/jackrabbit-site/src/site/resources/dtd/repository-1.4.dtd Wed Mar  5 08:11:58 2008
@@ -119,7 +119,7 @@
     it is used to create the initial workspace if there's no workspace yet
     and for creating additional workspaces through the api
 -->
-<!ELEMENT Workspace (FileSystem,PersistenceManager,SearchIndex?,ISMLocking?,EventListener*)>
+<!ELEMENT Workspace (FileSystem,PersistenceManager,SearchIndex?,ISMLocking?)>
 <!ATTLIST Workspace name CDATA #REQUIRED>
 
 <!--
@@ -180,17 +180,3 @@
 -->
 <!ELEMENT DataStore (param*)>
 <!ATTLIST DataStore class CDATA #REQUIRED>
-
-<!--
-    The EventListener element configures a user-defined event listener that
-    will be created and registered on workspace initialization.
--->
-<!ELEMENT EventListener (param*)>
-<!ATTLIST EventListener class        CDATA #REQUIRED
-                        eventTypes   CDATA #IMPLIED
-                        absPath      CDATA #IMPLIED
-                        isDeep       CDATA #IMPLIED
-                        uuid         CDATA #IMPLIED
-                        nodeTypeName CDATA #IMPLIED
-                        noLocal      CDATA #IMPLIED>
-