You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ad...@apache.org on 2014/10/25 20:01:37 UTC
[1/4] git commit: Revert "JCLOUDS-652: Require JDK 7"
Repository: jclouds
Updated Branches:
refs/heads/1.8.x f6d3aa481 -> 8b6081bb9
Revert "JCLOUDS-652: Require JDK 7"
This reverts commit 5e8bd02c93c7ebacb573342e77ef7ca4b02c4ffb.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/84b9f0d0
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/84b9f0d0
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/84b9f0d0
Branch: refs/heads/1.8.x
Commit: 84b9f0d0bdfebc3e9650abae306816b9ead1c0df
Parents: f6d3aa4
Author: Adrian Cole <ad...@gmail.com>
Authored: Fri Oct 24 16:31:23 2014 -0700
Committer: Adrian Cole <ad...@gmail.com>
Committed: Sat Oct 25 10:35:11 2014 -0700
----------------------------------------------------------------------
.../blobstore/config/LocalBlobStore.java | 2 +-
project/pom.xml | 33 ++++++++++++++++++--
2 files changed, 32 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/84b9f0d0/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java
----------------------------------------------------------------------
diff --git a/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java b/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java
index 7a4edf1..8615885 100644
--- a/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java
+++ b/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java
@@ -549,7 +549,7 @@ public final class LocalBlobStore implements BlobStore {
try {
Blob blob = getBlob(containerName, key);
return blob != null ? (BlobMetadata) BlobStoreUtils.copy(blob.getMetadata()) : null;
- } catch (Exception e) {
+ } catch (RuntimeException e) {
if (size(Iterables.filter(getCausalChain(e), KeyNotFoundException.class)) >= 1)
return null;
throw propagate(e);
http://git-wip-us.apache.org/repos/asf/jclouds/blob/84b9f0d0/project/pom.xml
----------------------------------------------------------------------
diff --git a/project/pom.xml b/project/pom.xml
index 4891a48..f259f41 100644
--- a/project/pom.xml
+++ b/project/pom.xml
@@ -189,7 +189,6 @@
<clojure.version>1.3.0</clojure.version>
<maven.compile.source>1.6</maven.compile.source>
<maven.compile.target>1.6</maven.compile.target>
- <maven.compile.optimize>true</maven.compile.optimize>
<maven.compile.deprecation>true</maven.compile.deprecation>
<maven.site.url.base>gitsite:git@github.com/jclouds/jclouds-maven-site.git</maven.site.url.base>
<http.proxyHost />
@@ -1021,6 +1020,21 @@
<artifactId>maven-checkstyle-plugin</artifactId>
<configuration>
<configLocation>../resources/checkstyle.xml</configLocation>
+ <includeTestSourceDirectory>true</includeTestSourceDirectory>
+ <failOnViolation>true</failOnViolation>
+ <failsOnError>true</failsOnError>
+ <violationSeverity>warning</violationSeverity>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.gaul</groupId>
+ <artifactId>modernizer-maven-plugin</artifactId>
+ <configuration>
+ <javaVersion>${maven.compile.source}</javaVersion>
+ <!-- in jclouds-project use the local file. ${project.basedir}
+ required here as 1.1.0 of the modernizer plugin can't find the
+ exclusions file otherwise -->
+ <exclusionsFile>${project.basedir}/../resources/modernizer_exclusions.txt</exclusionsFile>
</configuration>
</plugin>
</plugins>
@@ -1050,7 +1064,22 @@
<configLocation>resources/checkstyle.xml</configLocation>
</configuration>
</plugin>
- </plugins>
+ <plugin>
+ <groupId>org.gaul</groupId>
+ <artifactId>modernizer-maven-plugin</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.jclouds</groupId>
+ <artifactId>jclouds-resources</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+ <configuration>
+ <javaVersion>${maven.compile.source}</javaVersion>
+ <exclusionsFile>resources/modernizer_exclusions.txt</exclusionsFile>
+ </configuration>
+ </plugin>
+ </plugins>
</build>
</profile>
<profile>
[4/4] git commit: JCLOUDS-652 Pin filesystem api to Java 7+.
Posted by ad...@apache.org.
JCLOUDS-652 Pin filesystem api to Java 7+.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/8b6081bb
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/8b6081bb
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/8b6081bb
Branch: refs/heads/1.8.x
Commit: 8b6081bb943ea170f7462839074f2031b6feb73b
Parents: 6f1c662
Author: Adrian Cole <ad...@gmail.com>
Authored: Fri Oct 24 19:58:11 2014 -0700
Committer: Adrian Cole <ad...@gmail.com>
Committed: Sat Oct 25 10:39:06 2014 -0700
----------------------------------------------------------------------
allblobstore/pom.xml | 20 +++++++++++++++-----
apis/filesystem/pom.xml | 3 +++
apis/pom.xml | 12 +++++++++++-
3 files changed, 29 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/8b6081bb/allblobstore/pom.xml
----------------------------------------------------------------------
diff --git a/allblobstore/pom.xml b/allblobstore/pom.xml
index 27f2cd8..492e6b3 100644
--- a/allblobstore/pom.xml
+++ b/allblobstore/pom.xml
@@ -74,14 +74,24 @@
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>org.apache.jclouds.api</groupId>
- <artifactId>filesystem</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>hpcloud-objectstorage</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
+ <profiles>
+ <profile>
+ <id>jre1.7</id>
+ <activation>
+ <jdk>1.7</jdk>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.jclouds.api</groupId>
+ <artifactId>filesystem</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+ </profile>
+ </profiles>
</project>
http://git-wip-us.apache.org/repos/asf/jclouds/blob/8b6081bb/apis/filesystem/pom.xml
----------------------------------------------------------------------
diff --git a/apis/filesystem/pom.xml b/apis/filesystem/pom.xml
index 0115d97..c81d7bb 100644
--- a/apis/filesystem/pom.xml
+++ b/apis/filesystem/pom.xml
@@ -32,6 +32,9 @@
<packaging>bundle</packaging>
<properties>
+ <!-- This api has been written in a manner which requires Java language level 7. -->
+ <maven.compile.source>1.7</maven.compile.source>
+ <maven.compile.target>1.7</maven.compile.target>
<jclouds.osgi.export>org.jclouds.filesystem*;version="${project.version}"</jclouds.osgi.export>
<jclouds.osgi.import>org.jclouds*;version="${project.version}",*</jclouds.osgi.import>
</properties>
http://git-wip-us.apache.org/repos/asf/jclouds/blob/8b6081bb/apis/pom.xml
----------------------------------------------------------------------
diff --git a/apis/pom.xml b/apis/pom.xml
index 48c1ebe..54a48b3 100644
--- a/apis/pom.xml
+++ b/apis/pom.xml
@@ -32,7 +32,6 @@
<modules>
<module>cloudwatch</module>
<module>cloudstack</module>
- <module>filesystem</module>
<module>byon</module>
<module>s3</module>
<module>ec2</module>
@@ -55,4 +54,15 @@
<module>sts</module>
<module>route53</module>
</modules>
+ <profiles>
+ <profile>
+ <id>jre1.7</id>
+ <activation>
+ <jdk>1.7</jdk>
+ </activation>
+ <modules>
+ <module>filesystem</module>
+ </modules>
+ </profile>
+ </profiles>
</project>
[3/4] git commit: JCLOUDS-264 Conditionally allow default http driver
to support sending >2GB payloads without chunked encoding.
Posted by ad...@apache.org.
JCLOUDS-264 Conditionally allow default http driver to support sending >2GB payloads without chunked encoding.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/6f1c6621
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/6f1c6621
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/6f1c6621
Branch: refs/heads/1.8.x
Commit: 6f1c6621a516f7b32b720f28bdf5441d954102bf
Parents: d6940dc
Author: Adrian Cole <ad...@gmail.com>
Authored: Fri Oct 24 19:41:03 2014 -0700
Committer: Adrian Cole <ad...@gmail.com>
Committed: Sat Oct 25 10:39:06 2014 -0700
----------------------------------------------------------------------
.../JavaUrlHttpCommandExecutorService.java | 40 +++++++++--------
.../main/java/org/jclouds/rest/HttpClient.java | 3 +-
...tpCommandExecutorServiceIntegrationTest.java | 45 ++++++++++++++++++--
3 files changed, 67 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/6f1c6621/core/src/main/java/org/jclouds/http/internal/JavaUrlHttpCommandExecutorService.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/http/internal/JavaUrlHttpCommandExecutorService.java b/core/src/main/java/org/jclouds/http/internal/JavaUrlHttpCommandExecutorService.java
index b326bc7..6afd80d 100644
--- a/core/src/main/java/org/jclouds/http/internal/JavaUrlHttpCommandExecutorService.java
+++ b/core/src/main/java/org/jclouds/http/internal/JavaUrlHttpCommandExecutorService.java
@@ -16,7 +16,6 @@
*/
package org.jclouds.http.internal;
-import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Throwables.propagate;
import static com.google.common.io.ByteStreams.toByteArray;
@@ -65,14 +64,11 @@ import com.google.common.io.Closeables;
import com.google.common.io.CountingOutputStream;
import com.google.inject.Inject;
-/**
- * Basic implementation of a {@link HttpCommandExecutorService}.
- */
@Singleton
public class JavaUrlHttpCommandExecutorService extends BaseHttpCommandExecutorService<HttpURLConnection> {
- public static final String DEFAULT_USER_AGENT = String.format("jclouds/%s java/%s", JcloudsVersion.get(), System
- .getProperty("java.version"));
+ public static final String DEFAULT_USER_AGENT = String.format("jclouds/%s java/%s", JcloudsVersion.get(),
+ System.getProperty("java.version"));
protected final Supplier<SSLContext> untrustedSSLContextProvider;
protected final Function<URI, Proxy> proxyForURI;
@@ -82,13 +78,13 @@ public class JavaUrlHttpCommandExecutorService extends BaseHttpCommandExecutorSe
@Inject
public JavaUrlHttpCommandExecutorService(HttpUtils utils, ContentMetadataCodec contentMetadataCodec,
- DelegatingRetryHandler retryHandler, IOExceptionRetryHandler ioRetryHandler,
- DelegatingErrorHandler errorHandler, HttpWire wire, @Named("untrusted") HostnameVerifier verifier,
- @Named("untrusted") Supplier<SSLContext> untrustedSSLContextProvider, Function<URI, Proxy> proxyForURI)
- throws SecurityException, NoSuchFieldException {
+ DelegatingRetryHandler retryHandler, IOExceptionRetryHandler ioRetryHandler,
+ DelegatingErrorHandler errorHandler, HttpWire wire, @Named("untrusted") HostnameVerifier verifier,
+ @Named("untrusted") Supplier<SSLContext> untrustedSSLContextProvider, Function<URI, Proxy> proxyForURI) {
super(utils, contentMetadataCodec, retryHandler, ioRetryHandler, errorHandler, wire);
- if (utils.getMaxConnections() > 0)
+ if (utils.getMaxConnections() > 0) {
System.setProperty("http.maxConnections", String.valueOf(checkNotNull(utils, "utils").getMaxConnections()));
+ }
this.untrustedSSLContextProvider = checkNotNull(untrustedSSLContextProvider, "untrustedSSLContextProvider");
this.verifier = checkNotNull(verifier, "verifier");
this.proxyForURI = checkNotNull(proxyForURI, "proxyForURI");
@@ -179,14 +175,13 @@ public class JavaUrlHttpCommandExecutorService extends BaseHttpCommandExecutorSe
writePayloadToConnection(payload, "streaming", connection);
} else {
Long length = checkNotNull(md.getContentLength(), "payload.getContentLength");
- // TODO: remove check after moving to JDK 7.
- checkArgument(length <= Integer.MAX_VALUE,
- "Cannot transfer 2 GB or larger chunks due to JDK 1.6 limitations." +
- " Use chunked encoding or multi-part upload, if possible." +
- " For more information: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6755625");
if (length > 0) {
connection.setRequestProperty(CONTENT_LENGTH, length.toString());
- connection.setFixedLengthStreamingMode(length.intValue());
+ if (length <= Integer.MAX_VALUE) {
+ connection.setFixedLengthStreamingMode(length.intValue());
+ } else {
+ setFixedLengthStreamingMode(connection, length);
+ }
writePayloadToConnection(payload, length, connection);
} else {
writeNothing(connection);
@@ -198,6 +193,17 @@ public class JavaUrlHttpCommandExecutorService extends BaseHttpCommandExecutorSe
return connection;
}
+ /** Uses {@link HttpURLConnection#setFixedLengthStreamingMode(long)} if possible or throws if not. */
+ private static void setFixedLengthStreamingMode(HttpURLConnection connection, long length) {
+ try { // Not caching method as invocation is literally sending > 2GB, which means reflection isn't a limiter!
+ HttpURLConnection.class.getMethod("setFixedLengthStreamingMode", long.class).invoke(connection, length);
+ } catch (Exception e) {
+ throw new IllegalArgumentException("Cannot transfer 2 GB or larger chunks due to JDK 1.6 limitations." +
+ " Use chunked encoding or multi-part upload, if possible, or use a different http driver." +
+ " For more information: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6755625");
+ }
+ }
+
/**
* Creates and initializes the connection.
*/
http://git-wip-us.apache.org/repos/asf/jclouds/blob/6f1c6621/core/src/main/java/org/jclouds/rest/HttpClient.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/rest/HttpClient.java b/core/src/main/java/org/jclouds/rest/HttpClient.java
index 126af29..f982a66 100644
--- a/core/src/main/java/org/jclouds/rest/HttpClient.java
+++ b/core/src/main/java/org/jclouds/rest/HttpClient.java
@@ -16,6 +16,7 @@
*/
package org.jclouds.rest;
+import java.io.Closeable;
import java.io.InputStream;
import java.net.URI;
@@ -38,7 +39,7 @@ import org.jclouds.rest.annotations.ResponseParser;
/**
* Simple client
*/
-public interface HttpClient {
+public interface HttpClient extends Closeable {
/**
* @return eTag
*/
http://git-wip-us.apache.org/repos/asf/jclouds/blob/6f1c6621/core/src/test/java/org/jclouds/http/JavaUrlHttpCommandExecutorServiceIntegrationTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/jclouds/http/JavaUrlHttpCommandExecutorServiceIntegrationTest.java b/core/src/test/java/org/jclouds/http/JavaUrlHttpCommandExecutorServiceIntegrationTest.java
index d1d4c60..265048a 100644
--- a/core/src/test/java/org/jclouds/http/JavaUrlHttpCommandExecutorServiceIntegrationTest.java
+++ b/core/src/test/java/org/jclouds/http/JavaUrlHttpCommandExecutorServiceIntegrationTest.java
@@ -16,20 +16,29 @@
*/
package org.jclouds.http;
+import static com.google.common.io.Closeables.close;
+import static com.google.common.net.HttpHeaders.CONTENT_LENGTH;
import static org.jclouds.Constants.PROPERTY_MAX_CONNECTIONS_PER_CONTEXT;
import static org.jclouds.Constants.PROPERTY_MAX_CONNECTIONS_PER_HOST;
import static org.jclouds.Constants.PROPERTY_USER_THREADS;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.fail;
import java.util.Properties;
import org.jclouds.http.config.JavaUrlHttpCommandExecutorServiceModule;
+import org.jclouds.io.Payload;
+import org.jclouds.io.payloads.StringPayload;
+import org.jclouds.rest.HttpClient;
+import org.jclouds.utils.TestUtils;
import org.testng.annotations.Test;
import com.google.inject.Module;
+import com.squareup.okhttp.mockwebserver.Dispatcher;
+import com.squareup.okhttp.mockwebserver.MockResponse;
+import com.squareup.okhttp.mockwebserver.MockWebServer;
+import com.squareup.okhttp.mockwebserver.RecordedRequest;
-/**
- * Tests the functionality of the {@link JavaUrlHttpCommandExecutorService}
- */
@Test(groups = "integration")
public class JavaUrlHttpCommandExecutorServiceIntegrationTest extends BaseHttpCommandExecutorServiceIntegrationTest {
@@ -43,4 +52,34 @@ public class JavaUrlHttpCommandExecutorServiceIntegrationTest extends BaseHttpCo
props.setProperty(PROPERTY_USER_THREADS, 5 + "");
}
+ @Test public void longContentLengthSupported() throws Exception {
+ long reallyLongContent = TestUtils.isJava6() ? Integer.MAX_VALUE : Long.MAX_VALUE;
+
+ // Setup a mock server that doesn't attempt to read the request payload.
+ MockWebServer server = new MockWebServer();
+ server.setDispatcher(new Dispatcher() {
+ @Override public MockResponse dispatch(RecordedRequest recordedRequest) {
+ return new MockResponse();
+ }
+ });
+ server.play();
+
+ HttpClient client = api(HttpClient.class, server.getUrl("/").toString());
+
+ // Make a fake payload that has no data, but says there's a lot!
+ Payload fakePayload = new StringPayload("");
+ fakePayload.getContentMetadata().setContentLength(reallyLongContent);
+
+ try {
+ try {
+ client.post(server.getUrl("/").toURI(), fakePayload);
+ fail("Should have errored since we didn't sent that much data!");
+ } catch (HttpResponseException expected) {
+ }
+ assertEquals(server.takeRequest().getHeader(CONTENT_LENGTH), String.valueOf(reallyLongContent));
+ } finally {
+ close(client, true);
+ server.shutdown();
+ }
+ }
}
[2/4] git commit: Revert "Remove Java 6 litter"
Posted by ad...@apache.org.
Revert "Remove Java 6 litter"
This reverts commit a10bf3e9c5495b4c8c69e0059b5901266df471dd.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/d6940dc2
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/d6940dc2
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/d6940dc2
Branch: refs/heads/1.8.x
Commit: d6940dc2956fb39eb660033f806c8ec294ea616d
Parents: 84b9f0d
Author: Adrian Cole <ad...@gmail.com>
Authored: Fri Oct 24 19:37:52 2014 -0700
Committer: Adrian Cole <ad...@gmail.com>
Committed: Sat Oct 25 10:38:58 2014 -0700
----------------------------------------------------------------------
.../jclouds/http/functions/ParseSaxTest.java | 96 ++------------------
.../test/java/org/jclouds/utils/TestUtils.java | 18 +---
2 files changed, 14 insertions(+), 100 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/d6940dc2/core/src/test/java/org/jclouds/http/functions/ParseSaxTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/jclouds/http/functions/ParseSaxTest.java b/core/src/test/java/org/jclouds/http/functions/ParseSaxTest.java
index acf02e8..b16002b 100644
--- a/core/src/test/java/org/jclouds/http/functions/ParseSaxTest.java
+++ b/core/src/test/java/org/jclouds/http/functions/ParseSaxTest.java
@@ -20,18 +20,11 @@ import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
-import static org.jclouds.utils.TestUtils.NO_INVOCATIONS;
-import static org.jclouds.utils.TestUtils.SINGLE_NO_ARG_INVOCATION;
import static org.testng.Assert.assertEquals;
-import java.io.IOException;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.TimeoutException;
-
import org.jclouds.http.HttpRequest;
import org.jclouds.http.HttpResponse;
import org.jclouds.utils.TestUtils;
-import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import org.xml.sax.Locator;
import org.xml.sax.SAXParseException;
@@ -52,25 +45,9 @@ public class ParseSaxTest extends BaseHandlerTest {
ParseSax<String> createParser() {
return factory.create(injector.getInstance(TestHandler.class));
}
-
- @DataProvider
- public Object[][] runUnderJava6() {
- return TestUtils.isJava6() ? SINGLE_NO_ARG_INVOCATION : NO_INVOCATIONS;
- }
-
- @DataProvider
- public Object[][] runUnderJava7() {
- return TestUtils.isJava7() ? SINGLE_NO_ARG_INVOCATION : NO_INVOCATIONS;
- }
-
- @DataProvider
- public Object[][] runUnderJava8() {
- return TestUtils.isJava8() ? SINGLE_NO_ARG_INVOCATION : NO_INVOCATIONS;
- }
@Test
- public void testAddDetailsAndPropagateOkWhenRequestWithNoDataAndRuntimeExceptionThrowsOriginalException()
- throws ExecutionException, InterruptedException, TimeoutException, IOException {
+ public void testAddDetailsAndPropagateOkWhenRequestWithNoDataAndRuntimeExceptionThrowsOriginalException() {
ParseSax<String> parser = createParser();
Exception input = new RuntimeException("foo");
@@ -83,8 +60,7 @@ public class ParseSaxTest extends BaseHandlerTest {
}
@Test
- public void testAddDetailsAndPropagateOkWhenRequestWithNoDataAndExceptionPropagates() throws ExecutionException,
- InterruptedException, TimeoutException, IOException {
+ public void testAddDetailsAndPropagateOkWhenRequestWithNoDataAndExceptionPropagates() {
ParseSax<String> parser = createParser();
Exception input = new Exception("foo");
@@ -98,8 +74,7 @@ public class ParseSaxTest extends BaseHandlerTest {
}
@Test
- public void testAddDetailsAndPropagateOkWhenRequestIsNotNullAndResponseIsNull() throws ExecutionException,
- InterruptedException, TimeoutException, IOException {
+ public void testAddDetailsAndPropagateOkWhenRequestIsNotNullAndResponseIsNull() {
ParseSax<String> parser = createParser();
HttpRequest request = HttpRequest.builder().method("GET").endpoint("http://foohost").build();
@@ -115,8 +90,7 @@ public class ParseSaxTest extends BaseHandlerTest {
}
@Test
- public void testAddDetailsAndPropagateOkWithValidRequestResponse() throws ExecutionException, InterruptedException,
- TimeoutException, IOException {
+ public void testAddDetailsAndPropagateOkWithValidRequestResponse() {
ParseSax<String> parser = createParser();
HttpRequest request = HttpRequest.builder().method("GET").endpoint("http://foohost").build();
@@ -132,61 +106,8 @@ public class ParseSaxTest extends BaseHandlerTest {
}
}
- @Test(dataProvider = "runUnderJava6")
- public void testAddDetailsAndPropagateOkWithValidRequestResponseWithSAXParseException() throws ExecutionException,
- InterruptedException, TimeoutException, IOException {
-
- ParseSax<String> parser = createParser();
- HttpRequest request = HttpRequest.builder().method("GET").endpoint("http://foohost").build();
- HttpResponse response = HttpResponse.builder().statusCode(304).message("Not Modified").build();
- Locator locator = createMock(Locator.class);
- expect(locator.getColumnNumber()).andReturn(1);
- expect(locator.getLineNumber()).andReturn(1);
- expect(locator.getPublicId()).andReturn("publicId");
- expect(locator.getSystemId()).andReturn("systemId");
- replay(locator);
- Exception input = new SAXParseException("foo", locator);
- verify(locator);
-
- try {
- parser.setContext(request);
- parser.addDetailsAndPropagate(response, input);
- } catch (RuntimeException e) {
- assertEquals(e.getMessage(),
- "request: GET http://foohost HTTP/1.1; response: HTTP/1.1 304 Not Modified; error at 1:1 in document systemId; cause: org.xml.sax.SAXParseException: foo");
- assertEquals(e.getCause(), input);
- }
- }
-
- @Test(dataProvider = "runUnderJava7")
- public void testAddDetailsAndPropagateOkWithValidRequestResponseWithSAXParseException_java7() throws ExecutionException,
- InterruptedException, TimeoutException, IOException {
-
- ParseSax<String> parser = createParser();
- HttpRequest request = HttpRequest.builder().method("GET").endpoint("http://foohost").build();
- HttpResponse response = HttpResponse.builder().statusCode(304).message("Not Modified").build();
- Locator locator = createMock(Locator.class);
- expect(locator.getColumnNumber()).andReturn(1);
- expect(locator.getLineNumber()).andReturn(1);
- expect(locator.getPublicId()).andReturn("publicId");
- expect(locator.getSystemId()).andReturn("systemId");
- replay(locator);
- Exception input = new SAXParseException("foo", locator);
- verify(locator);
-
- try {
- parser.setContext(request);
- parser.addDetailsAndPropagate(response, input);
- } catch (RuntimeException e) {
- assertEquals(e.getMessage(),
- "request: GET http://foohost HTTP/1.1; response: HTTP/1.1 304 Not Modified; error at 1:1 in document systemId; cause: org.xml.sax.SAXParseExceptionpublicId: publicId; systemId: systemId; lineNumber: 1; columnNumber: 1; foo");
- assertEquals(e.getCause(), input);
- }
- }
-
- @Test(dataProvider = "runUnderJava8")
- public void testAddDetailsAndPropagateOkWithValidRequestResponseWithSAXParseException_java8() throws ExecutionException,
- InterruptedException, TimeoutException, IOException {
+ @Test
+ public void testAddDetailsAndPropagateOkWithValidRequestResponseWithSAXParseException() {
ParseSax<String> parser = createParser();
HttpRequest request = HttpRequest.builder().method("GET").endpoint("http://foohost").build();
@@ -204,8 +125,9 @@ public class ParseSaxTest extends BaseHandlerTest {
parser.setContext(request);
parser.addDetailsAndPropagate(response, input);
} catch (RuntimeException e) {
- assertEquals(e.getMessage(),
- "request: GET http://foohost HTTP/1.1; response: HTTP/1.1 304 Not Modified; error at 1:1 in document systemId; cause: org.xml.sax.SAXParseExceptionpublicId: publicId; systemId: systemId; lineNumber: 1; columnNumber: 1; foo");
+ assertEquals(e.getMessage(), TestUtils.isJava6()
+ ? "request: GET http://foohost HTTP/1.1; response: HTTP/1.1 304 Not Modified; error at 1:1 in document systemId; cause: org.xml.sax.SAXParseException: foo"
+ : "request: GET http://foohost HTTP/1.1; response: HTTP/1.1 304 Not Modified; error at 1:1 in document systemId; cause: org.xml.sax.SAXParseExceptionpublicId: publicId; systemId: systemId; lineNumber: 1; columnNumber: 1; foo");
assertEquals(e.getCause(), input);
}
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/d6940dc2/core/src/test/java/org/jclouds/utils/TestUtils.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/jclouds/utils/TestUtils.java b/core/src/test/java/org/jclouds/utils/TestUtils.java
index 035f1be..c2fde4f 100644
--- a/core/src/test/java/org/jclouds/utils/TestUtils.java
+++ b/core/src/test/java/org/jclouds/utils/TestUtils.java
@@ -26,22 +26,14 @@ import com.google.common.io.ByteSource;
* Utility class for test
*/
public class TestUtils {
- public static final Object[][] NO_INVOCATIONS = new Object[0][0];
- public static final Object[][] SINGLE_NO_ARG_INVOCATION = { new Object[0] };
- public static boolean isJava6() {
- System.out.println(System.getProperty("java.version", "None??"));
- return System.getProperty("java.version", "").contains("1.6.");
- }
-
- public static boolean isJava7() {
- System.out.println(System.getProperty("java.version", "None??"));
- return System.getProperty("java.version", "").contains("1.7.");
+ public static boolean isMacOSX() {
+ String osName = System.getProperty("os.name");
+ return osName.contains("OS X");
}
- public static boolean isJava8() {
- System.out.println(System.getProperty("java.version", "None??"));
- return System.getProperty("java.version", "").contains("1.8.");
+ public static boolean isJava6() {
+ return System.getProperty("java.version", "").contains("1.6.");
}
public static ByteSource randomByteSource() {