You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by to...@apache.org on 2014/10/08 15:41:29 UTC
svn commit: r1630102 - in /sling/trunk/contrib/extensions/replication/core:
./ src/main/java/org/apache/sling/replication/communication/
src/main/java/org/apache/sling/replication/serialization/impl/vlt/
src/main/java/org/apache/sling/replication/trigg...
Author: tommaso
Date: Wed Oct 8 13:41:29 2014
New Revision: 1630102
URL: http://svn.apache.org/r1630102
Log:
SLING-4008 - added JE#isExternal check to avoid warnings, minor fixes
Modified:
sling/trunk/contrib/extensions/replication/core/pom.xml
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/communication/ReplicationRequest.java
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/serialization/impl/vlt/FileVaultReplicationPackageBuilder.java
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/trigger/impl/JcrEventReplicationTrigger.java
Modified: sling/trunk/contrib/extensions/replication/core/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/pom.xml?rev=1630102&r1=1630101&r2=1630102&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/pom.xml (original)
+++ sling/trunk/contrib/extensions/replication/core/pom.xml Wed Oct 8 13:41:29 2014
@@ -210,6 +210,11 @@
<version>2.6.2</version>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.jackrabbit</groupId>
+ <artifactId>jackrabbit-api</artifactId>
+ <version>2.6.2</version>
+ </dependency>
<!-- COMMONS -->
<dependency>
<groupId>commons-io</groupId>
@@ -217,6 +222,7 @@
<version>2.4</version>
<scope>provided</scope>
</dependency>
+
</dependencies>
<reporting>
<plugins>
Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/communication/ReplicationRequest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/communication/ReplicationRequest.java?rev=1630102&r1=1630101&r2=1630102&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/communication/ReplicationRequest.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/communication/ReplicationRequest.java Wed Oct 8 13:41:29 2014
@@ -18,6 +18,8 @@
*/
package org.apache.sling.replication.communication;
+import java.util.Arrays;
+
/**
* A replication request
*/
@@ -61,4 +63,13 @@ public class ReplicationRequest {
public String[] getPaths() {
return paths;
}
+
+ @Override
+ public String toString() {
+ return "ReplicationRequest{" +
+ "time=" + time +
+ ", action=" + action +
+ ", paths=" + Arrays.toString(paths) +
+ '}';
+ }
}
Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/serialization/impl/vlt/FileVaultReplicationPackageBuilder.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/serialization/impl/vlt/FileVaultReplicationPackageBuilder.java?rev=1630102&r1=1630101&r2=1630102&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/serialization/impl/vlt/FileVaultReplicationPackageBuilder.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/serialization/impl/vlt/FileVaultReplicationPackageBuilder.java Wed Oct 8 13:41:29 2014
@@ -42,6 +42,7 @@ import org.apache.sling.replication.seri
import org.apache.sling.replication.serialization.ReplicationPackageBuildingException;
import org.apache.sling.replication.serialization.ReplicationPackageReadingException;
import org.apache.sling.replication.serialization.impl.AbstractReplicationPackageBuilder;
+import org.apache.sling.replication.trigger.impl.JcrEventReplicationTrigger;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -54,8 +55,6 @@ import org.slf4j.LoggerFactory;
public class FileVaultReplicationPackageBuilder extends AbstractReplicationPackageBuilder implements
ReplicationPackageBuilder {
- public static final String USER_DATA = "vlt.pb.data";
-
private final Logger log = LoggerFactory.getLogger(getClass());
private SlingRepository repository;
@@ -117,7 +116,7 @@ public class FileVaultReplicationPackage
@Override
protected Session getSession() throws RepositoryException {
Session session = repository.loginService(subServiceName, null);
- session.getWorkspace().getObservationManager().setUserData(USER_DATA);
+ session.getWorkspace().getObservationManager().setUserData(JcrEventReplicationTrigger.DO_NOT_REPLICATE);
return session;
}
Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/trigger/impl/JcrEventReplicationTrigger.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/trigger/impl/JcrEventReplicationTrigger.java?rev=1630102&r1=1630101&r2=1630102&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/trigger/impl/JcrEventReplicationTrigger.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/trigger/impl/JcrEventReplicationTrigger.java Wed Oct 8 13:41:29 2014
@@ -25,11 +25,11 @@ import javax.jcr.observation.EventIterat
import javax.jcr.observation.EventListener;
import java.util.Map;
+import org.apache.jackrabbit.api.observation.JackrabbitEvent;
import org.apache.sling.commons.osgi.PropertiesUtil;
import org.apache.sling.jcr.api.SlingRepository;
import org.apache.sling.replication.communication.ReplicationActionType;
import org.apache.sling.replication.communication.ReplicationRequest;
-import org.apache.sling.replication.serialization.impl.vlt.FileVaultReplicationPackageBuilder;
import org.apache.sling.replication.trigger.ReplicationTrigger;
import org.apache.sling.replication.trigger.ReplicationTriggerRequestHandler;
import org.slf4j.Logger;
@@ -38,10 +38,12 @@ import org.slf4j.LoggerFactory;
/**
* A JCR observation based {@link org.apache.sling.replication.trigger.ReplicationTrigger}.
* It filters events having {@link javax.jcr.observation.ObservationManager#setUserData(String)} set to
- * {@link org.apache.sling.replication.serialization.impl.vlt.FileVaultReplicationPackageBuilder#USER_DATA}
+ * {@link #DO_NOT_REPLICATE}
*/
public class JcrEventReplicationTrigger implements ReplicationTrigger {
+ public static final String DO_NOT_REPLICATE = "do.not.replicate";
+
public static final String TYPE = "jcrEvent";
private final Logger log = LoggerFactory.getLogger(this.getClass());
@@ -89,17 +91,18 @@ public class JcrEventReplicationTrigger
try {
while (eventIterator.hasNext()) {
Event event = eventIterator.nextEvent();
- // TODO : check for JackrabbitEvent#isExternal
- String userData = event.getUserData();
- log.info("event userData is {}", userData);
- if (!FileVaultReplicationPackageBuilder.USER_DATA.equals(userData)) {
- log.info("triggering replication from jcr event {}", event);
-
- Object pathProperty = event.getPath();
- if (pathProperty != null) {
- String replicatingPath = String.valueOf(pathProperty);
- requestHandler.handle(new ReplicationRequest(System.currentTimeMillis(), Event.NODE_MOVED ==
- event.getType() ? ReplicationActionType.DELETE : ReplicationActionType.ADD, replicatingPath));
+ if (event instanceof JackrabbitEvent && !((JackrabbitEvent)event).isExternal()) {
+ String userData = event.getUserData();
+ log.debug("event userData is {}", userData);
+ if (!DO_NOT_REPLICATE.equals(userData)) {
+ log.info("triggering replication from jcr event {}", event);
+
+ Object pathProperty = event.getPath();
+ if (pathProperty != null) {
+ String replicatingPath = String.valueOf(pathProperty);
+ requestHandler.handle(new ReplicationRequest(System.currentTimeMillis(), Event.NODE_MOVED ==
+ event.getType() ? ReplicationActionType.DELETE : ReplicationActionType.ADD, replicatingPath));
+ }
}
}
}