Author: rhauch
Date: 2009-05-19 16:15:05 -0400 (Tue, 19 May 2009)
New Revision: 913
Removed:
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositorySourceListener.java
Modified:
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositoryConnection.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositoryConnectionPool.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositorySourceCapabilities.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/federation/FederatedRepositoryConnection.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/inmemory/InMemoryRepositoryConnection.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/observe/ChangeObservers.java
trunk/dna-graph/src/test/java/org/jboss/dna/graph/GraphTest.java
trunk/dna-graph/src/test/java/org/jboss/dna/graph/connector/MockRepositoryConnection.java
trunk/dna-graph/src/test/java/org/jboss/dna/graph/connector/TimeDelayingRepositorySource.java
trunk/dna-graph/src/test/java/org/jboss/dna/graph/io/GraphImporterTest.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatedRepository.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatedRepositoryConnection.java
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederatedRepositoryConnectionTest.java
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederatedRepositoryTest.java
trunk/extensions/dna-connector-filesystem/src/main/java/org/jboss/dna/connector/filesystem/FileSystemConnection.java
trunk/extensions/dna-connector-jbosscache/src/main/java/org/jboss/dna/connector/jbosscache/JBossCacheConnection.java
trunk/extensions/dna-connector-jdbc-metadata/src/main/java/org/jboss/dna/connector/jdbc/JdbcConnection.java
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/JpaConnection.java
trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNRepositoryConnection.java
trunk/extensions/dna-connector-svn/src/test/java/org/jboss/dna/connector/svn/SVNRepositoryConnectionTest.java
Log:
DNA-252 Complete support for events to the connector framework
Removed the older RepositorySourceListener and all uses of it.
Modified:
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositoryConnection.java
===================================================================
---
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositoryConnection.java 2009-05-19
17:40:25 UTC (rev 912)
+++
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositoryConnection.java 2009-05-19
20:15:05 UTC (rev 913)
@@ -47,11 +47,6 @@
* returning the connection from a connection pool.
* </p>
* <p>
- * DNA hasn't yet defined the event mechanism, so connectors don't have any
methods to invoke on the
- * {@link RepositorySourceListener}. This will be defined in the next release, so feel
free to manage the listeners now. Note that
- * by default the {@link RepositorySourceCapabilities} returns false for
supportsEvents().
- * </p>
- * <p>
* The most important method on this interface, though, is the {@link
#execute(ExecutionContext, Request)} method, which serves as
* the mechanism by which the component using the connector access and manipulates the
content exposed by the connector. The first
* parameter to this method is the {@link ExecutionContext}, which contains the
information about environment as well as the
@@ -149,13 +144,6 @@
TimeUnit unit ) throws InterruptedException;
/**
- * Set the listener that is to receive notifications to changes to content within
this source.
- *
- * @param listener the new listener, or null if no component is interested in the
change notifications
- */
- void setListener( RepositorySourceListener listener );
-
- /**
* Get the default cache policy for this repository. If none is provided, a global
cache policy will be used.
*
* @return the default cache policy
Modified:
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositoryConnectionPool.java
===================================================================
---
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositoryConnectionPool.java 2009-05-19
17:40:25 UTC (rev 912)
+++
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositoryConnectionPool.java 2009-05-19
20:15:05 UTC (rev 913)
@@ -1011,14 +1011,6 @@
returnConnection(this);
}
}
-
- /**
- * {@inheritDoc}
- */
- public void setListener( RepositorySourceListener listener ) {
- if (!closed) this.original.setListener(listener);
- }
-
}
}
Modified:
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositorySourceCapabilities.java
===================================================================
---
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositorySourceCapabilities.java 2009-05-19
17:40:25 UTC (rev 912)
+++
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositorySourceCapabilities.java 2009-05-19
20:15:05 UTC (rev 913)
@@ -122,7 +122,7 @@
}
/**
- * Return whether the source supports events through {@link
RepositorySourceListener}s.
+ * Return whether the source supports publishing change events.
*
* @return true if events are supported, or false if the source is not capable of
generating events
*/
Deleted:
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositorySourceListener.java
===================================================================
---
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositorySourceListener.java 2009-05-19
17:40:25 UTC (rev 912)
+++
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositorySourceListener.java 2009-05-19
20:15:05 UTC (rev 913)
@@ -1,35 +0,0 @@
-/*
- * JBoss DNA (
http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
- */
-package org.jboss.dna.graph.connector;
-
-/**
- * Interface for a component that wants to listen to changes occurring in a {@link
RepositorySource}.
- *
- * @author Randall Hauch
- */
-public interface RepositorySourceListener {
-
- void notify( String sourceName,
- Object... events );
-}
Modified:
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/federation/FederatedRepositoryConnection.java
===================================================================
---
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/federation/FederatedRepositoryConnection.java 2009-05-19
17:40:25 UTC (rev 912)
+++
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/federation/FederatedRepositoryConnection.java 2009-05-19
20:15:05 UTC (rev 913)
@@ -37,7 +37,6 @@
import org.jboss.dna.graph.cache.CachePolicy;
import org.jboss.dna.graph.connector.RepositoryConnection;
import org.jboss.dna.graph.connector.RepositorySourceException;
-import org.jboss.dna.graph.connector.RepositorySourceListener;
import org.jboss.dna.graph.property.DateTime;
import org.jboss.dna.graph.request.CompositeRequest;
import org.jboss.dna.graph.request.Request;
@@ -255,11 +254,4 @@
// do nothing else, since we don't currently hold any state
}
- /**
- * {@inheritDoc}
- *
- * @see
org.jboss.dna.graph.connector.RepositoryConnection#setListener(org.jboss.dna.graph.connector.RepositorySourceListener)
- */
- public void setListener( RepositorySourceListener listener ) {
- }
}
Modified:
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/inmemory/InMemoryRepositoryConnection.java
===================================================================
---
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/inmemory/InMemoryRepositoryConnection.java 2009-05-19
17:40:25 UTC (rev 912)
+++
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/inmemory/InMemoryRepositoryConnection.java 2009-05-19
20:15:05 UTC (rev 913)
@@ -32,7 +32,6 @@
import org.jboss.dna.graph.cache.CachePolicy;
import org.jboss.dna.graph.connector.RepositoryConnection;
import org.jboss.dna.graph.connector.RepositorySourceException;
-import org.jboss.dna.graph.connector.RepositorySourceListener;
import org.jboss.dna.graph.request.Request;
import org.jboss.dna.graph.request.processor.RequestProcessor;
@@ -41,20 +40,8 @@
*/
public class InMemoryRepositoryConnection implements RepositoryConnection {
- protected static final RepositorySourceListener NO_OP_LISTENER = new
RepositorySourceListener() {
-
- /**
- * {@inheritDoc}
- */
- public void notify( String sourceName,
- Object... events ) {
- // do nothing
- }
- };
-
private final InMemoryRepositorySource source;
private final InMemoryRepository repository;
- private RepositorySourceListener listener = NO_OP_LISTENER;
InMemoryRepositoryConnection( InMemoryRepositorySource source,
InMemoryRepository repository ) {
@@ -96,13 +83,6 @@
/**
* {@inheritDoc}
*/
- public void setListener( RepositorySourceListener listener ) {
- this.listener = listener != null ? listener : NO_OP_LISTENER;
- }
-
- /**
- * {@inheritDoc}
- */
public void close() {
// do nothing
}
@@ -144,13 +124,6 @@
}
/**
- * @return listener
- */
- protected RepositorySourceListener getListener() {
- return this.listener;
- }
-
- /**
* {@inheritDoc}
*
* @see java.lang.Object#toString()
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/observe/ChangeObservers.java
===================================================================
---
trunk/dna-graph/src/main/java/org/jboss/dna/graph/observe/ChangeObservers.java 2009-05-19
17:40:25 UTC (rev 912)
+++
trunk/dna-graph/src/main/java/org/jboss/dna/graph/observe/ChangeObservers.java 2009-05-19
20:15:05 UTC (rev 913)
@@ -23,8 +23,11 @@
*/
package org.jboss.dna.graph.observe;
+import java.lang.ref.WeakReference;
import java.util.concurrent.CopyOnWriteArrayList;
import net.jcip.annotations.ThreadSafe;
+import org.jboss.dna.common.util.CheckArg;
+import org.jboss.dna.common.util.Logger;
/**
* Reusable manager of change listeners, typically employed by another {@link Observable}
implementation.
@@ -32,7 +35,7 @@
@ThreadSafe
public class ChangeObservers implements Observable {
- private CopyOnWriteArrayList<ChangeObserver> observers = new
CopyOnWriteArrayList<ChangeObserver>();
+ private CopyOnWriteArrayList<ObserverReference> observers = new
CopyOnWriteArrayList<ObserverReference>();
public ChangeObservers() {
}
@@ -43,7 +46,7 @@
* @see
org.jboss.dna.graph.observe.Observable#register(org.jboss.dna.graph.observe.ChangeObserver)
*/
public boolean register( ChangeObserver observer ) {
- if (observer != null && observers.addIfAbsent(observer)) {
+ if (observer != null && observers.addIfAbsent(new
ObserverReference(observer))) {
observer.registeredWith(this);
return true;
}
@@ -63,4 +66,68 @@
return false;
}
+ /**
+ * Broadcast the supplied changes to the registered observers.
+ *
+ * @param changes the changes to broadcast
+ * @throws IllegalArgumentException if the changes reference is null
+ */
+ public void broadcast( Changes changes ) {
+ CheckArg.isNotNull(changes, "changes");
+ for (ObserverReference observerReference : observers) {
+ ChangeObserver observer = observerReference.get();
+ if (observer == null) {
+ observers.remove(observerReference);
+ continue;
+ }
+ try {
+ observer.notify(changes);
+ } catch (Throwable t) {
+ Logger.getLogger(getClass()).debug(t, "Exception while
notifying");
+ }
+ }
+ }
+
+ /**
+ * A {@link WeakReference} implementation that provides a valid
+ */
+ protected final class ObserverReference extends WeakReference<ChangeObserver>
{
+ final int hc;
+
+ protected ObserverReference( ChangeObserver source ) {
+ super(source);
+ this.hc = source.hashCode();
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see java.lang.Object#hashCode()
+ */
+ @Override
+ public int hashCode() {
+ return hc;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see java.lang.Object#equals(java.lang.Object)
+ */
+ @Override
+ public boolean equals( Object obj ) {
+ if (obj == this) return true;
+ if (obj instanceof ObserverReference) {
+ ObserverReference that = (ObserverReference)obj;
+ ChangeObserver thisSource = this.get();
+ ChangeObserver thatSource = that.get();
+ return thisSource == thatSource; // reference equality, not object
equality!
+ }
+ if (obj instanceof ChangeObserver) {
+ ChangeObserver that = (ChangeObserver)obj;
+ return this.get() == that; // reference equality, not object equality!
+ }
+ return false;
+ }
+ }
}
Modified: trunk/dna-graph/src/test/java/org/jboss/dna/graph/GraphTest.java
===================================================================
--- trunk/dna-graph/src/test/java/org/jboss/dna/graph/GraphTest.java 2009-05-19 17:40:25
UTC (rev 912)
+++ trunk/dna-graph/src/test/java/org/jboss/dna/graph/GraphTest.java 2009-05-19 20:15:05
UTC (rev 913)
@@ -48,7 +48,7 @@
import org.jboss.dna.graph.connector.RepositoryConnection;
import org.jboss.dna.graph.connector.RepositoryConnectionFactory;
import org.jboss.dna.graph.connector.RepositorySourceException;
-import org.jboss.dna.graph.connector.RepositorySourceListener;
+import org.jboss.dna.graph.observe.ChangeObserver;
import org.jboss.dna.graph.property.DateTime;
import org.jboss.dna.graph.property.InvalidPathException;
import org.jboss.dna.graph.property.Name;
@@ -817,8 +817,16 @@
assertNextRequestIsMove(Location.create(validUuid), Location.create(validPath));
assertNoMoreRequests();
- graph.batch().move(validPath).into(validIdProperty1,
validIdProperty2).and().move(validPathString).into(validIdProperty1,
-
validIdProperty2).and().move(validUuid).into(validPath).execute();
+ graph.batch()
+ .move(validPath)
+ .into(validIdProperty1, validIdProperty2)
+ .and()
+ .move(validPathString)
+ .into(validIdProperty1, validIdProperty2)
+ .and()
+ .move(validUuid)
+ .into(validPath)
+ .execute();
assertThat(numberOfExecutions, is(1));
extractRequestsFromComposite();
assertNextRequestIsMove(Location.create(validPath),
Location.create(validIdProperty1, validIdProperty2));
@@ -844,8 +852,16 @@
assertNextRequestIsCopy(Location.create(validUuid), Location.create(validPath));
assertNoMoreRequests();
- graph.batch().copy(validPath).into(validIdProperty1,
validIdProperty2).and().copy(validPathString).into(validIdProperty1,
-
validIdProperty2).and().copy(validUuid).into(validPath).execute();
+ graph.batch()
+ .copy(validPath)
+ .into(validIdProperty1, validIdProperty2)
+ .and()
+ .copy(validPathString)
+ .into(validIdProperty1, validIdProperty2)
+ .and()
+ .copy(validUuid)
+ .into(validPath)
+ .execute();
assertThat(numberOfExecutions, is(1));
extractRequestsFromComposite();
assertNextRequestIsCopy(Location.create(validPath),
Location.create(validIdProperty1, validIdProperty2));
@@ -1227,8 +1243,7 @@
return true;
}
- public void setListener( RepositorySourceListener listener ) {
+ public void setObserver( ChangeObserver observer ) {
}
-
}
}
Modified:
trunk/dna-graph/src/test/java/org/jboss/dna/graph/connector/MockRepositoryConnection.java
===================================================================
---
trunk/dna-graph/src/test/java/org/jboss/dna/graph/connector/MockRepositoryConnection.java 2009-05-19
17:40:25 UTC (rev 912)
+++
trunk/dna-graph/src/test/java/org/jboss/dna/graph/connector/MockRepositoryConnection.java 2009-05-19
20:15:05 UTC (rev 913)
@@ -134,13 +134,4 @@
return true;
}
- /**
- * {@inheritDoc}
- *
- * @see
org.jboss.dna.graph.connector.RepositoryConnection#setListener(org.jboss.dna.graph.connector.RepositorySourceListener)
- */
- public void setListener( RepositorySourceListener listener ) {
- throw new UnsupportedOperationException();
- }
-
}
Modified:
trunk/dna-graph/src/test/java/org/jboss/dna/graph/connector/TimeDelayingRepositorySource.java
===================================================================
---
trunk/dna-graph/src/test/java/org/jboss/dna/graph/connector/TimeDelayingRepositorySource.java 2009-05-19
17:40:25 UTC (rev 912)
+++
trunk/dna-graph/src/test/java/org/jboss/dna/graph/connector/TimeDelayingRepositorySource.java 2009-05-19
20:15:05 UTC (rev 913)
@@ -36,12 +36,6 @@
import net.jcip.annotations.ThreadSafe;
import org.jboss.dna.graph.ExecutionContext;
import org.jboss.dna.graph.cache.CachePolicy;
-import org.jboss.dna.graph.connector.RepositoryConnection;
-import org.jboss.dna.graph.connector.RepositoryContext;
-import org.jboss.dna.graph.connector.RepositorySource;
-import org.jboss.dna.graph.connector.RepositorySourceCapabilities;
-import org.jboss.dna.graph.connector.RepositorySourceException;
-import org.jboss.dna.graph.connector.RepositorySourceListener;
import org.jboss.dna.graph.request.Request;
/**
@@ -373,12 +367,6 @@
return this.closeCount.get();
}
- /**
- * {@inheritDoc}
- */
- public void setListener( RepositorySourceListener listener ) {
- }
-
}
}
Modified: trunk/dna-graph/src/test/java/org/jboss/dna/graph/io/GraphImporterTest.java
===================================================================
--- trunk/dna-graph/src/test/java/org/jboss/dna/graph/io/GraphImporterTest.java 2009-05-19
17:40:25 UTC (rev 912)
+++ trunk/dna-graph/src/test/java/org/jboss/dna/graph/io/GraphImporterTest.java 2009-05-19
20:15:05 UTC (rev 913)
@@ -45,7 +45,7 @@
import org.jboss.dna.graph.connector.RepositoryConnection;
import org.jboss.dna.graph.connector.RepositoryConnectionFactory;
import org.jboss.dna.graph.connector.RepositorySourceException;
-import org.jboss.dna.graph.connector.RepositorySourceListener;
+import org.jboss.dna.graph.observe.ChangeObserver;
import org.jboss.dna.graph.property.Name;
import org.jboss.dna.graph.property.Path;
import org.jboss.dna.graph.property.Property;
@@ -114,7 +114,9 @@
"repositoryName=repositoryB",
"jcr:primaryType={http://www.jcp.org/jcr/nt/1.0}unstructured",
"dna:classname=org.jboss.dna.connector.inmemory.InMemoryRepositorySource");
- assertCreateProperties(iter, "/a/b/dna:system[1]/dna:sources[1]",
"jcr:primaryType={http://www.jcp.org/jcr/nt/1.0}unstructured");
+ assertCreateProperties(iter,
+ "/a/b/dna:system[1]/dna:sources[1]",
+
"jcr:primaryType={http://www.jcp.org/jcr/nt/1.0}unstructured");
assertCreateProperties(iter, "/a/b/dna:system[1]",
"jcr:primaryType={http://www.jcp.org/jcr/nt/1.0}unstructured");
assertThat(iter.hasNext(), is(false));
}
@@ -129,7 +131,7 @@
Path parentPath = createNode.under().getPath();
assertThat(parentPath, is(expectedPath.getParent()));
assertThat(createNode.named(), is(expectedPath.getLastSegment().getName()));
-
+
if (properties.length > 0) {
Map<Name, Property> propertiesByName = new HashMap<Name,
Property>();
for (Property prop : createNode.properties()) {
@@ -162,21 +164,20 @@
String path,
String... properties ) {
Request nextCommand = iterator.next();
-
+
if (nextCommand instanceof UpdatePropertiesRequest) {
- assertUpdateProperties((UpdatePropertiesRequest) nextCommand, path,
properties);
- }
- else if (nextCommand instanceof SetPropertyRequest) {
- assertSetProperty((SetPropertyRequest) nextCommand, path, properties);
- }
- else {
+ assertUpdateProperties((UpdatePropertiesRequest)nextCommand, path,
properties);
+ } else if (nextCommand instanceof SetPropertyRequest) {
+ assertSetProperty((SetPropertyRequest)nextCommand, path, properties);
+ } else {
fail("Invalid next request type: " +
nextCommand.getClass().getName());
}
-
+
}
+
public void assertUpdateProperties( UpdatePropertiesRequest createNode,
- String path,
- String... properties ) {
+ String path,
+ String... properties ) {
Path expectedPath = context.getValueFactories().getPathFactory().create(path);
Path parentPath = createNode.changedLocation().getPath().getParent();
assertThat(parentPath, is(expectedPath.getParent()));
@@ -208,39 +209,38 @@
}
public void assertSetProperty( SetPropertyRequest createNode,
- String path,
- String... properties ) {
- Path expectedPath =
context.getValueFactories().getPathFactory().create(path);
- Path parentPath = createNode.changedLocation().getPath().getParent();
- assertThat(parentPath, is(expectedPath.getParent()));
-
assertThat(createNode.changedLocation().getPath().getLastSegment().getName(),
is(expectedPath.getLastSegment().getName()));
- Map<Name, Property> propertiesByName = new HashMap<Name,
Property>();
- Property prop = createNode.property();
- propertiesByName.put(prop.getName(), prop);
+ String path,
+ String... properties ) {
+ Path expectedPath = context.getValueFactories().getPathFactory().create(path);
+ Path parentPath = createNode.changedLocation().getPath().getParent();
+ assertThat(parentPath, is(expectedPath.getParent()));
+ assertThat(createNode.changedLocation().getPath().getLastSegment().getName(),
is(expectedPath.getLastSegment().getName()));
+ Map<Name, Property> propertiesByName = new HashMap<Name,
Property>();
+ Property prop = createNode.property();
+ propertiesByName.put(prop.getName(), prop);
- for (String propertyStr : properties) {
- if (propertyStr == "any properties") {
- propertiesByName.clear();
- break;
- }
- Matcher matcher =
Pattern.compile("([^=]+)=(.*)").matcher(propertyStr);
- if (!matcher.matches()) continue;
- System.out.println("Property: " + propertyStr + " ==>
" + matcher);
- Name propertyName =
context.getValueFactories().getNameFactory().create(matcher.group(1));
- System.out.println("Property name: " + matcher.group(1));
- String value = matcher.group(2); // doesn't handle multiple
values!!
- if (value.trim().length() == 0) value = null;
- Property actual = propertiesByName.remove(propertyName);
- Property expectedProperty =
context.getPropertyFactory().create(propertyName, value);
- assertThat("missing property " + propertyName, actual,
is(expectedProperty));
- }
- if (!propertiesByName.isEmpty()) {
- System.out.println("Properties for " + path + "\n"
+ propertiesByName);
- }
- assertThat(propertiesByName.isEmpty(), is(true));
- }
+ for (String propertyStr : properties) {
+ if (propertyStr == "any properties") {
+ propertiesByName.clear();
+ break;
+ }
+ Matcher matcher =
Pattern.compile("([^=]+)=(.*)").matcher(propertyStr);
+ if (!matcher.matches()) continue;
+ System.out.println("Property: " + propertyStr + " ==>
" + matcher);
+ Name propertyName =
context.getValueFactories().getNameFactory().create(matcher.group(1));
+ System.out.println("Property name: " + matcher.group(1));
+ String value = matcher.group(2); // doesn't handle multiple values!!
+ if (value.trim().length() == 0) value = null;
+ Property actual = propertiesByName.remove(propertyName);
+ Property expectedProperty = context.getPropertyFactory().create(propertyName,
value);
+ assertThat("missing property " + propertyName, actual,
is(expectedProperty));
+ }
+ if (!propertiesByName.isEmpty()) {
+ System.out.println("Properties for " + path + "\n" +
propertiesByName);
+ }
+ assertThat(propertiesByName.isEmpty(), is(true));
+ }
-
protected class MockRepositoryConnection implements RepositoryConnection {
public void close() {
}
@@ -276,7 +276,7 @@
return true;
}
- public void setListener( RepositorySourceListener listener ) {
+ public void setObserver( ChangeObserver observer ) {
}
}
Modified:
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatedRepository.java
===================================================================
---
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatedRepository.java 2009-05-19
17:40:25 UTC (rev 912)
+++
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatedRepository.java 2009-05-19
20:15:05 UTC (rev 913)
@@ -25,9 +25,7 @@
import java.util.Collections;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
-import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -38,7 +36,6 @@
import org.jboss.dna.graph.connector.RepositoryConnection;
import org.jboss.dna.graph.connector.RepositoryConnectionFactory;
import org.jboss.dna.graph.connector.RepositorySource;
-import org.jboss.dna.graph.connector.RepositorySourceListener;
import org.jboss.dna.graph.request.processor.RequestProcessor;
/**
@@ -59,7 +56,6 @@
private final AtomicInteger openExecutors = new AtomicInteger(0);
private final CountDownLatch shutdownLatch = new CountDownLatch(1);
private final AtomicBoolean shutdownRequested = new AtomicBoolean(false);
- private final CopyOnWriteArrayList<RepositorySourceListener> listeners = new
CopyOnWriteArrayList<RepositorySourceListener>();
/**
* Create a federated repository instance.
@@ -163,42 +159,6 @@
}
/**
- * Add a listener that is to receive notifications to changes to content within this
repository. This method does nothing if
- * the supplied listener is null.
- *
- * @param listener the new listener
- * @return true if the listener was added, or false if the listener was not added (if
reference is null, or if non-null
- * listener is already an existing listener)
- */
- public boolean addListener( RepositorySourceListener listener ) {
- if (listener == null) return false;
- return this.listeners.addIfAbsent(listener);
- }
-
- /**
- * Remove the supplied listener. This method does nothing if the supplied listener is
null.
- * <p>
- * This method can safely be called while the federation repository is in use.
- * </p>
- *
- * @param listener the listener to remove
- * @return true if the listener was removed, or false if the listener was not
registered
- */
- public boolean removeListener( RepositorySourceListener listener ) {
- if (listener == null) return false;
- return this.listeners.remove(listener);
- }
-
- /**
- * Get the list of listeners, which is the actual list used by the repository.
- *
- * @return the listeners
- */
- public List<RepositorySourceListener> getListeners() {
- return this.listeners;
- }
-
- /**
* Authenticate the supplied username with the supplied credentials, and return
whether authentication was successful.
*
* @param source the {@link RepositorySource} that should be affiliated with the
resulting connection
Modified:
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatedRepositoryConnection.java
===================================================================
---
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatedRepositoryConnection.java 2009-05-19
17:40:25 UTC (rev 912)
+++
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatedRepositoryConnection.java 2009-05-19
20:15:05 UTC (rev 913)
@@ -24,14 +24,12 @@
package org.jboss.dna.connector.federation;
import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicReference;
import javax.transaction.xa.XAResource;
import net.jcip.annotations.ThreadSafe;
import org.jboss.dna.graph.ExecutionContext;
import org.jboss.dna.graph.cache.CachePolicy;
import org.jboss.dna.graph.connector.RepositoryConnection;
import org.jboss.dna.graph.connector.RepositorySourceException;
-import org.jboss.dna.graph.connector.RepositorySourceListener;
import org.jboss.dna.graph.request.Request;
import org.jboss.dna.graph.request.processor.RequestProcessor;
@@ -41,16 +39,8 @@
@ThreadSafe
public class FederatedRepositoryConnection implements RepositoryConnection {
- protected static final RepositorySourceListener NO_OP_LISTENER = new
RepositorySourceListener() {
- public void notify( String sourceName,
- Object... events ) {
- // do nothing
- }
- };
-
private final FederatedRepository repository;
private final String sourceName;
- private final AtomicReference<RepositorySourceListener> listener;
protected FederatedRepositoryConnection( FederatedRepository repository,
String sourceName ) {
@@ -58,7 +48,6 @@
assert repository != null;
this.sourceName = sourceName;
this.repository = repository;
- this.listener = new
AtomicReference<RepositorySourceListener>(NO_OP_LISTENER);
this.repository.register(this);
}
@@ -93,18 +82,6 @@
/**
* {@inheritDoc}
*/
- public void setListener( RepositorySourceListener listener ) {
- if (listener == null) listener = NO_OP_LISTENER;
- RepositorySourceListener oldListener = this.listener.getAndSet(listener);
- this.repository.addListener(listener);
- if (oldListener != NO_OP_LISTENER) {
- this.repository.removeListener(oldListener);
- }
- }
-
- /**
- * {@inheritDoc}
- */
public boolean ping( long time,
TimeUnit unit ) {
return this.repository.isRunning();
@@ -136,11 +113,6 @@
* {@inheritDoc}
*/
public void close() {
- try {
- this.repository.removeListener(this.listener.get());
- } finally {
- this.repository.unregister(this);
- }
}
}
Modified:
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederatedRepositoryConnectionTest.java
===================================================================
---
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederatedRepositoryConnectionTest.java 2009-05-19
17:40:25 UTC (rev 912)
+++
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederatedRepositoryConnectionTest.java 2009-05-19
20:15:05 UTC (rev 913)
@@ -33,7 +33,6 @@
import java.util.concurrent.TimeUnit;
import org.jboss.dna.graph.ExecutionContext;
import org.jboss.dna.graph.connector.RepositorySourceException;
-import org.jboss.dna.graph.connector.RepositorySourceListener;
import org.jboss.dna.graph.request.Request;
import org.junit.Before;
import org.junit.Test;
@@ -93,29 +92,4 @@
verify(repository, times(1)).isRunning();
}
- @Test
- public void shouldAddListenerToRepositoryWhenSetOnConnection() {
- // Old listener is no-op, so it is not removed from repository ...
- RepositorySourceListener listener = mock(RepositorySourceListener.class);
- connection.setListener(listener);
- verify(repository, times(1)).addListener(listener);
-
- // Old listener is NOT no-op, so it is removed from repository ...
- RepositorySourceListener listener2 = mock(RepositorySourceListener.class);
- connection.setListener(listener2);
- verify(repository, times(1)).removeListener(listener);
- verify(repository, times(1)).addListener(listener2);
- }
-
- @Test
- public void shouldRemoveListenerFromRepositoryWhenConnectionIsClosed() {
- // Old listener is NOT no-op, so it is removed from repository ...
- RepositorySourceListener listener2 = mock(RepositorySourceListener.class);
- connection.setListener(listener2);
- verify(repository, times(1)).addListener(listener2);
-
- // Closing connection will remove listener ...
- connection.close();
- verify(repository, times(1)).removeListener(listener2);
- }
}
Modified:
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederatedRepositoryTest.java
===================================================================
---
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederatedRepositoryTest.java 2009-05-19
17:40:25 UTC (rev 912)
+++
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederatedRepositoryTest.java 2009-05-19
20:15:05 UTC (rev 913)
@@ -27,13 +27,11 @@
import static org.hamcrest.core.IsNull.notNullValue;
import static org.hamcrest.core.IsSame.sameInstance;
import static org.junit.Assert.assertThat;
-import static org.junit.matchers.JUnitMatchers.hasItems;
import static org.mockito.Mockito.stub;
import java.util.ArrayList;
import java.util.Collection;
import org.jboss.dna.graph.ExecutionContext;
import org.jboss.dna.graph.connector.RepositoryConnectionFactory;
-import org.jboss.dna.graph.connector.RepositorySourceListener;
import org.junit.Before;
import org.junit.Test;
import org.mockito.MockitoAnnotations;
@@ -50,10 +48,6 @@
@Mock
private FederatedWorkspace config;
@Mock
- private RepositorySourceListener listener1;
- @Mock
- private RepositorySourceListener listener2;
- @Mock
private RepositoryConnectionFactory connectionFactory;
@Before
@@ -73,72 +67,6 @@
}
@Test
- public void shouldHaveNoListenersUponCreation() {
- assertThat(repository.getListeners(), is(notNullValue()));
- assertThat(repository.getListeners().isEmpty(), is(true));
- }
-
- @Test
- public void shouldNotAddNullListener() {
- assertThat(repository.addListener(null), is(false));
- }
-
- @Test
- public void shouldNotAddListenerIfAlreadyInList() {
- assertThat(repository.getListeners().size(), is(0));
- assertThat(repository.addListener(listener1), is(true));
- assertThat(repository.getListeners().size(), is(1));
- assertThat(repository.addListener(listener1), is(false));
- assertThat(repository.getListeners().size(), is(1));
- }
-
- @Test
- public void shouldAddDifferentListeners() {
- assertThat(repository.getListeners().size(), is(0));
- assertThat(repository.addListener(listener1), is(true));
- assertThat(repository.getListeners().size(), is(1));
- assertThat(repository.addListener(listener2), is(true));
- assertThat(repository.getListeners().size(), is(2));
- assertThat(repository.getListeners(), hasItems(listener1, listener2));
- assertThat(repository.getListeners().get(0), is(sameInstance(listener1)));
- assertThat(repository.getListeners().get(1), is(sameInstance(listener2)));
- }
-
- @Test
- public void shouldAllowReorderingOfListeners() {
- assertThat(repository.getListeners().size(), is(0));
- assertThat(repository.addListener(listener1), is(true));
- assertThat(repository.addListener(listener2), is(true));
- assertThat(repository.getListeners().size(), is(2));
- assertThat(repository.getListeners(), hasItems(listener1, listener2));
- repository.getListeners().remove(0);
- repository.getListeners().add(1, listener1);
- assertThat(repository.getListeners(), hasItems(listener2, listener1));
- assertThat(repository.getListeners().get(0), is(sameInstance(listener2)));
- assertThat(repository.getListeners().get(1), is(sameInstance(listener1)));
- }
-
- @Test
- public void shouldAllowRemovalOfListeners() {
- assertThat(repository.getListeners().size(), is(0));
- assertThat(repository.addListener(listener1), is(true));
- assertThat(repository.addListener(listener2), is(true));
- assertThat(repository.getListeners(), hasItems(listener1, listener2));
- assertThat(repository.removeListener(listener1), is(true));
- assertThat(repository.getListeners(), hasItems(listener2));
- assertThat(repository.removeListener(listener2), is(true));
- assertThat(repository.getListeners(), hasItems(new RepositorySourceListener[]
{}));
- }
-
- @Test
- public void shouldNotRemoveListenerThatIsNotAlreadyRegistered() {
- assertThat(repository.getListeners().size(), is(0));
- assertThat(repository.addListener(listener1), is(true));
- assertThat(repository.getListeners().size(), is(1));
- assertThat(repository.removeListener(listener2), is(false));
- }
-
- @Test
public void shouldHaveConfigurationAfterInitialization() {
assertThat(repository.getWorkspaceConfigurations(), is(notNullValue()));
assertThat(repository.getWorkspaceConfigurations().get("workspace"),
is(sameInstance(config)));
Modified:
trunk/extensions/dna-connector-filesystem/src/main/java/org/jboss/dna/connector/filesystem/FileSystemConnection.java
===================================================================
---
trunk/extensions/dna-connector-filesystem/src/main/java/org/jboss/dna/connector/filesystem/FileSystemConnection.java 2009-05-19
17:40:25 UTC (rev 912)
+++
trunk/extensions/dna-connector-filesystem/src/main/java/org/jboss/dna/connector/filesystem/FileSystemConnection.java 2009-05-19
20:15:05 UTC (rev 913)
@@ -26,14 +26,12 @@
import java.io.File;
import java.io.FilenameFilter;
import java.util.Set;
-import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.TimeUnit;
import javax.transaction.xa.XAResource;
import org.jboss.dna.graph.ExecutionContext;
import org.jboss.dna.graph.cache.CachePolicy;
import org.jboss.dna.graph.connector.RepositoryConnection;
import org.jboss.dna.graph.connector.RepositorySourceException;
-import org.jboss.dna.graph.connector.RepositorySourceListener;
import org.jboss.dna.graph.request.Request;
import org.jboss.dna.graph.request.processor.RequestProcessor;
@@ -50,7 +48,6 @@
private final CachePolicy cachePolicy;
private final Set<String> availableWorkspaceNames;
private final boolean creatingWorkspacesAllowed;
- private final CopyOnWriteArrayList<RepositorySourceListener> listeners = new
CopyOnWriteArrayList<RepositorySourceListener>();
private final FilenameFilter filenameFilter;
private final boolean updatesAllowed;
@@ -103,17 +100,6 @@
/**
* {@inheritDoc}
*
- * @see
org.jboss.dna.graph.connector.RepositoryConnection#setListener(org.jboss.dna.graph.connector.RepositorySourceListener)
- */
- public void setListener( RepositorySourceListener listener ) {
- if (listener != null) {
- listeners.addIfAbsent(listener);
- }
- }
-
- /**
- * {@inheritDoc}
- *
* @see org.jboss.dna.graph.connector.RepositoryConnection#ping(long,
java.util.concurrent.TimeUnit)
*/
public boolean ping( long time,
Modified:
trunk/extensions/dna-connector-jbosscache/src/main/java/org/jboss/dna/connector/jbosscache/JBossCacheConnection.java
===================================================================
---
trunk/extensions/dna-connector-jbosscache/src/main/java/org/jboss/dna/connector/jbosscache/JBossCacheConnection.java 2009-05-19
17:40:25 UTC (rev 912)
+++
trunk/extensions/dna-connector-jbosscache/src/main/java/org/jboss/dna/connector/jbosscache/JBossCacheConnection.java 2009-05-19
20:15:05 UTC (rev 913)
@@ -29,7 +29,6 @@
import org.jboss.dna.graph.cache.CachePolicy;
import org.jboss.dna.graph.connector.RepositoryConnection;
import org.jboss.dna.graph.connector.RepositorySourceException;
-import org.jboss.dna.graph.connector.RepositorySourceListener;
import org.jboss.dna.graph.request.Request;
import org.jboss.dna.graph.request.processor.RequestProcessor;
@@ -40,20 +39,8 @@
*/
public class JBossCacheConnection implements RepositoryConnection {
- protected static final RepositorySourceListener NO_OP_LISTENER = new
RepositorySourceListener() {
-
- /**
- * {@inheritDoc}
- */
- public void notify( String sourceName,
- Object... events ) {
- // do nothing
- }
- };
-
private final JBossCacheSource source;
private final JBossCacheWorkspaces workspaces;
- private RepositorySourceListener listener = NO_OP_LISTENER;
JBossCacheConnection( JBossCacheSource source,
JBossCacheWorkspaces workspaces ) {
@@ -95,13 +82,6 @@
/**
* {@inheritDoc}
*/
- public void setListener( RepositorySourceListener listener ) {
- this.listener = listener != null ? listener : NO_OP_LISTENER;
- }
-
- /**
- * {@inheritDoc}
- */
public void close() {
// do nothing
}
@@ -123,11 +103,4 @@
processor.close();
}
}
-
- /**
- * @return listener
- */
- protected RepositorySourceListener getListener() {
- return this.listener;
- }
}
Modified:
trunk/extensions/dna-connector-jdbc-metadata/src/main/java/org/jboss/dna/connector/jdbc/JdbcConnection.java
===================================================================
---
trunk/extensions/dna-connector-jdbc-metadata/src/main/java/org/jboss/dna/connector/jdbc/JdbcConnection.java 2009-05-19
17:40:25 UTC (rev 912)
+++
trunk/extensions/dna-connector-jdbc-metadata/src/main/java/org/jboss/dna/connector/jdbc/JdbcConnection.java 2009-05-19
20:15:05 UTC (rev 913)
@@ -26,17 +26,14 @@
import java.sql.Connection;
import java.sql.SQLException;
import java.util.UUID;
-import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.TimeUnit;
-import javax.transaction.xa.XAResource;
import javax.sql.XAConnection;
-
+import javax.transaction.xa.XAResource;
import org.jboss.dna.common.util.Logger;
import org.jboss.dna.graph.ExecutionContext;
import org.jboss.dna.graph.cache.CachePolicy;
import org.jboss.dna.graph.connector.RepositoryConnection;
import org.jboss.dna.graph.connector.RepositorySourceException;
-import org.jboss.dna.graph.connector.RepositorySourceListener;
import org.jboss.dna.graph.request.Request;
import org.jboss.dna.graph.request.processor.RequestProcessor;
@@ -53,14 +50,13 @@
private final String name;
private final CachePolicy cachePolicy;
- private final CopyOnWriteArrayList<RepositorySourceListener> listeners = new
CopyOnWriteArrayList<RepositorySourceListener>();
private final Connection connection;
private final UUID rootNodeUuid;
/*package*/JdbcConnection( String sourceName,
- CachePolicy cachePolicy,
- Connection connection,
- UUID rootNodeUuid) {
+ CachePolicy cachePolicy,
+ Connection connection,
+ UUID rootNodeUuid ) {
assert sourceName != null;
assert connection != null;
assert rootNodeUuid != null;
@@ -82,17 +78,6 @@
/**
* {@inheritDoc}
*
- * @see
org.jboss.dna.graph.connector.RepositoryConnection#setListener(org.jboss.dna.graph.connector.RepositorySourceListener)
- */
- public void setListener( RepositorySourceListener listener ) {
- if (listener != null) {
- listeners.addIfAbsent(listener);
- }
- }
-
- /**
- * {@inheritDoc}
- *
* @see org.jboss.dna.graph.connector.RepositoryConnection#getDefaultCachePolicy()
*/
public CachePolicy getDefaultCachePolicy() {
@@ -110,13 +95,13 @@
try {
return ((XAConnection)connection).getXAResource();
} catch (SQLException e) {
- // handle an exception silently so far and write it to the log
+ // handle an exception silently so far and write it to the log
log.error(e, JdbcMetadataI18n.unableToGetXAResource, getSourceName());
return null;
}
}
// default
- return null;
+ return null;
}
/**
@@ -129,7 +114,7 @@
try {
// JDBC 4 has a method to check validity of a connection
(connection.isValid(timeout))
// but many drivers didn't get updated with latest spec
- return connection != null && ! connection.isClosed();
+ return connection != null && !connection.isClosed();
} catch (SQLException e) {
// debug
if (log.isDebugEnabled()) {
@@ -147,8 +132,8 @@
*/
public void execute( ExecutionContext context,
Request request ) throws RepositorySourceException {
- // create processor and delegate handling
- RequestProcessor proc = new JdbcRequestProcesor(getSourceName(),context,
connection, rootNodeUuid);
+ // create processor and delegate handling
+ RequestProcessor proc = new JdbcRequestProcesor(getSourceName(), context,
connection, rootNodeUuid);
try {
proc.process(request);
} finally {
@@ -164,7 +149,7 @@
public void close() {
try {
// release the JDBC connection resource
- if (connection != null && ! connection.isClosed()) {
+ if (connection != null && !connection.isClosed()) {
connection.close();
}
} catch (Exception e) {
Modified:
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/JpaConnection.java
===================================================================
---
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/JpaConnection.java 2009-05-19
17:40:25 UTC (rev 912)
+++
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/JpaConnection.java 2009-05-19
20:15:05 UTC (rev 913)
@@ -24,7 +24,6 @@
package org.jboss.dna.connector.store.jpa;
import java.util.UUID;
-import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.TimeUnit;
import javax.persistence.EntityManager;
import javax.transaction.xa.XAResource;
@@ -32,7 +31,6 @@
import org.jboss.dna.graph.cache.CachePolicy;
import org.jboss.dna.graph.connector.RepositoryConnection;
import org.jboss.dna.graph.connector.RepositorySourceException;
-import org.jboss.dna.graph.connector.RepositorySourceListener;
import org.jboss.dna.graph.request.Request;
import org.jboss.dna.graph.request.processor.RequestProcessor;
@@ -43,7 +41,6 @@
private final String name;
private final CachePolicy cachePolicy;
- private final CopyOnWriteArrayList<RepositorySourceListener> listeners = new
CopyOnWriteArrayList<RepositorySourceListener>();
private final EntityManager entityManager;
private final Model model;
private final UUID rootNodeUuid;
@@ -94,17 +91,6 @@
/**
* {@inheritDoc}
*
- * @see
org.jboss.dna.graph.connector.RepositoryConnection#setListener(org.jboss.dna.graph.connector.RepositorySourceListener)
- */
- public void setListener( RepositorySourceListener listener ) {
- if (listener != null) {
- listeners.addIfAbsent(listener);
- }
- }
-
- /**
- * {@inheritDoc}
- *
* @see org.jboss.dna.graph.connector.RepositoryConnection#getDefaultCachePolicy()
*/
public CachePolicy getDefaultCachePolicy() {
Modified:
trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNRepositoryConnection.java
===================================================================
---
trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNRepositoryConnection.java 2009-05-19
17:40:25 UTC (rev 912)
+++
trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNRepositoryConnection.java 2009-05-19
20:15:05 UTC (rev 913)
@@ -30,7 +30,6 @@
import org.jboss.dna.graph.cache.CachePolicy;
import org.jboss.dna.graph.connector.RepositoryConnection;
import org.jboss.dna.graph.connector.RepositorySourceException;
-import org.jboss.dna.graph.connector.RepositorySourceListener;
import org.jboss.dna.graph.property.PathFactory;
import org.jboss.dna.graph.property.PropertyFactory;
import org.jboss.dna.graph.request.Request;
@@ -48,22 +47,10 @@
*/
public class SVNRepositoryConnection implements RepositoryConnection {
- protected static final RepositorySourceListener NO_OP_LISTENER = new
RepositorySourceListener() {
-
- /**
- * {@inheritDoc}
- */
- public void notify( String sourceName,
- Object... events ) {
- // do nothing
- }
- };
-
private final String sourceName;
private final CachePolicy cachePolicy;
private final SVNRepository repository;
private final boolean updatesAllowed;
- private RepositorySourceListener listener = NO_OP_LISTENER;
public SVNRepositoryConnection( String sourceName,
CachePolicy cachePolicy,
@@ -142,13 +129,6 @@
/**
* {@inheritDoc}
- */
- public void setListener( RepositorySourceListener listener ) {
- this.listener = listener != null ? listener : NO_OP_LISTENER;
- }
-
- /**
- * {@inheritDoc}
*
* @see org.jboss.dna.graph.connector.RepositoryConnection#close()
*/
@@ -176,11 +156,4 @@
processor.close();
}
}
-
- /**
- * @return listener
- */
- protected RepositorySourceListener getListener() {
- return this.listener;
- }
}
Modified:
trunk/extensions/dna-connector-svn/src/test/java/org/jboss/dna/connector/svn/SVNRepositoryConnectionTest.java
===================================================================
---
trunk/extensions/dna-connector-svn/src/test/java/org/jboss/dna/connector/svn/SVNRepositoryConnectionTest.java 2009-05-19
17:40:25 UTC (rev 912)
+++
trunk/extensions/dna-connector-svn/src/test/java/org/jboss/dna/connector/svn/SVNRepositoryConnectionTest.java 2009-05-19
20:15:05 UTC (rev 913)
@@ -23,8 +23,6 @@
*/
package org.jboss.dna.connector.svn;
-import static org.mockito.Mockito.stub;
-import static org.mockito.Mockito.verify;
import static org.hamcrest.core.Is.is;
import static org.hamcrest.core.IsNull.notNullValue;
import static org.hamcrest.core.IsSame.sameInstance;
@@ -37,7 +35,6 @@
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.jboss.dna.common.text.UrlEncoder;
-import org.jboss.dna.common.util.FileUtil;
import org.jboss.dna.graph.DnaLexicon;
import org.jboss.dna.graph.ExecutionContext;
import org.jboss.dna.graph.Graph;
@@ -46,7 +43,6 @@
import org.jboss.dna.graph.Location;
import org.jboss.dna.graph.Node;
import org.jboss.dna.graph.cache.CachePolicy;
-import org.jboss.dna.graph.connector.RepositorySourceListener;
import org.jboss.dna.graph.property.Binary;
import org.jboss.dna.graph.property.DateTimeFactory;
import org.jboss.dna.graph.property.Name;
@@ -148,31 +144,11 @@
@Test
public void shouldGetTheSVNRepositoryRootFromTheSVNRepositoryWhenPinged() throws
Exception {
CachePolicy policy = mock(CachePolicy.class);
- repository = SVNConnectorTestUtil.createRepository(svnUrl, "sp",
"");
+ repository = SVNConnectorTestUtil.createRepository(svnUrl, "sp",
"");
connection = new SVNRepositoryConnection("the source name", policy,
false, repository);
assertThat(connection.ping(1, TimeUnit.SECONDS), is(true));
}
- @Test
- public void shouldHaveNoOpListenerWhenCreated() {
- assertThat(connection.getListener(),
is(sameInstance(SVNRepositoryConnection.NO_OP_LISTENER)));
- }
-
- @Test
- public void shouldUseNoOpListenerWhenSettingListenerToNull() {
- connection.setListener(null);
- assertThat(connection.getListener(),
is(sameInstance(SVNRepositoryConnection.NO_OP_LISTENER)));
- }
-
- @Test
- public void shouldSetListenerToNonNullValue() {
- RepositorySourceListener listener = mock(RepositorySourceListener.class);
- connection.setListener(listener);
- assertThat(connection.getListener(), is(sameInstance(listener)));
- connection.setListener(null);
- assertThat(connection.getListener(),
is(sameInstance(SVNRepositoryConnection.NO_OP_LISTENER)));
- }
-
@Test( expected = PathNotFoundException.class )
public void shouldFailToGetChildrenFromAWrongRequestedPath() {
List<Location> l =
graph.getChildren().of(pathFactory.create("wrongRequestedPath"));
@@ -253,16 +229,22 @@
@Test
public void shouldAddAndDeleteChildUnderRootNode() throws Exception {
-
graph.batch().create("/nodeC").with(propertyFactory().create(JcrLexicon.PRIMARY_TYPE,
JcrNtLexicon.FOLDER)).and(propertyFactory().create(JcrLexicon.CREATED,
-
dateFactory().create(new
Date()))).execute();
+ graph.batch()
+ .create("/nodeC")
+ .with(propertyFactory().create(JcrLexicon.PRIMARY_TYPE,
JcrNtLexicon.FOLDER))
+ .and(propertyFactory().create(JcrLexicon.CREATED, dateFactory().create(new
Date())))
+ .execute();
// Now look up the root node ...
Node root = graph.getNodeAt("/");
assertThat(root, is(notNullValue()));
assertThat(root.getChildren(), hasChild(child("nodeC")));
SVNNodeKind nodeCKind = repository.checkPath("nodeC", -1);
assertThat(nodeCKind, is(SVNNodeKind.DIR));
-
graph.batch().create("/nodeC/nodeC_1").with(propertyFactory().create(JcrLexicon.PRIMARY_TYPE,
JcrNtLexicon.FOLDER)).and(propertyFactory().create(JcrLexicon.CREATED,
-
dateFactory().create(new
Date()))).execute();
+ graph.batch()
+ .create("/nodeC/nodeC_1")
+ .with(propertyFactory().create(JcrLexicon.PRIMARY_TYPE,
JcrNtLexicon.FOLDER))
+ .and(propertyFactory().create(JcrLexicon.CREATED, dateFactory().create(new
Date())))
+ .execute();
// Now look up the root node ...
Node nodeC = graph.getNodeAt("/nodeC");
assertThat(nodeC, is(notNullValue()));
@@ -272,8 +254,12 @@
byte[] content1 = "My content".getBytes();
Property jcrDataProperty = propertyFactory().create(JcrLexicon.DATA,
binaryFactory().create(content1));
-
graph.batch().create("/nodeC/nodeC_1/file1.txt").with(propertyFactory().create(JcrLexicon.PRIMARY_TYPE,
JcrNtLexicon.FILE)).and(propertyFactory().create(JcrLexicon.CREATED,
-
new
Date())).and(jcrDataProperty).execute();
+ graph.batch()
+ .create("/nodeC/nodeC_1/file1.txt")
+ .with(propertyFactory().create(JcrLexicon.PRIMARY_TYPE, JcrNtLexicon.FILE))
+ .and(propertyFactory().create(JcrLexicon.CREATED, new Date()))
+ .and(jcrDataProperty)
+ .execute();
// Look up the file
Node nodeC1 = graph.getNodeAt("/nodeC/nodeC_1");