@Test(expectedExceptions = NullPointerException.class) public void testIfETagDoesntMatchNPE() { ifETagDoesntMatch(null); }
@Test(expectedExceptions = NullPointerException.class) public void testIfETagMatchesNPE() { ifETagMatches(null); }
try { SwiftObject object = api.getObjectApi(regionId, containerName) .get(objectName, org.jclouds.http.options.GetOptions.Builder.range(begin, end));
GetOptions.Builder.ifETagDoesntMatch(newEtag)); } catch (Exception e) { HttpResponseException httpEx = Throwables2.getFirstThrowableOfType(e, HttpResponseException.class); GetOptions.Builder.ifETagMatches(newEtag)); assertEquals(getBlob.getProperties().getETag(), newEtag); } catch (HttpResponseException e) { getBlob = getApi().getBlob(privateContainer, object.getProperties().getName(), GetOptions.Builder.startAt(8)); assertEquals(Strings2.toStringAndClose(getBlob.getPayload().openStream()), data.substring(8));
GetOptions.Builder.ifETagDoesntMatch(newEtag)); } catch (Exception e) { HttpResponseException httpEx = Throwables2.getFirstThrowableOfType(e, HttpResponseException.class); GetOptions.Builder.ifETagMatches(newEtag)); assertEquals(getBlob.getProperties().getETag(), newEtag); } catch (HttpResponseException e) {
getApi() .getObject(containerName, object.getInfo().getName(), GetOptions.Builder.ifETagDoesntMatch(newEtag)); } catch (HttpResponseException e) { assertEquals(e.getResponse().getStatusCode(), 304); GetOptions.Builder.ifETagMatches(newEtag)); assertEquals(getBlob.getInfo().getHash(), base16().lowerCase().decode(newEtag)); getBlob = getApi().getObject(containerName, object.getInfo().getName(), GetOptions.Builder.startAt(8)); assertEquals(Strings2.toString(getBlob.getPayload()), data.substring(8));
public void testGet() throws Exception { MockWebServer server = mockOpenStackServer(); server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access.json")))); server.enqueue(addCommonHeaders(objectResponse() // note silly casing .addHeader(OBJECT_METADATA_PREFIX + "Apiname", "swift") .addHeader(OBJECT_METADATA_PREFIX + "Apiversion", "v1.1"))); try { SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift"); SwiftObject object = api.getObjectApi("DFW", "myContainer").get("myObject", tail(1)); assertEquals(object.getName(), "myObject"); assertEquals(object.getETag(), "8a964ee2a5e88be344f36c22562a6486"); assertEquals(object.getLastModified(), dates.rfc822DateParse("Fri, 12 Jun 2010 13:40:18 GMT")); for (Entry<String, String> entry : object.getMetadata().entrySet()) { assertEquals(object.getMetadata().get(entry.getKey().toLowerCase()), entry.getValue()); } Payload payload = object.getPayload(); assertEquals(payload.getContentMetadata().getContentLength(), Long.valueOf(4)); assertEquals(payload.getContentMetadata().getContentType(), "text/plain; charset=UTF-8"); assertEquals(payload.getContentMetadata().getExpires(), dates.rfc822DateParse("Wed, 23 Jul 2014 14:00:00 GMT")); assertEquals(toStringAndClose(payload.openStream()), "ABCD"); assertEquals(server.getRequestCount(), 2); assertEquals(server.takeRequest().getRequestLine(), "POST /tokens HTTP/1.1"); RecordedRequest get = server.takeRequest(); assertEquals(get.getRequestLine(), "GET /v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer/myObject HTTP/1.1"); } finally { server.shutdown(); } }
try { SwiftObject object = api.getObjectApi(regionId, containerName) .get(objectName, org.jclouds.http.options.GetOptions.Builder.range(begin, end));
@Override public Void call() { IOException lastException = null; for (int retry = 0; retry < retryCountLimit; retry++) { try { SwiftObject object = api.getObjectApi(regionId, containerName) .get(objectName, org.jclouds.http.options.GetOptions.Builder.range(begin, end)); // Download first, this is the part that usually fails byte[] targetArray = ByteStreams.toByteArray(object.getPayload().openStream()); // Map file region MappedByteBuffer out = raf.getChannel().map(FileChannel.MapMode.READ_WRITE, begin, end - begin + 1); out.put(targetArray); out.force(); // JDK-4715154 ; TODO: Java 8 FileChannels if (System.getProperty("os.name").toLowerCase().contains("windows")) { closeDirectBuffer(out); } } catch (IOException e) { lastException = e; continue; } // Success! return null; } throw new RuntimeException("After " + retryCountLimit + " retries: " + lastException); }
@Override public byte[] call() { IOException lastException = null; for (int retry = 0; retry < retryCountLimit; retry++) { try { long time = System.nanoTime(); SwiftObject object = api.getObjectApi(regionId, containerName) .get(objectName, org.jclouds.http.options.GetOptions.Builder.range(begin, end)); byte[] downloadedBlock; InputStream is = object.getPayload().openStream(); try { downloadedBlock = ByteStreams.toByteArray(is); } finally { Closeables.closeQuietly(is); } return downloadedBlock; } catch (IOException e) { logger.debug(e.toString()); lastException = e; continue; } } throw new RuntimeException("After " + retryCountLimit + " retries: " + lastException); } }
@Override public byte[] call() { IOException lastException = null; for (int retry = 0; retry < retryCountLimit; retry++) { try { long time = System.nanoTime(); SwiftObject object = api.getObjectApi(regionId, containerName) .get(objectName, org.jclouds.http.options.GetOptions.Builder.range(begin, end)); byte[] downloadedBlock; InputStream is = object.getPayload().openStream(); try { downloadedBlock = ByteStreams.toByteArray(is); } finally { Closeables.closeQuietly(is); } return downloadedBlock; } catch (IOException e) { logger.debug(e.toString()); lastException = e; continue; } } throw new RuntimeException("After " + retryCountLimit + " retries: " + lastException); } }
@Override public byte[] call() { IOException lastException = null; for (int retry = 0; retry < retryCountLimit; retry++) { try { long time = System.nanoTime(); SwiftObject object = api.getObjectApi(regionId, containerName) .get(objectName, org.jclouds.http.options.GetOptions.Builder.range(begin, end)); byte[] downloadedBlock = ByteStreams.toByteArray(object.getPayload().openStream()); return downloadedBlock; } catch (IOException e) { logger.debug(e.toString()); lastException = e; continue; } } throw new RuntimeException("After " + retryCountLimit + " retries: " + lastException); } }
public void testCreateGetOptionsThatProducesHeaders() throws SecurityException, NoSuchMethodException { Date date = new Date(); GetOptions options = GetOptions.Builder.ifModifiedSince(date); Invokable<?, ?> method = method(TestRequest.class, "get", String.class, HttpRequestOptions.class); GeneratedHttpRequest request = processor.apply(Invocation.create(method, ImmutableList.<Object> of("1", options))); assertEquals(request.getEndpoint().getHost(), "localhost"); assertEquals(request.getEndpoint().getPath(), "/1"); assertEquals(request.getMethod(), HttpMethod.GET); assertEquals(request.getHeaders().size(), 2); assertEquals(request.getHeaders().get(HttpHeaders.HOST), ImmutableList.of("localhost:9999")); assertEquals(request.getHeaders().get(HttpHeaders.IF_MODIFIED_SINCE), ImmutableList.of(dateService.rfc822DateFormat(date))); }
public void testETagMatchesAfterIfUnmodified() { ifUnmodifiedSince(now).ifETagMatches(etag); }
public void testCreateGetVarArgOptionsThatProducesHeaders() throws SecurityException, NoSuchMethodException { Date date = new Date(); GetOptions options = GetOptions.Builder.ifModifiedSince(date); Invokable<?, ?> method = method(TestRequest.class, "get", String.class, HttpRequestOptions[].class); GeneratedHttpRequest request = processor.apply(Invocation.create(method, ImmutableList.<Object> of("1", options))); assertEquals(request.getEndpoint().getHost(), "localhost"); assertEquals(request.getEndpoint().getPath(), "/1"); assertEquals(request.getMethod(), HttpMethod.GET); assertEquals(request.getHeaders().size(), 2); assertEquals(request.getHeaders().get(HttpHeaders.HOST), ImmutableList.of("localhost:9999")); assertEquals(request.getHeaders().get(HttpHeaders.IF_MODIFIED_SINCE), ImmutableList.of(dateService.rfc822DateFormat(date))); }
public void testIfModifiedAfterETagDoesntMatch() { ifETagDoesntMatch(etag).ifModifiedSince(now); }
@Test(expectedExceptions = IllegalArgumentException.class) public void testRangeNegative2() { range(0, -1); }
@Test(expectedExceptions = IllegalArgumentException.class) public void testIfModifiedAfterUnmodified() { ifUnmodifiedSince(now).ifModifiedSince(now); }
@Test(expectedExceptions = IllegalArgumentException.class) public void testETagDoesntMatchAfterETagMatches() { ifETagMatches(etag).ifETagDoesntMatch(etag); }
public void testCreateGetVarArgOptionsThatProducesHeaders() throws SecurityException, NoSuchMethodException { Date date = new Date(); GetOptions options = GetOptions.Builder.ifModifiedSince(date); Invokable<?, ?> method = method(TestRequest.class, "get", String.class, HttpRequestOptions[].class); GeneratedHttpRequest request = processor.apply(Invocation.create(method, ImmutableList.<Object> of("1", options))); assertEquals(request.getEndpoint().getHost(), "localhost"); assertEquals(request.getEndpoint().getPath(), "/1"); assertEquals(request.getMethod(), HttpMethod.GET); assertEquals(request.getHeaders().size(), 2); assertEquals(request.getHeaders().get(HttpHeaders.HOST), ImmutableList.of("localhost:9999")); assertEquals(request.getHeaders().get(HttpHeaders.IF_MODIFIED_SINCE), ImmutableList.of(dateService.rfc822DateFormat(date))); }