You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2015/02/18 16:34:54 UTC

svn commit: r1660656 - in /sling/trunk/tooling/ide: api-test/src/test/java/org/apache/sling/ide/serialization/ api/src/org/apache/sling/ide/transport/ eclipse-core/src/org/apache/sling/ide/eclipse/core/debug/impl/ eclipse-core/src/org/apache/sling/ide/...

Author: rombert
Date: Wed Feb 18 15:34:54 2015
New Revision: 1660656

URL: http://svn.apache.org/r1660656
Log:
SLING-4069 - Intermediate resources that do not match the filter are not
created when publishing

Introduce CommandExecutionFlag for Repository.newAddOrUpdateNodeCommand

Modified:
    sling/trunk/tooling/ide/api-test/src/test/java/org/apache/sling/ide/serialization/StubRepository.java
    sling/trunk/tooling/ide/api/src/org/apache/sling/ide/transport/Command.java
    sling/trunk/tooling/ide/api/src/org/apache/sling/ide/transport/CommandExecutionProperties.java
    sling/trunk/tooling/ide/api/src/org/apache/sling/ide/transport/Repository.java
    sling/trunk/tooling/ide/api/src/org/apache/sling/ide/transport/TracingCommand.java
    sling/trunk/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/debug/impl/TraceCommandExecutionEventsHandler.java
    sling/trunk/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/Activator.java
    sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/FailOnModificationEventsRule.java
    sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/SpyCommand.java
    sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/SpyRepository.java
    sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/console/SlingConsoleEventListener.java
    sling/trunk/tooling/ide/impl-resource/src/org/apache/sling/ide/impl/resource/transport/AbstractCommand.java
    sling/trunk/tooling/ide/impl-resource/src/org/apache/sling/ide/impl/resource/transport/RepositoryImpl.java
    sling/trunk/tooling/ide/impl-vlt/src/org/apache/sling/ide/impl/vlt/AddOrUpdateNodeCommand.java
    sling/trunk/tooling/ide/impl-vlt/src/org/apache/sling/ide/impl/vlt/JcrCommand.java
    sling/trunk/tooling/ide/impl-vlt/src/org/apache/sling/ide/impl/vlt/VltRepository.java

Modified: sling/trunk/tooling/ide/api-test/src/test/java/org/apache/sling/ide/serialization/StubRepository.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/api-test/src/test/java/org/apache/sling/ide/serialization/StubRepository.java?rev=1660656&r1=1660655&r2=1660656&view=diff
==============================================================================
--- sling/trunk/tooling/ide/api-test/src/test/java/org/apache/sling/ide/serialization/StubRepository.java (original)
+++ sling/trunk/tooling/ide/api-test/src/test/java/org/apache/sling/ide/serialization/StubRepository.java Wed Feb 18 15:34:54 2015
@@ -47,7 +47,8 @@ public class StubRepository implements R
     }
 
     @Override
-    public Command<Void> newAddOrUpdateNodeCommand(FileInfo fileInfo, ResourceProxy resourceInfo) {
+    public Command<Void> newAddOrUpdateNodeCommand(FileInfo fileInfo, ResourceProxy resourceInfo,
+            CommandExecutionFlag... flags) {
         return null;
     }
 

Modified: sling/trunk/tooling/ide/api/src/org/apache/sling/ide/transport/Command.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/api/src/org/apache/sling/ide/transport/Command.java?rev=1660656&r1=1660655&r2=1660656&view=diff
==============================================================================
--- sling/trunk/tooling/ide/api/src/org/apache/sling/ide/transport/Command.java (original)
+++ sling/trunk/tooling/ide/api/src/org/apache/sling/ide/transport/Command.java Wed Feb 18 15:34:54 2015
@@ -16,9 +16,15 @@
  */
 package org.apache.sling.ide.transport;
 
+import java.util.Set;
+
+import org.apache.sling.ide.transport.Repository.CommandExecutionFlag;
+
 public interface Command<T> {
 
 	Result<T> execute();
 
     String getPath();
+
+    Set<CommandExecutionFlag> getFlags();
 }

Modified: sling/trunk/tooling/ide/api/src/org/apache/sling/ide/transport/CommandExecutionProperties.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/api/src/org/apache/sling/ide/transport/CommandExecutionProperties.java?rev=1660656&r1=1660655&r2=1660656&view=diff
==============================================================================
--- sling/trunk/tooling/ide/api/src/org/apache/sling/ide/transport/CommandExecutionProperties.java (original)
+++ sling/trunk/tooling/ide/api/src/org/apache/sling/ide/transport/CommandExecutionProperties.java Wed Feb 18 15:34:54 2015
@@ -25,6 +25,7 @@ public final class CommandExecutionPrope
     public static final String TIMESTAMP_START = "timestamp.start";
     public static final String TIMESTAMP_END = "timestamp.end";
     public static final String ACTION_TYPE = "action.type";
+    public static final String ACTION_FLAGS = "action.flags";
     public static final String ACTION_TARGET = "action.target";
     public static final String RESULT_TEXT = "result.txt";
     public static final String RESULT_THROWABLE = "result.throwable";

Modified: sling/trunk/tooling/ide/api/src/org/apache/sling/ide/transport/Repository.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/api/src/org/apache/sling/ide/transport/Repository.java?rev=1660656&r1=1660655&r2=1660656&view=diff
==============================================================================
--- sling/trunk/tooling/ide/api/src/org/apache/sling/ide/transport/Repository.java (original)
+++ sling/trunk/tooling/ide/api/src/org/apache/sling/ide/transport/Repository.java Wed Feb 18 15:34:54 2015
@@ -74,10 +74,22 @@ public interface Repository {
 	public static String JCR_ROOT_VERSION= "jcr:rootVersion";
 	public static String JCR_VERSION_LABELS= "jcr:versionLabels";
 	public static String JCR_CHILD_VERSION_HISTORY= "jcr:childVersionHistory";
+
+    public enum CommandExecutionFlag {
+
+        /**
+         * Signal the command to only create the nodes when they are missing
+         * 
+         * <p>
+         * If nodes exist, they will not be touched
+         */
+        CREATE_ONLY_WHEN_MISSING;
+    }
  	
     RepositoryInfo getRepositoryInfo();
 
-    Command<Void> newAddOrUpdateNodeCommand(FileInfo fileInfo, ResourceProxy resourceProxy);
+    Command<Void> newAddOrUpdateNodeCommand(FileInfo fileInfo, ResourceProxy resourceProxy,
+            CommandExecutionFlag... flags);
 
     /**
      * Reorder the child nodes under the specified resource

Modified: sling/trunk/tooling/ide/api/src/org/apache/sling/ide/transport/TracingCommand.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/api/src/org/apache/sling/ide/transport/TracingCommand.java?rev=1660656&r1=1660655&r2=1660656&view=diff
==============================================================================
--- sling/trunk/tooling/ide/api/src/org/apache/sling/ide/transport/TracingCommand.java (original)
+++ sling/trunk/tooling/ide/api/src/org/apache/sling/ide/transport/TracingCommand.java Wed Feb 18 15:34:54 2015
@@ -18,7 +18,9 @@ package org.apache.sling.ide.transport;
 
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Set;
 
+import org.apache.sling.ide.transport.Repository.CommandExecutionFlag;
 import org.osgi.service.event.Event;
 import org.osgi.service.event.EventAdmin;
 
@@ -52,6 +54,16 @@ public class TracingCommand<T> implement
                 props.put(CommandExecutionProperties.RESULT_THROWABLE, e);
             }
             props.put(CommandExecutionProperties.ACTION_TYPE, command.getClass().getSimpleName());
+            Set<CommandExecutionFlag> flags = command.getFlags();
+            if (!flags.isEmpty()) {
+                StringBuilder flagsString = new StringBuilder();
+                for (CommandExecutionFlag flag : flags) {
+                    flagsString.append(flag).append(',');
+                }
+                flagsString.deleteCharAt(flagsString.length() - 1);
+                props.put(CommandExecutionProperties.ACTION_FLAGS, flagsString.toString());
+            }
+
             props.put(CommandExecutionProperties.ACTION_TARGET, command.getPath());
             props.put(CommandExecutionProperties.TIMESTAMP_START, start);
             props.put(CommandExecutionProperties.TIMESTAMP_END, end);
@@ -66,4 +78,9 @@ public class TracingCommand<T> implement
         return command.getPath();
     }
 
+    @Override
+    public Set<CommandExecutionFlag> getFlags() {
+        return command.getFlags();
+    }
+
 }
\ No newline at end of file

Modified: sling/trunk/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/debug/impl/TraceCommandExecutionEventsHandler.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/debug/impl/TraceCommandExecutionEventsHandler.java?rev=1660656&r1=1660655&r2=1660656&view=diff
==============================================================================
--- sling/trunk/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/debug/impl/TraceCommandExecutionEventsHandler.java (original)
+++ sling/trunk/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/debug/impl/TraceCommandExecutionEventsHandler.java Wed Feb 18 15:34:54 2015
@@ -39,6 +39,7 @@ public class TraceCommandExecutionEvents
         Long start = (Long) event.getProperty(CommandExecutionProperties.TIMESTAMP_START);
         Long end = (Long) event.getProperty(CommandExecutionProperties.TIMESTAMP_END);
         String type = (String) event.getProperty(CommandExecutionProperties.ACTION_TYPE);
+        String flags = (String) event.getProperty(CommandExecutionProperties.ACTION_FLAGS);
         String target = (String) event.getProperty(CommandExecutionProperties.ACTION_TARGET);
         String result = (String) event.getProperty(CommandExecutionProperties.RESULT_TEXT);
         Throwable t = (Throwable) event.getProperty(CommandExecutionProperties.RESULT_THROWABLE);
@@ -46,8 +47,11 @@ public class TraceCommandExecutionEvents
         // TODO format copied from SlingConsoleEventListener
         StringBuilder message = new StringBuilder();
         DateFormat format = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);
-        message.append("[").append(format.format(new Date(start))).append("] ").append(type).append(" -> ")
-                .append(target);
+        message.append("[").append(format.format(new Date(start))).append("] ").append(type);
+        if (flags != null && flags.length() > 0) {
+            message.append(" (").append(flags).append(")");
+        }
+        message.append(" -> ").append(target);
         message.append(" : ").append(result).append(" (").append(end - start).append(" ms)");
 
         logger.trace(message.toString(), t);

Modified: sling/trunk/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/Activator.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/Activator.java?rev=1660656&r1=1660655&r2=1660656&view=diff
==============================================================================
--- sling/trunk/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/Activator.java (original)
+++ sling/trunk/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/Activator.java Wed Feb 18 15:34:54 2015
@@ -151,6 +151,10 @@ public class Activator extends Plugin {
         return (Logger) ServiceUtil.getNotNull(tracer);
     }
     
+    /**
+     * @deprecated This should not be used directly to communicate with the client . There is no direct replacement
+     */
+    @Deprecated
     public void issueConsoleLog(String actionType, String path, String message) {
         Map<String, Object> props = new HashMap<String, Object>();
         props.put(CommandExecutionProperties.RESULT_TEXT, message);

Modified: sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/FailOnModificationEventsRule.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/FailOnModificationEventsRule.java?rev=1660656&r1=1660655&r2=1660656&view=diff
==============================================================================
--- sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/FailOnModificationEventsRule.java (original)
+++ sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/FailOnModificationEventsRule.java Wed Feb 18 15:34:54 2015
@@ -88,8 +88,14 @@ public class FailOnModificationEventsRul
         StringBuilder desc = new StringBuilder();
         desc.append("Unexpected events captured during import : ");
         for (Event event : unexpectedEvents) {
+
+            String flags = (String) event.getProperty(CommandExecutionProperties.ACTION_FLAGS);
+
             desc.append('\n');
             desc.append(event.getProperty(CommandExecutionProperties.ACTION_TYPE));
+            if (flags != null && flags.length() > 0) {
+                desc.append(" (").append(flags).append(")");
+            }
             desc.append(" -> ");
             desc.append(event.getProperty(CommandExecutionProperties.ACTION_TARGET));
             desc.append(" : ");

Modified: sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/SpyCommand.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/SpyCommand.java?rev=1660656&r1=1660655&r2=1660656&view=diff
==============================================================================
--- sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/SpyCommand.java (original)
+++ sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/SpyCommand.java Wed Feb 18 15:34:54 2015
@@ -16,10 +16,15 @@
  */
 package org.apache.sling.ide.test.impl.helpers;
 
+import java.util.Arrays;
+import java.util.EnumSet;
+import java.util.Set;
+
 import org.apache.sling.ide.transport.Command;
 import org.apache.sling.ide.transport.FileInfo;
 import org.apache.sling.ide.transport.ResourceProxy;
 import org.apache.sling.ide.transport.Result;
+import org.apache.sling.ide.transport.Repository.CommandExecutionFlag;
 
 /**
  * The <tt>SpyCommand</tt> records the arguments passed to it and can be used to verify that the invocation is made with
@@ -37,12 +42,16 @@ public class SpyCommand<T> implements Co
     private final FileInfo fileInfo;
     private final String path;
     private final SpyCommand.Kind kind;
+    private final EnumSet<CommandExecutionFlag> flags;
 
-    public SpyCommand(ResourceProxy resourceProxy, FileInfo fileInfo, String path, SpyCommand.Kind kind) {
+    public SpyCommand(ResourceProxy resourceProxy, FileInfo fileInfo, String path, SpyCommand.Kind kind,
+            CommandExecutionFlag... flags) {
         this.resourceProxy = resourceProxy;
         this.fileInfo = fileInfo;
         this.path = path;
         this.kind = kind;
+        this.flags = EnumSet.noneOf(CommandExecutionFlag.class);
+        this.flags.addAll(Arrays.asList(flags));
     }
 
     @Override
@@ -55,6 +64,11 @@ public class SpyCommand<T> implements Co
         return path;
     }
 
+    @Override
+    public Set<CommandExecutionFlag> getFlags() {
+        return flags;
+    }
+
     public FileInfo getFileInfo() {
         return fileInfo;
     }

Modified: sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/SpyRepository.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/SpyRepository.java?rev=1660656&r1=1660655&r2=1660656&view=diff
==============================================================================
--- sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/SpyRepository.java (original)
+++ sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/SpyRepository.java Wed Feb 18 15:34:54 2015
@@ -37,9 +37,10 @@ public class SpyRepository implements Re
     }
 
     @Override
-    public Command<Void> newAddOrUpdateNodeCommand(FileInfo fileInfo, ResourceProxy resourceProxy) {
+    public Command<Void> newAddOrUpdateNodeCommand(FileInfo fileInfo, ResourceProxy resourceProxy,
+            CommandExecutionFlag... flags) {
 
-        return new SpyCommand<Void>(resourceProxy, fileInfo, null, SpyCommand.Kind.ADD_OR_UPDATE);
+        return new SpyCommand<Void>(resourceProxy, fileInfo, null, SpyCommand.Kind.ADD_OR_UPDATE, flags);
     }
 
     @Override

Modified: sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/console/SlingConsoleEventListener.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/console/SlingConsoleEventListener.java?rev=1660656&r1=1660655&r2=1660656&view=diff
==============================================================================
--- sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/console/SlingConsoleEventListener.java (original)
+++ sling/trunk/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/console/SlingConsoleEventListener.java Wed Feb 18 15:34:54 2015
@@ -128,14 +128,18 @@ public class SlingConsoleEventListener i
             Long start = (Long) event.getProperty(CommandExecutionProperties.TIMESTAMP_START);
             Long end = (Long) event.getProperty(CommandExecutionProperties.TIMESTAMP_END);
             String type = (String) event.getProperty(CommandExecutionProperties.ACTION_TYPE);
+            String flags = (String) event.getProperty(CommandExecutionProperties.ACTION_FLAGS);
             String target = (String) event.getProperty(CommandExecutionProperties.ACTION_TARGET);
             String result = (String) event.getProperty(CommandExecutionProperties.RESULT_TEXT);
             Throwable t = (Throwable) event.getProperty(CommandExecutionProperties.RESULT_THROWABLE);
 
             StringBuilder message = new StringBuilder();
             DateFormat format = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);
-            message.append("[").append(format.format(new Date(start))).append("] ").append(type).append(" -> ")
-                    .append(target);
+            message.append("[").append(format.format(new Date(start))).append("] ").append(type);
+            if (flags != null && flags.length() > 0) {
+                message.append(" (").append(flags).append(")");
+            }
+            message.append(" -> ").append(target);
             message.append(" : ").append(result).append(" (").append(end - start).append(" ms)").append('\n');
 
             messageStream.write(message.toString());

Modified: sling/trunk/tooling/ide/impl-resource/src/org/apache/sling/ide/impl/resource/transport/AbstractCommand.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/impl-resource/src/org/apache/sling/ide/impl/resource/transport/AbstractCommand.java?rev=1660656&r1=1660655&r2=1660656&view=diff
==============================================================================
--- sling/trunk/tooling/ide/impl-resource/src/org/apache/sling/ide/impl/resource/transport/AbstractCommand.java (original)
+++ sling/trunk/tooling/ide/impl-resource/src/org/apache/sling/ide/impl/resource/transport/AbstractCommand.java Wed Feb 18 15:34:54 2015
@@ -16,11 +16,15 @@
  */
 package org.apache.sling.ide.impl.resource.transport;
 
+import java.util.Collections;
+import java.util.Set;
+
 import org.apache.commons.httpclient.HttpClient;
 import org.apache.sling.ide.transport.Command;
 import org.apache.sling.ide.transport.RepositoryException;
 import org.apache.sling.ide.transport.RepositoryInfo;
 import org.apache.sling.ide.transport.Result;
+import org.apache.sling.ide.transport.Repository.CommandExecutionFlag;
 import org.apache.sling.ide.util.PathUtil;
 
 public abstract class AbstractCommand<T> implements Command<T> {
@@ -63,4 +67,10 @@ public abstract class AbstractCommand<T>
         return responseStatus == 200 /* OK */|| responseStatus == 201 /* CREATED */;
     }
 
+    @Override
+    public Set<CommandExecutionFlag> getFlags() {
+        // TODO - this is not supported
+        return Collections.emptySet();
+    }
+
 }

Modified: sling/trunk/tooling/ide/impl-resource/src/org/apache/sling/ide/impl/resource/transport/RepositoryImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/impl-resource/src/org/apache/sling/ide/impl/resource/transport/RepositoryImpl.java?rev=1660656&r1=1660655&r2=1660656&view=diff
==============================================================================
--- sling/trunk/tooling/ide/impl-resource/src/org/apache/sling/ide/impl/resource/transport/RepositoryImpl.java (original)
+++ sling/trunk/tooling/ide/impl-resource/src/org/apache/sling/ide/impl/resource/transport/RepositoryImpl.java Wed Feb 18 15:34:54 2015
@@ -64,7 +64,11 @@ public class RepositoryImpl implements R
 	}
 	
 	@Override
-    public Command<Void> newAddOrUpdateNodeCommand(final FileInfo fileInfo, ResourceProxy resource) {
+    public Command<Void> newAddOrUpdateNodeCommand(final FileInfo fileInfo, ResourceProxy resource,
+            CommandExecutionFlag... flags) {
+        if (flags.length != 0) {
+            throw new UnsupportedOperationException("This implementation does not support any flags");
+        }
 		
         return wrap(new UpdateContentCommand(repositoryInfo, httpClient, fileInfo.getRelativeLocation(),
                 resource.getProperties(), fileInfo));

Modified: sling/trunk/tooling/ide/impl-vlt/src/org/apache/sling/ide/impl/vlt/AddOrUpdateNodeCommand.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/impl-vlt/src/org/apache/sling/ide/impl/vlt/AddOrUpdateNodeCommand.java?rev=1660656&r1=1660655&r2=1660656&view=diff
==============================================================================
--- sling/trunk/tooling/ide/impl-vlt/src/org/apache/sling/ide/impl/vlt/AddOrUpdateNodeCommand.java (original)
+++ sling/trunk/tooling/ide/impl-vlt/src/org/apache/sling/ide/impl/vlt/AddOrUpdateNodeCommand.java Wed Feb 18 15:34:54 2015
@@ -57,6 +57,7 @@ import org.apache.jackrabbit.vault.util.
 import org.apache.jackrabbit.vault.util.Text;
 import org.apache.sling.ide.log.Logger;
 import org.apache.sling.ide.transport.FileInfo;
+import org.apache.sling.ide.transport.Repository.CommandExecutionFlag;
 import org.apache.sling.ide.transport.ResourceProxy;
 import org.apache.sling.ide.util.PathUtil;
 
@@ -66,9 +67,9 @@ public class AddOrUpdateNodeCommand exte
     private FileInfo fileInfo;
 
     public AddOrUpdateNodeCommand(Repository jcrRepo, Credentials credentials, FileInfo fileInfo,
-            ResourceProxy resource, Logger logger) {
+            ResourceProxy resource, Logger logger, CommandExecutionFlag... flags) {
 
-        super(jcrRepo, credentials, resource.getPath(), logger);
+        super(jcrRepo, credentials, resource.getPath(), logger, flags);
 
         this.fileInfo = fileInfo;
         this.resource = resource;

Modified: sling/trunk/tooling/ide/impl-vlt/src/org/apache/sling/ide/impl/vlt/JcrCommand.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/impl-vlt/src/org/apache/sling/ide/impl/vlt/JcrCommand.java?rev=1660656&r1=1660655&r2=1660656&view=diff
==============================================================================
--- sling/trunk/tooling/ide/impl-vlt/src/org/apache/sling/ide/impl/vlt/JcrCommand.java (original)
+++ sling/trunk/tooling/ide/impl-vlt/src/org/apache/sling/ide/impl/vlt/JcrCommand.java Wed Feb 18 15:34:54 2015
@@ -17,6 +17,10 @@
 package org.apache.sling.ide.impl.vlt;
 
 import java.io.IOException;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.EnumSet;
+import java.util.Set;
 
 import javax.jcr.Credentials;
 import javax.jcr.LoginException;
@@ -29,6 +33,7 @@ import javax.jcr.Session;
 
 import org.apache.sling.ide.log.Logger;
 import org.apache.sling.ide.transport.Command;
+import org.apache.sling.ide.transport.Repository.CommandExecutionFlag;
 import org.apache.sling.ide.transport.ResourceProxy;
 import org.apache.sling.ide.transport.Result;
 
@@ -38,13 +43,17 @@ public abstract class JcrCommand<T> impl
     private final Repository repository;
     private final String path;
     private final Logger logger;
+    private final EnumSet<CommandExecutionFlag> flags;
 
-    public JcrCommand(Repository repository, Credentials credentials, String path, Logger logger) {
+    public JcrCommand(Repository repository, Credentials credentials, String path, Logger logger,
+            CommandExecutionFlag... flags) {
 
         this.repository = repository;
         this.credentials = credentials;
         this.path = path;
         this.logger = logger;
+        this.flags = EnumSet.noneOf(CommandExecutionFlag.class);
+        this.flags.addAll(Arrays.asList(flags));
     }
 
     @Override
@@ -81,6 +90,10 @@ public abstract class JcrCommand<T> impl
         return logger;
     }
 
+    public Set<CommandExecutionFlag> getFlags() {
+        return Collections.unmodifiableSet(flags);
+    }
+
     protected ResourceProxy nodeToResource(Node node) throws RepositoryException {
     
         ResourceProxy resource = new ResourceProxy(node.getPath());

Modified: sling/trunk/tooling/ide/impl-vlt/src/org/apache/sling/ide/impl/vlt/VltRepository.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/impl-vlt/src/org/apache/sling/ide/impl/vlt/VltRepository.java?rev=1660656&r1=1660655&r2=1660656&view=diff
==============================================================================
--- sling/trunk/tooling/ide/impl-vlt/src/org/apache/sling/ide/impl/vlt/VltRepository.java (original)
+++ sling/trunk/tooling/ide/impl-vlt/src/org/apache/sling/ide/impl/vlt/VltRepository.java Wed Feb 18 15:34:54 2015
@@ -85,8 +85,9 @@ public class VltRepository implements Re
     }
 
     @Override
-    public Command<Void> newAddOrUpdateNodeCommand(FileInfo fileInfo, ResourceProxy resource) {
-        return TracingCommand.wrap(new AddOrUpdateNodeCommand(jcrRepo, credentials, fileInfo, resource, logger),
+    public Command<Void> newAddOrUpdateNodeCommand(FileInfo fileInfo, ResourceProxy resource,
+            CommandExecutionFlag... flags) {
+        return TracingCommand.wrap(new AddOrUpdateNodeCommand(jcrRepo, credentials, fileInfo, resource, logger, flags),
                 eventAdmin);
     }