Merge pull request #1478 from maginatics/clear-container-parameterize-max-errors-1.5.x

Parameterize max errors for clear container
diff --git a/blobstore/src/main/java/org/jclouds/blobstore/strategy/internal/DeleteAllKeysInList.java b/blobstore/src/main/java/org/jclouds/blobstore/strategy/internal/DeleteAllKeysInList.java
index a472b5b..2e7b5af 100644
--- a/blobstore/src/main/java/org/jclouds/blobstore/strategy/internal/DeleteAllKeysInList.java
+++ b/blobstore/src/main/java/org/jclouds/blobstore/strategy/internal/DeleteAllKeysInList.java
@@ -64,10 +64,12 @@
    private final ExecutorService userExecutor;
 
    protected final AsyncBlobStore connection;
+
    /** Maximum duration in milliseconds of a request. */
-   @Inject(optional = true)
-   @Named(Constants.PROPERTY_REQUEST_TIMEOUT)
-   protected Long maxTime = Long.MAX_VALUE;
+   protected long maxTime = Long.MAX_VALUE;
+
+   /** Maximum times to retry an operation. */
+   protected int maxErrors = 3;
 
    @Inject
    DeleteAllKeysInList(@Named(Constants.PROPERTY_USER_THREADS) ExecutorService userExecutor,
@@ -79,6 +81,16 @@
       this.retryHandler = retryHandler;
    }
 
+   @Inject(optional = true)
+   void setMaxTime(@Named(Constants.PROPERTY_REQUEST_TIMEOUT) long maxTime) {
+      this.maxTime = maxTime;
+   }
+
+   @Inject(optional = true)
+   void setMaxErrors(@Named(Constants.PROPERTY_MAX_RETRIES) int maxErrors) {
+      this.maxErrors = maxErrors;
+   }
+
    public void execute(String containerName) {
       execute(containerName, recursive());
    }
@@ -92,7 +104,6 @@
          message += " recursively";
       logger.debug(message);
       Map<StorageMetadata, Exception> exceptions = Maps.newHashMap();
-      int maxErrors = 3; // TODO parameterize
       for (int numErrors = 0; numErrors < maxErrors; ) {
          // fetch partial directory listing
          PageSet<? extends StorageMetadata> listing;