You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2006/09/16 14:34:26 UTC
svn commit: r446866 - in
/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core: ./
observation/
Author: jukka
Date: Sat Sep 16 05:34:25 2006
New Revision: 446866
URL: http://svn.apache.org/viewvc?view=rev&rev=446866
Log:
JCR-565: Renamed ObservationManagerFactory to ObservationDispatcher and inlined the factory method
Added:
jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/observation/ObservationDispatcher.java
- copied, changed from r446799, jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/observation/ObservationManagerFactory.java
Removed:
jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/observation/ObservationManagerFactory.java
Modified:
jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java
jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java
jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/observation/DelegatingObservationDispatcher.java
jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/observation/ObservationManagerImpl.java
Modified: jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java?view=diff&rev=446866&r1=446865&r2=446866
==============================================================================
--- jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java (original)
+++ jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java Sat Sep 16 05:34:25 2006
@@ -37,7 +37,7 @@
import org.apache.jackrabbit.core.nodetype.NodeTypeRegistry;
import org.apache.jackrabbit.core.nodetype.virtual.VirtualNodeTypeStateManager;
import org.apache.jackrabbit.core.observation.DelegatingObservationDispatcher;
-import org.apache.jackrabbit.core.observation.ObservationManagerFactory;
+import org.apache.jackrabbit.core.observation.ObservationDispatcher;
import org.apache.jackrabbit.core.security.AuthContext;
import org.apache.jackrabbit.core.state.ItemStateException;
import org.apache.jackrabbit.core.state.PMContext;
@@ -712,12 +712,12 @@
return getWorkspaceInfo(workspaceName).getItemStateProvider();
}
- ObservationManagerFactory getObservationManagerFactory(String workspaceName)
+ ObservationDispatcher getObservationDispatcher(String workspaceName)
throws NoSuchWorkspaceException {
// check sanity of this instance
sanityCheck();
- return getWorkspaceInfo(workspaceName).getObservationManagerFactory();
+ return getWorkspaceInfo(workspaceName).getObservationDispatcher();
}
/**
@@ -1292,9 +1292,9 @@
private SharedItemStateManager itemStateMgr;
/**
- * observation manager factory (instantiated on init)
+ * observation dispatcher (instantiated on init)
*/
- private ObservationManagerFactory obsMgrFactory;
+ private ObservationDispatcher dispatcher;
/**
* system session (lazily instantiated)
@@ -1453,17 +1453,17 @@
}
/**
- * Returns the observation manager factory for this workspace
+ * Returns the observation dispatcher for this workspace
*
- * @return the observation manager factory for this workspace
+ * @return the observation dispatcher for this workspace
*/
- ObservationManagerFactory getObservationManagerFactory() {
+ ObservationDispatcher getObservationDispatcher() {
if (!isInitialized()) {
throw new IllegalStateException("workspace '" + getName()
+ "' not initialized");
}
- return obsMgrFactory;
+ return dispatcher;
}
/**
@@ -1623,10 +1623,10 @@
throw new RepositoryException(msg, ise);
}
- obsMgrFactory = new ObservationManagerFactory();
+ dispatcher = new ObservationDispatcher();
// register the observation factory of that workspace
- delegatingDispatcher.addDispatcher(obsMgrFactory);
+ delegatingDispatcher.addDispatcher(dispatcher);
initialized = true;
@@ -1691,11 +1691,11 @@
log.info("shutting down workspace '" + getName() + "'...");
// deregister the observation factory of that workspace
- delegatingDispatcher.removeDispatcher(obsMgrFactory);
+ delegatingDispatcher.removeDispatcher(dispatcher);
// dispose observation manager factory
- obsMgrFactory.dispose();
- obsMgrFactory = null;
+ dispatcher.dispose();
+ dispatcher = null;
// shutdown search managers
if (searchMgr != null) {
Modified: jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java?view=diff&rev=446866&r1=446865&r2=446866
==============================================================================
--- jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java (original)
+++ jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java Sat Sep 16 05:34:25 2006
@@ -21,7 +21,7 @@
import org.apache.jackrabbit.core.lock.LockManager;
import org.apache.jackrabbit.core.observation.EventStateCollection;
import org.apache.jackrabbit.core.observation.EventStateCollectionFactory;
-import org.apache.jackrabbit.core.observation.ObservationManagerFactory;
+import org.apache.jackrabbit.core.observation.ObservationDispatcher;
import org.apache.jackrabbit.core.observation.ObservationManagerImpl;
import org.apache.jackrabbit.core.query.QueryManagerImpl;
import org.apache.jackrabbit.core.state.LocalItemStateManager;
@@ -532,18 +532,22 @@
}
/**
- * {@inheritDoc}
+ * Returns the observation manager of this session. The observation manager
+ * is lazily created if it does not exist yet.
+ *
+ * @return the observation manager of this session
+ * @throws RepositoryException if a repository error occurs
*/
public ObservationManager getObservationManager()
- throws UnsupportedRepositoryOperationException, RepositoryException {
+ throws RepositoryException {
// check state of this instance
sanityCheck();
if (obsMgr == null) {
try {
- ObservationManagerFactory factory =
- rep.getObservationManagerFactory(wspConfig.getName());
- obsMgr = factory.createObservationManager(session, session.getItemManager());
+ obsMgr = new ObservationManagerImpl(
+ rep.getObservationDispatcher(wspConfig.getName()),
+ session, session.getItemManager());
} catch (NoSuchWorkspaceException nswe) {
// should never get here
String msg = "internal error: failed to instantiate observation manager";
Modified: jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/observation/DelegatingObservationDispatcher.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/observation/DelegatingObservationDispatcher.java?view=diff&rev=446866&r1=446865&r2=446866
==============================================================================
--- jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/observation/DelegatingObservationDispatcher.java (original)
+++ jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/observation/DelegatingObservationDispatcher.java Sat Sep 16 05:34:25 2006
@@ -42,24 +42,24 @@
private final HashSet dispatchers = new HashSet();
/**
- * Adds a new observation factory to the set of dispatchers
+ * Adds a new observation dispatcher to the set of dispatchers
*
- * @param disp
+ * @param dispatcher observation dispatcher
*/
- public void addDispatcher(ObservationManagerFactory disp) {
+ public void addDispatcher(ObservationDispatcher dispatcher) {
synchronized (dispatchers) {
- dispatchers.add(disp);
+ dispatchers.add(dispatcher);
}
}
/**
- * Removes a observation factory from the set of dispatchers
+ * Removes a observation dispatcher from the set of dispatchers
*
- * @param disp
+ * @param dispatcher observation dispatcher
*/
- public void removeDispatcher(ObservationManagerFactory disp) {
+ public void removeDispatcher(ObservationDispatcher dispatcher) {
synchronized (dispatchers) {
- dispatchers.remove(disp);
+ dispatchers.remove(dispatcher);
}
}
@@ -68,6 +68,7 @@
* given as argument.
*
* @param session event source
+ * @param pathPrefix event path prefix
* @return new <code>EventStateCollection</code> instance
*/
public EventStateCollection createEventStateCollection(SessionImpl session,
@@ -103,16 +104,17 @@
* {@link EventStateCollection} is created for every dispatcher, fille with
* the given event list and then dispatched.
*
- * @param eventList
- * @param session
+ * @param eventList list of events
+ * @param session current session
+ * @param pathPrefix event path prefix
*/
public void dispatch(List eventList, SessionImpl session, Path pathPrefix) {
- ObservationManagerFactory[] disp;
+ ObservationDispatcher[] disp;
synchronized (dispatchers) {
- disp = (ObservationManagerFactory[]) dispatchers.toArray(
- new ObservationManagerFactory[dispatchers.size()]);
+ disp = (ObservationDispatcher[]) dispatchers.toArray(
+ new ObservationDispatcher[dispatchers.size()]);
}
- for (int i=0; i< disp.length; i++) {
+ for (int i = 0; i < disp.length; i++) {
EventStateCollection events =
new EventStateCollection(disp[i], session, pathPrefix);
try {
Copied: jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/observation/ObservationDispatcher.java (from r446799, jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/observation/ObservationManagerFactory.java)
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/observation/ObservationDispatcher.java?view=diff&rev=446866&p1=jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/observation/ObservationManagerFactory.java&r1=446799&p2=jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/observation/ObservationDispatcher.java&r2=446866
==============================================================================
--- jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/observation/ObservationManagerFactory.java (original)
+++ jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/observation/ObservationDispatcher.java Sat Sep 16 05:34:25 2006
@@ -19,8 +19,6 @@
import org.apache.commons.collections.Buffer;
import org.apache.commons.collections.BufferUtils;
import org.apache.commons.collections.buffer.UnboundedFifoBuffer;
-import org.apache.jackrabbit.core.ItemManager;
-import org.apache.jackrabbit.core.SessionImpl;
import org.apache.jackrabbit.core.state.ChangeLog;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -31,19 +29,16 @@
import java.util.Set;
/**
- * The class <code>ObservationManagerFactory</code> creates new
- * <code>ObservationManager</code> instances for sessions. It also
- * creates new {@link EventStateCollection}s that can be dispatched
- * to registered {@link javax.jcr.observation.EventListener}s.
+ * Dispatcher for dispatching events to listeners within a single workspace.
*/
-public final class ObservationManagerFactory extends EventDispatcher
+public final class ObservationDispatcher extends EventDispatcher
implements Runnable {
/**
* Logger instance for this class
*/
private static final Logger log
- = LoggerFactory.getLogger(ObservationManagerFactory.class);
+ = LoggerFactory.getLogger(ObservationDispatcher.class);
/**
* Dummy DispatchAction indicating the notification thread to end
@@ -87,10 +82,10 @@
private Thread notificationThread;
/**
- * Creates a new <code>ObservationManagerFactory</code> instance
+ * Creates a new <code>ObservationDispatcher</code> instance
* and starts the notification thread deamon.
*/
- public ObservationManagerFactory() {
+ public ObservationDispatcher() {
notificationThread = new Thread(this, "ObservationManager");
notificationThread.setDaemon(true);
notificationThread.start();
@@ -132,19 +127,6 @@
}
return synchronousReadOnlyConsumers;
}
- }
-
- /**
- * Creates a new <code>session</code> local <code>ObservationManager</code>
- * with an associated <code>NamespaceResolver</code>.
- *
- * @param session the session.
- * @param itemMgr the <code>ItemManager</code> of the <code>session</code>.
- * @return an <code>ObservationManager</code>.
- */
- public ObservationManagerImpl createObservationManager(SessionImpl session,
- ItemManager itemMgr) {
- return new ObservationManagerImpl(this, session, itemMgr);
}
/**
Modified: jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/observation/ObservationManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/observation/ObservationManagerImpl.java?view=diff&rev=446866&r1=446865&r2=446866
==============================================================================
--- jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/observation/ObservationManagerImpl.java (original)
+++ jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/observation/ObservationManagerImpl.java Sat Sep 16 05:34:25 2006
@@ -53,9 +53,9 @@
private final ItemManager itemMgr;
/**
- * The <code>ObservationManagerFactory</code>
+ * The <code>ObservationDispatcher</code>
*/
- private final ObservationManagerFactory obsMgrFactory;
+ private final ObservationDispatcher dispatcher;
static {
// preload EventListenerIteratorImpl to prevent classloader issues during shutdown
@@ -65,6 +65,7 @@
/**
* Creates an <code>ObservationManager</code> instance.
*
+ * @param dispatcher observation dispatcher
* @param session the <code>Session</code> this ObservationManager
* belongs to.
* @param itemMgr {@link org.apache.jackrabbit.core.ItemManager} of the passed
@@ -72,7 +73,7 @@
* @throws NullPointerException if <code>session</code> or <code>itemMgr</code>
* is <code>null</code>.
*/
- ObservationManagerImpl(ObservationManagerFactory obsMgrFactory,
+ public ObservationManagerImpl(ObservationDispatcher dispatcher,
SessionImpl session,
ItemManager itemMgr) throws NullPointerException {
if (session == null) {
@@ -82,7 +83,7 @@
throw new NullPointerException("itemMgr");
}
- this.obsMgrFactory = obsMgrFactory;
+ this.dispatcher = dispatcher;
this.session = session;
this.itemMgr = itemMgr;
}
@@ -136,9 +137,7 @@
nodeTypes,
noLocal);
- EventConsumer consumer =
- new EventConsumer(session, listener, filter);
- obsMgrFactory.addConsumer(consumer);
+ dispatcher.addConsumer(new EventConsumer(session, listener, filter));
}
/**
@@ -146,9 +145,8 @@
*/
public void removeEventListener(EventListener listener)
throws RepositoryException {
- EventConsumer consumer =
- new EventConsumer(session, listener, EventFilter.BLOCK_ALL);
- obsMgrFactory.removeConsumer(consumer);
+ dispatcher.removeConsumer(
+ new EventConsumer(session, listener, EventFilter.BLOCK_ALL));
}
@@ -157,9 +155,10 @@
*/
public EventListenerIterator getRegisteredEventListeners()
throws RepositoryException {
- return new EventListenerIteratorImpl(session,
- obsMgrFactory.getSynchronousConsumers(),
- obsMgrFactory.getAsynchronousConsumers());
+ return new EventListenerIteratorImpl(
+ session,
+ dispatcher.getSynchronousConsumers(),
+ dispatcher.getAsynchronousConsumers());
}
/**
@@ -188,6 +187,6 @@
* which is attached to this <code>ObservationManager</code> instance.
*/
public EventStateCollection createEventStateCollection() {
- return new EventStateCollection(obsMgrFactory, session, null);
+ return new EventStateCollection(dispatcher, session, null);
}
}