--
You received this message because you are subscribed to the Google Groups "jclouds" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jclouds+u...@googlegroups.com.
To post to this group, send email to jcl...@googlegroups.com.
Visit this group at http://groups.google.com/group/jclouds?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
import org.jclouds.ContextBuilder;import org.jclouds.blobstore.BlobStore;import org.jclouds.blobstore.BlobStoreContext;import org.jclouds.openstack.swift.CommonSwiftAsyncClient;import org.jclouds.openstack.swift.CommonSwiftClient;import org.jclouds.rest.RestContext;import org.jclouds.blobstore.domain.Blob;import org.jclouds.blobstore.domain.BlobBuilder;import org.jclouds.blobstore.domain.BlobMetadata;import java.lang.System;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Future;import java.util.concurrent.TimeUnit;import java.io.*;import java.util.*;public class TestFileUpload{public static String CONTAINER_NAME = "TEST_CONTAINER";public static String CLOUD_FILENAME = "TEST_";private static BlobStoreContext context = null;private static BlobStore storage = null;private static RestContext<CommonSwiftClient, CommonSwiftAsyncClient> swift = null;public static void main(String[] args) throws Exception{String userName = args[0];String apiKey = args[1];context = ContextBuilder.newBuilder("cloudfiles-us").credentials(userName, apiKey).buildView(BlobStoreContext.class);try {storage = context.getBlobStore();swift = context.unwrap();ExecutorService executor = Executors.newFixedThreadPool(5);for ( int i = 0; i < 200; i++ ) {final int myI = i;final TestFileUpload myUpload = new TestFileUpload();Future<?> future = executor.submit(new Runnable(){@Overridepublic void run(){try {myUpload.storeIt(myI);}catch (Exception e) {System.out.println("ERROR :" + myI + " msg:" + e.getMessage());}}});}executor.shutdown();while ( !executor.awaitTermination(5, TimeUnit.SECONDS)) {System.out.println("WAITING SHUTDOWN");}}finally {context.close();}}private void storeIt( int i ){// make sure the container is therestorage.createContainerInLocation(null, CONTAINER_NAME);File file = new File("test.txt");String cloudFileName = CLOUD_FILENAME + i;Blob blob = storage.blobBuilder(cloudFileName).payload(file).build();long timeBefore = System.currentTimeMillis();storage.putBlob(CONTAINER_NAME, blob);long timeAfter = System.currentTimeMillis();System.out.println("SYNCED " + i + " - TIME " + ((timeAfter - timeBefore)/1000) + " seconds" );}}
I don't know if it is appropriate in this use case, but the jclouds user executor (which is the one used to perform the operations against the target apis) is configured via properties when creating the context, and it can be accessed from context.getUtils()