@AfterClass
 public static void tearDownClass() throws Exception {
   if (ctx != null) {
     ctx.getBlobStore().deleteContainer(DEFAULT_CONTAINER);
     ctx.close();
   }
 }
 @Override
 public BlobStoreContext call() throws Exception {
   BlobStoreContext context =
       new BlobStoreContextFactory()
           .createContext("filesystem", "", "", ImmutableSet.<Module>of(), overrides);
   context.getBlobStore().createContainerInLocation(null, CREDENTIALS_STORE);
   return context;
 }
 public ListContainers(String username, String apiKey) {
   BlobStoreContext context =
       ContextBuilder.newBuilder(PROVIDER)
           .credentials(username, apiKey)
           .buildView(BlobStoreContext.class);
   blobStore = context.getBlobStore();
   swift = context.unwrap();
 }
 private BlobStore getBlobStore() {
   BlobStoreContext context =
       ContextBuilder.newBuilder("transient")
           .name("test-transient")
           .credentials("user", "pass")
           .build(BlobStoreContext.class);
   return context.getBlobStore();
 }
 @BeforeMethod
 protected void setUp() throws Exception {
   // create context for filesystem container
   Properties prop = new Properties();
   prop.setProperty(FilesystemConstants.PROPERTY_BASEDIR, TestUtils.TARGET_BASE_DIR);
   context = ContextBuilder.newBuilder(PROVIDER).overrides(prop).build(BlobStoreContext.class);
   // create a container in the default location
   blobStore = context.getBlobStore();
   new File(TestUtils.TARGET_BASE_DIR).mkdir();
   TestUtils.createResources();
 }
public class JcloudsBlobStoreProducerTest extends CamelTestSupport {

  private static final String TEST_CONTAINER = "testContainer";
  private static final String TEST_BLOB_IN_DIR = "/dir/testBlob";
  private static final String MESSAGE = "<test>This is a test</test>";

  BlobStoreContext blobStoreContext =
      ContextBuilder.newBuilder("transient")
          .credentials("identity", "credential")
          .build(BlobStoreContext.class);
  BlobStore blobStore = blobStoreContext.getBlobStore();

  @Test
  public void testBlobStorePut() throws InterruptedException {
    MockEndpoint mockEndpoint = resolveMandatoryEndpoint("mock:results", MockEndpoint.class);
    mockEndpoint.expectedMessageCount(1);
    template.sendBody("direct:put", "Some message");
    mockEndpoint.assertIsSatisfied();
  }

  @Test
  public void testBlobStorePutAndGet() throws InterruptedException {
    String message = "Some message";
    template.sendBody("direct:put-and-get", message);
    Object result =
        template.requestBodyAndHeader(
            "direct:put-and-get",
            null,
            JcloudsConstants.OPERATION,
            JcloudsConstants.GET,
            String.class);
    assertEquals(message, result);
  }

  @Test
  public void testBlobStorePutWithStreamAndGet() throws InterruptedException, TransformerException {
    ByteArrayInputStream inputStream = new ByteArrayInputStream(MESSAGE.getBytes());
    Exchange exchange = new DefaultExchange(context);
    StreamCache streamCache =
        StreamCacheConverter.convertToStreamCache(
            new SAXSource(new InputSource(inputStream)), exchange);
    template.sendBody("direct:put-and-get", streamCache);
    Object result =
        template.requestBodyAndHeader(
            "direct:put-and-get",
            null,
            JcloudsConstants.OPERATION,
            JcloudsConstants.GET,
            String.class);
    assertEquals(MESSAGE, result);
  }

  @Override
  protected RouteBuilder createRouteBuilder() throws Exception {
    blobStore.createContainerInLocation(null, TEST_CONTAINER);
    ((JcloudsComponent) context.getComponent("jclouds"))
        .setBlobStores(Lists.newArrayList(blobStore));

    return new RouteBuilder() {
      public void configure() {
        from("direct:put")
            .setHeader(JcloudsConstants.BLOB_NAME, constant(TEST_BLOB_IN_DIR))
            .setHeader(JcloudsConstants.CONTAINER_NAME, constant(TEST_CONTAINER))
            .to("jclouds:blobstore:transient")
            .to("mock:results");

        from("direct:put-and-get")
            .setHeader(JcloudsConstants.BLOB_NAME, constant(TEST_BLOB_IN_DIR))
            .setHeader(JcloudsConstants.CONTAINER_NAME, constant(TEST_CONTAINER))
            .to("jclouds:blobstore:transient");
      }
    };
  }
}
 @BeforeClass
 public static void setUpClass() {
   ctx = ContextBuilder.newBuilder("transient").buildView(BlobStoreContext.class);
   System.setProperty("com.netflix.config.blobstore.containerName", DEFAULT_CONTAINER);
   ctx.getBlobStore().createContainerInLocation(null, DEFAULT_CONTAINER);
 }