You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ga...@apache.org on 2014/01/20 05:38:16 UTC

git commit: JCLOUDS-428: Address Java 8 compatibility nits

Updated Branches:
  refs/heads/master 05c2986d0 -> d5fd82500


JCLOUDS-428: Address Java 8 compatibility nits

Tested with JDK 1.6.0_45, 1.7.0_45, and 1.8.0-ea-b123.


Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/d5fd8250
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/d5fd8250
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/d5fd8250

Branch: refs/heads/master
Commit: d5fd82500cd7e28e4a1d23db6430356be0807b25
Parents: 05c2986
Author: Andrew Gaul <ga...@apache.org>
Authored: Sun Jan 19 19:05:34 2014 -0800
Committer: Andrew Gaul <ga...@apache.org>
Committed: Sun Jan 19 20:37:45 2014 -0800

----------------------------------------------------------------------
 .../jclouds/http/functions/ParseSaxTest.java    | 39 ++++++++++++++--
 .../test/java/org/jclouds/json/JsonTest.java    | 13 +++---
 .../org/jclouds/reflect/Reflection2Test.java    | 49 ++++++++++++++++----
 .../test/java/org/jclouds/utils/TestUtils.java  | 10 ++++
 4 files changed, 93 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/d5fd8250/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 c64b286..53f4e2e 100644
--- a/core/src/test/java/org/jclouds/http/functions/ParseSaxTest.java
+++ b/core/src/test/java/org/jclouds/http/functions/ParseSaxTest.java
@@ -54,6 +54,11 @@ 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() {
@@ -61,8 +66,8 @@ public class ParseSaxTest extends BaseHandlerTest {
    }
 
    @DataProvider
-   public Object[][] ignoreUnderJava7() {
-       return TestUtils.isJava7() ? NO_INVOCATIONS : SINGLE_NO_ARG_INVOCATION;
+   public Object[][] runUnderJava8() {
+       return TestUtils.isJava8() ? SINGLE_NO_ARG_INVOCATION : NO_INVOCATIONS;
    }
    
    @Test
@@ -129,7 +134,7 @@ public class ParseSaxTest extends BaseHandlerTest {
       }
    }
 
-   @Test(dataProvider = "ignoreUnderJava7", description = "see http://code.google.com/p/jclouds/issues/detail?id=795")
+   @Test(dataProvider = "runUnderJava6")
    public void testAddDetailsAndPropagateOkWithValidRequestResponseWithSAXParseException() throws ExecutionException,
          InterruptedException, TimeoutException, IOException {
 
@@ -155,7 +160,7 @@ public class ParseSaxTest extends BaseHandlerTest {
       }
    }
 
-   @Test(dataProvider = "runUnderJava7", description = "see http://code.google.com/p/jclouds/issues/detail?id=795")
+   @Test(dataProvider = "runUnderJava7")
    public void testAddDetailsAndPropagateOkWithValidRequestResponseWithSAXParseException_java7() throws ExecutionException,
          InterruptedException, TimeoutException, IOException {
 
@@ -180,4 +185,30 @@ public class ParseSaxTest extends BaseHandlerTest {
          assertEquals(e.getCause(), input);
       }
    }
+
+   @Test(dataProvider = "runUnderJava8")
+   public void testAddDetailsAndPropagateOkWithValidRequestResponseWithSAXParseException_java8() 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);
+      }
+   }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d5fd8250/core/src/test/java/org/jclouds/json/JsonTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/jclouds/json/JsonTest.java b/core/src/test/java/org/jclouds/json/JsonTest.java
index 235f6c1..1ced96c 100644
--- a/core/src/test/java/org/jclouds/json/JsonTest.java
+++ b/core/src/test/java/org/jclouds/json/JsonTest.java
@@ -139,12 +139,13 @@ public class JsonTest {
    }
 
    public void testMapStringObjectWithAllValidValuesOneDeep() {
-      Map<String, Object> map = Maps.newHashMap();
-      map.put("string", "string");
-      map.put("number", 1.0);
-      map.put("boolean", true);
-      map.put("map", ImmutableMap.of("key", "value"));
-      map.put("list", ImmutableList.of("key", "value"));
+      Map<String, Object> map = ImmutableMap.<String, Object>builder()
+         .put("string", "string")
+         .put("map", ImmutableMap.of("key", "value"))
+         .put("list", ImmutableList.of("key", "value"))
+         .put("boolean", true)
+         .put("number", 1.0)
+         .build();
       assertEquals(json.toJson(map),
                "{\"string\":\"string\",\"map\":{\"key\":\"value\"},\"list\":[\"key\",\"value\"],\"boolean\":true,\"number\":1.0}");
       Map<String, Object> map2 = json.fromJson(json.toJson(map), new TypeLiteral<Map<String, Object>>() {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d5fd8250/core/src/test/java/org/jclouds/reflect/Reflection2Test.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/jclouds/reflect/Reflection2Test.java b/core/src/test/java/org/jclouds/reflect/Reflection2Test.java
index f5987cd..3bed1b2 100644
--- a/core/src/test/java/org/jclouds/reflect/Reflection2Test.java
+++ b/core/src/test/java/org/jclouds/reflect/Reflection2Test.java
@@ -30,6 +30,7 @@ import java.util.SortedSet;
 import org.testng.annotations.Test;
 
 import com.google.common.base.Function;
+import com.google.common.base.Predicates;
 import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.reflect.Invokable;
@@ -92,23 +93,55 @@ public class Reflection2Test {
       assertEquals(methodInSuper.getParameters().get(0).getType().getRawType(), Object.class);
    }
 
-   ImmutableSet<String> setMethods = ImmutableSet.of("add", "equals", "hashCode", "clear", "isEmpty", "contains",
-         "addAll", "size", "toArray", "iterator", "remove", "removeAll", "containsAll", "retainAll");
+   ImmutableSet<String> SET_METHODS = ImmutableSet.of(
+         // Java 6 and 7 methods
+         "add",
+         "addAll",
+         "clear",
+         "contains",
+         "containsAll",
+         "equals",
+         "hashCode",
+         "isEmpty",
+         "iterator",
+         "remove",
+         "removeAll",
+         "retainAll",
+         "size",
+         "toArray",
+         // Java 8 methods
+         "forEach",
+         "parallelStream",
+         "removeIf",
+         "spliterator",
+         "stream");
+
+   ImmutableSet<String> SORTED_SET_METHODS = ImmutableSet.<String>builder()
+         .addAll(SET_METHODS)
+         .add("comparator")
+         .add("first")
+         .add("headSet")
+         .add("last")
+         .add("subSet")
+         .add("tailSet")
+         .build();
 
    public void testMethods() {
       Set<String> methodNames = FluentIterable.from(methods(Set.class)).transform(invokableToName)
-            .transform(toStringFunction()).toSet();
+            .transform(toStringFunction())
+            .filter(Predicates.not(Predicates.<String>in(SET_METHODS)))
+            .toSet();
 
-      assertEquals(methodNames, setMethods);
+      assertEquals(methodNames, ImmutableSet.<String>of());
    }
 
    public void testMethodsSubClass() {
       Set<String> methodNames = FluentIterable.from(methods(SortedSet.class)).transform(invokableToName)
-            .transform(toStringFunction()).toSet();
+            .transform(toStringFunction())
+            .filter(Predicates.not(Predicates.<String>in(SORTED_SET_METHODS)))
+            .toSet();
 
-      assertEquals(methodNames,
-            ImmutableSet.builder().add("comparator", "last", "first", "subSet", "headSet", "tailSet")
-                  .addAll(setMethods).build());
+      assertEquals(methodNames, ImmutableSet.<String>of());
    }
 
    static final Function<Invokable<?, ?>, String> invokableToName = new Function<Invokable<?, ?>, String>() {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d5fd8250/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 19fe36e..27b7a63 100644
--- a/core/src/test/java/org/jclouds/utils/TestUtils.java
+++ b/core/src/test/java/org/jclouds/utils/TestUtils.java
@@ -26,8 +26,18 @@ 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 isJava8() {
+        System.out.println(System.getProperty("java.version", "None??"));
+        return System.getProperty("java.version", "").contains("1.8.");
+    }
 }