diff --git a/gson/pom.xml b/gson/pom.xml index ffe41ac..5ce5d96 100644 --- a/gson/pom.xml +++ b/gson/pom.xml @@ -56,23 +56,6 @@ org.apache.felix maven-bundle-plugin - - org.codehaus.mojo - templating-maven-plugin - 1.0.0 - - - filtering-java-templates - - filter-sources - - - ${basedir}/src/main/java-templates - ${project.build.directory}/generated-sources/java-templates - - - - diff --git a/gson/src/main/java-templates/com/google/gson/internal/GsonBuildConfig.java b/gson/src/main/java-templates/com/google/gson/internal/GsonBuildConfig.java deleted file mode 100644 index a94c96b..0000000 --- a/gson/src/main/java-templates/com/google/gson/internal/GsonBuildConfig.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (C) 2018 The Gson authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.gson.internal; - -/** - * Build configuration for Gson. This file is automatically populated by - * templating-maven-plugin and .java/.class files are generated for use in Gson. - * - * @author Inderjeet Singh - */ -public final class GsonBuildConfig { - // Based on https://stackoverflow.com/questions/2469922/generate-a-version-java-file-in-maven - - /** This field is automatically populated by Maven when a build is triggered */ - public static final String VERSION = "${project.version}"; - - private GsonBuildConfig() { } -} diff --git a/gson/src/main/java/com/google/gson/Gson.java b/gson/src/main/java/com/google/gson/Gson.java index 27f3ee9..d584ece 100644 --- a/gson/src/main/java/com/google/gson/Gson.java +++ b/gson/src/main/java/com/google/gson/Gson.java @@ -37,7 +37,6 @@ import java.util.concurrent.atomic.AtomicLongArray; import com.google.gson.internal.ConstructorConstructor; import com.google.gson.internal.Excluder; -import com.google.gson.internal.GsonBuildConfig; import com.google.gson.internal.Primitives; import com.google.gson.internal.Streams; import com.google.gson.internal.bind.ArrayTypeAdapter; @@ -462,7 +461,7 @@ public final class Gson { return candidate; } } - throw new IllegalArgumentException("GSON (" + GsonBuildConfig.VERSION + ") cannot handle " + type); + throw new IllegalArgumentException("GSON cannot handle " + type); } finally { threadCalls.remove(type); @@ -704,10 +703,6 @@ public final class Gson { ((TypeAdapter) adapter).write(writer, src); } catch (IOException e) { throw new JsonIOException(e); - } catch (AssertionError e) { - AssertionError error = new AssertionError("AssertionError (GSON " + GsonBuildConfig.VERSION + "): " + e.getMessage()); - error.initCause(e); - throw error; } finally { writer.setLenient(oldLenient); writer.setHtmlSafe(oldHtmlSafe); @@ -784,10 +779,6 @@ public final class Gson { Streams.write(jsonElement, writer); } catch (IOException e) { throw new JsonIOException(e); - } catch (AssertionError e) { - AssertionError error = new AssertionError("AssertionError (GSON " + GsonBuildConfig.VERSION + "): " + e.getMessage()); - error.initCause(e); - throw error; } finally { writer.setLenient(oldLenient); writer.setHtmlSafe(oldHtmlSafe); @@ -945,10 +936,6 @@ public final class Gson { } catch (IOException e) { // TODO(inder): Figure out whether it is indeed right to rethrow this as JsonSyntaxException throw new JsonSyntaxException(e); - } catch (AssertionError e) { - AssertionError error = new AssertionError("AssertionError (GSON " + GsonBuildConfig.VERSION + "): " + e.getMessage()); - error.initCause(e); - throw error; } finally { reader.setLenient(oldLenient); } diff --git a/gson/src/test/java/com/google/gson/functional/GsonVersionDiagnosticsTest.java b/gson/src/test/java/com/google/gson/functional/GsonVersionDiagnosticsTest.java deleted file mode 100644 index 36eff8e..0000000 --- a/gson/src/test/java/com/google/gson/functional/GsonVersionDiagnosticsTest.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright (C) 2018 Gson Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.google.gson.functional; - -import java.io.IOException; -import java.util.regex.Pattern; - -import org.junit.Before; -import org.junit.Test; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.TypeAdapter; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; - -import junit.framework.TestCase; - -/** - * Functional tests to validate printing of Gson version on AssertionErrors - * - * @author Inderjeet Singh - */ -public class GsonVersionDiagnosticsTest extends TestCase { - private static final Pattern GSON_VERSION_PATTERN = Pattern.compile("(\\(GSON \\d\\.\\d\\.\\d)(?:[-.][A-Z]+)?\\)$"); - - private Gson gson; - - @Before - public void setUp() { - gson = new GsonBuilder().registerTypeAdapter(TestType.class, new TypeAdapter() { - @Override public void write(JsonWriter out, TestType value) { - throw new AssertionError("Expected during serialization"); - } - @Override public TestType read(JsonReader in) throws IOException { - throw new AssertionError("Expected during deserialization"); - } - }).create(); - } - - @Test - public void testVersionPattern() { - assertTrue(GSON_VERSION_PATTERN.matcher("(GSON 2.8.5)").matches()); - assertTrue(GSON_VERSION_PATTERN.matcher("(GSON 2.8.5-SNAPSHOT)").matches()); - } - - @Test - public void testAssertionErrorInSerializationPrintsVersion() { - try { - gson.toJson(new TestType()); - fail(); - } catch (AssertionError expected) { - ensureAssertionErrorPrintsGsonVersion(expected); - } - } - - @Test - public void testAssertionErrorInDeserializationPrintsVersion() { - try { - gson.fromJson("{'a':'abc'}", TestType.class); - fail(); - } catch (AssertionError expected) { - ensureAssertionErrorPrintsGsonVersion(expected); - } - } - - private void ensureAssertionErrorPrintsGsonVersion(AssertionError expected) { - String msg = expected.getMessage(); - // System.err.println(msg); - int start = msg.indexOf("(GSON"); - assertTrue(start > 0); - int end = msg.indexOf("):") + 1; - assertTrue(end > 0 && end > start + 6); - String version = msg.substring(start, end); - // System.err.println(version); - assertTrue(GSON_VERSION_PATTERN.matcher(version).matches()); - } - - private static final class TestType { - @SuppressWarnings("unused") - String a; - } -} diff --git a/gson/src/test/java/com/google/gson/internal/GsonBuildConfigTest.java b/gson/src/test/java/com/google/gson/internal/GsonBuildConfigTest.java deleted file mode 100644 index dc39bc0..0000000 --- a/gson/src/test/java/com/google/gson/internal/GsonBuildConfigTest.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (C) 2018 The Gson authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.google.gson.internal; - -import static org.junit.Assert.assertFalse; - -import org.junit.Test; - -/** - * Unit tests for {@code GsonBuildConfig} - * - * @author Inderjeet Singh - */ -public class GsonBuildConfigTest { - - @Test - public void testEnsureGsonBuildConfigGetsUpdatedToMavenVersion() { - assertFalse("${project.version}".equals(GsonBuildConfig.VERSION)); - } -}