diff --git a/.gitignore b/.gitignore index 92c0e88382..2b1207ee74 100644 --- a/.gitignore +++ b/.gitignore @@ -19,7 +19,10 @@ atlassian-ide-plugin.xml .java-version .factorypath .apt_generated +.apt_generated_tests .checkstyle nb-configuration.xml nbactions.xml /.nb-gradle/ +dependency-reduced-pom.xml +.vscode diff --git a/apis/chef/src/main/java/org/jclouds/chef/config/ChefParserModule.java b/apis/chef/src/main/java/org/jclouds/chef/config/ChefParserModule.java index da4084d6c2..fac073b8a0 100644 --- a/apis/chef/src/main/java/org/jclouds/chef/config/ChefParserModule.java +++ b/apis/chef/src/main/java/org/jclouds/chef/config/ChefParserModule.java @@ -37,6 +37,7 @@ import org.jclouds.crypto.Crypto; import org.jclouds.crypto.Pems; import org.jclouds.json.config.GsonModule.DateAdapter; import org.jclouds.json.config.GsonModule.Iso8601DateAdapter; +import org.jclouds.json.gson.internal.JsonReaderInternalAccess; import org.jclouds.json.internal.NullFilteringTypeAdapterFactories; import org.jclouds.json.internal.NullFilteringTypeAdapterFactories.MapTypeAdapterFactory; import org.jclouds.json.internal.NullHackJsonLiteralAdapter; @@ -53,7 +54,6 @@ import com.google.gson.JsonElement; import com.google.gson.JsonParseException; import com.google.gson.JsonSyntaxException; import com.google.gson.TypeAdapter; -import com.google.gson.internal.JsonReaderInternalAccess; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonToken; import com.google.inject.AbstractModule; diff --git a/core/pom.xml b/core/pom.xml index cfa23c60f5..674b93a23b 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -78,9 +78,8 @@ test - com.google.code.gson - gson - 2.5 + org.apache.jclouds + jclouds-gson com.google.guava diff --git a/core/src/main/java/org/jclouds/json/config/GsonModule.java b/core/src/main/java/org/jclouds/json/config/GsonModule.java index 7b8bd0cddb..ebe8cf1ffb 100644 --- a/core/src/main/java/org/jclouds/json/config/GsonModule.java +++ b/core/src/main/java/org/jclouds/json/config/GsonModule.java @@ -37,6 +37,9 @@ import org.jclouds.domain.JsonBall; import org.jclouds.domain.LoginCredentials; import org.jclouds.json.Json; import org.jclouds.json.SerializedNames; +import org.jclouds.json.gson.internal.ConstructorConstructor; +import org.jclouds.json.gson.internal.Excluder; +import org.jclouds.json.gson.internal.JsonReaderInternalAccess; import org.jclouds.json.internal.DeserializationConstructorAndReflectiveTypeAdapterFactory; import org.jclouds.json.internal.EnumTypeAdapterThatReturnsFromValue; import org.jclouds.json.internal.GsonWrapper; @@ -71,9 +74,6 @@ import com.google.gson.GsonBuilder; import com.google.gson.InstanceCreator; import com.google.gson.TypeAdapter; import com.google.gson.TypeAdapterFactory; -import com.google.gson.internal.ConstructorConstructor; -import com.google.gson.internal.Excluder; -import com.google.gson.internal.JsonReaderInternalAccess; import com.google.gson.reflect.TypeToken; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; diff --git a/core/src/main/java/org/jclouds/json/internal/DeserializationConstructorAndReflectiveTypeAdapterFactory.java b/core/src/main/java/org/jclouds/json/internal/DeserializationConstructorAndReflectiveTypeAdapterFactory.java index ae0780986b..1df3f5ad2c 100644 --- a/core/src/main/java/org/jclouds/json/internal/DeserializationConstructorAndReflectiveTypeAdapterFactory.java +++ b/core/src/main/java/org/jclouds/json/internal/DeserializationConstructorAndReflectiveTypeAdapterFactory.java @@ -26,6 +26,9 @@ import java.lang.reflect.Modifier; import java.util.List; import java.util.Map; +import org.jclouds.json.gson.internal.ConstructorConstructor; +import org.jclouds.json.gson.internal.Excluder; +import org.jclouds.json.gson.internal.bind.ReflectiveTypeAdapterFactory; import org.jclouds.json.internal.NamingStrategies.AnnotationConstructorNamingStrategy; import com.google.common.base.MoreObjects; @@ -40,9 +43,6 @@ import com.google.gson.Gson; import com.google.gson.JsonSyntaxException; import com.google.gson.TypeAdapter; import com.google.gson.TypeAdapterFactory; -import com.google.gson.internal.ConstructorConstructor; -import com.google.gson.internal.Excluder; -import com.google.gson.internal.bind.ReflectiveTypeAdapterFactory; import com.google.gson.reflect.TypeToken; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonToken; diff --git a/core/src/main/java/org/jclouds/json/internal/NullFilteringTypeAdapterFactories.java b/core/src/main/java/org/jclouds/json/internal/NullFilteringTypeAdapterFactories.java index 85dd545a0b..cdef883b7a 100644 --- a/core/src/main/java/org/jclouds/json/internal/NullFilteringTypeAdapterFactories.java +++ b/core/src/main/java/org/jclouds/json/internal/NullFilteringTypeAdapterFactories.java @@ -16,6 +16,20 @@ */ package org.jclouds.json.internal; +import static com.google.common.base.MoreObjects.toStringHelper; +import static com.google.common.base.Objects.equal; + +import java.io.IOException; +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import org.jclouds.json.gson.internal.JsonReaderInternalAccess; + import com.google.common.base.Objects; import com.google.common.collect.FluentIterable; import com.google.common.collect.ImmutableCollection; @@ -27,24 +41,11 @@ import com.google.common.collect.Multimap; import com.google.gson.Gson; import com.google.gson.TypeAdapter; import com.google.gson.TypeAdapterFactory; -import com.google.gson.internal.JsonReaderInternalAccess; import com.google.gson.reflect.TypeToken; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonToken; import com.google.gson.stream.JsonWriter; -import java.io.IOException; -import java.lang.reflect.ParameterizedType; -import java.lang.reflect.Type; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; - -import static com.google.common.base.Objects.equal; -import static com.google.common.base.MoreObjects.toStringHelper; - /** * Eliminates null values when deserializing Collections, Maps, and Multimaps *

@@ -55,7 +56,7 @@ public class NullFilteringTypeAdapterFactories { } static TypeToken resolve(TypeToken ownerType, Type param) { - return TypeToken.get(com.google.gson.internal.$Gson$Types.resolve(ownerType.getType(), ownerType.getRawType(), + return TypeToken.get(org.jclouds.json.gson.internal.$Gson$Types.resolve(ownerType.getType(), ownerType.getRawType(), param)); } diff --git a/core/src/main/java/org/jclouds/json/internal/NullHackJsonLiteralAdapter.java b/core/src/main/java/org/jclouds/json/internal/NullHackJsonLiteralAdapter.java index 15661763d2..e1f89098be 100644 --- a/core/src/main/java/org/jclouds/json/internal/NullHackJsonLiteralAdapter.java +++ b/core/src/main/java/org/jclouds/json/internal/NullHackJsonLiteralAdapter.java @@ -20,9 +20,10 @@ import java.io.IOException; import java.io.Writer; import java.lang.reflect.Field; +import org.jclouds.json.gson.internal.bind.TypeAdapters; + import com.google.common.base.Throwables; import com.google.gson.TypeAdapter; -import com.google.gson.internal.bind.TypeAdapters; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; diff --git a/core/src/test/java/org/jclouds/json/internal/DeserializationConstructorAndReflectiveTypeAdapterFactoryTest.java b/core/src/test/java/org/jclouds/json/internal/DeserializationConstructorAndReflectiveTypeAdapterFactoryTest.java index 1d54d09c61..8b6ce9c582 100644 --- a/core/src/test/java/org/jclouds/json/internal/DeserializationConstructorAndReflectiveTypeAdapterFactoryTest.java +++ b/core/src/test/java/org/jclouds/json/internal/DeserializationConstructorAndReflectiveTypeAdapterFactoryTest.java @@ -31,6 +31,8 @@ import javax.inject.Inject; import javax.inject.Named; import org.jclouds.json.SerializedNames; +import org.jclouds.json.gson.internal.ConstructorConstructor; +import org.jclouds.json.gson.internal.Excluder; import org.jclouds.json.internal.NamingStrategies.AnnotationConstructorNamingStrategy; import org.jclouds.json.internal.NamingStrategies.AnnotationOrNameFieldNamingStrategy; import org.jclouds.json.internal.NamingStrategies.ExtractNamed; @@ -48,8 +50,6 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.InstanceCreator; import com.google.gson.TypeAdapter; -import com.google.gson.internal.ConstructorConstructor; -import com.google.gson.internal.Excluder; import com.google.gson.reflect.TypeToken; @Test(testName = "DeserializationConstructorTypeAdapterFactoryTest") diff --git a/gson/pom.xml b/gson/pom.xml new file mode 100644 index 0000000000..949fb158ee --- /dev/null +++ b/gson/pom.xml @@ -0,0 +1,81 @@ + + + + 4.0.0 + + jclouds-project + org.apache.jclouds + 2.2.0-SNAPSHOT + ../project/pom.xml + + + + jclouds-gson + jclouds gson copy without internal packages + bundle + + + + com.google.code.gson + gson + 2.5 + + + + + + + maven-shade-plugin + 2.2 + + + shade + package + + shade + + + + + + + com.google.code.gson:gson + + + + + com.google.gson.internal + org.jclouds.json.gson.internal + + + + + + true + + + + + diff --git a/pom.xml b/pom.xml index fb4bf271fc..c16d8299dd 100644 --- a/pom.xml +++ b/pom.xml @@ -31,6 +31,7 @@ project resources + gson core common compute diff --git a/project/pom.xml b/project/pom.xml index 9fe9136f7f..ec91ce1f4c 100644 --- a/project/pom.xml +++ b/project/pom.xml @@ -254,6 +254,27 @@ guava ${guava.version} + + org.apache.jclouds + jclouds-gson + ${project.version} + + + + com.google.code.gson + gson + + + com.google.code.findbugs jsr305 @@ -517,9 +538,11 @@ **/modernizer_exclusions.txt **/.factorypath **/.apt_generated/** + **/.apt_generated_tests/** **/.checkstyle nb-configuration.xml nbactions.xml + dependency-reduced-pom.xml .repository/** @@ -592,6 +615,32 @@ com.jcraft.jsch.agentproxy + + + + + org.apache.jclouds + jclouds-core + ${project.version} + + + org.apache.jclouds + jclouds-gson + ${project.version} + + + + org.jclouds.json.gson.internal + + diff --git a/resources/checkstyle.xml b/resources/checkstyle.xml index 395ba67fac..d686ac73da 100644 --- a/resources/checkstyle.xml +++ b/resources/checkstyle.xml @@ -57,7 +57,7 @@ - +