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));
+                            }
                         }
                     }
                 }