#1 update to version 2.8.6
Merged 3 years ago by decathorpe. Opened 3 years ago by decathorpe.
Unknown source master  into  master

file modified
+1
@@ -5,3 +5,4 @@

  /gson-2.3.1.tar.gz

  /gson-parent-2.8.1.tar.gz

  /gson-parent-2.8.2.tar.gz

+ /gson-parent-2.8.6.tar.gz

file modified
+16 -2
@@ -1,11 +1,17 @@

  Name:           google-gson

- Version:        2.8.2

- Release:        4%{?dist}

+ Version:        2.8.6

+ Release:        1%{?dist}

  Summary:        Java lib for conversion of Java objects into JSON representation

  License:        ASL 2.0

  URL:            https://github.com/google/gson

  Source0:        https://github.com/google/gson/archive/gson-parent-%{version}.tar.gz

  Patch0:         osgi-export-internal.patch

+ Patch1:         java-eight-build.patch

+ 

+ # This commit added a dependency on templating-maven-plugin,

+ # we don't want it nor need it, so we revert it

+ # https://github.com/google/gson/commit/d84e26d

+ Patch2:         no-templating-maven-plugin.patch

  

  BuildArch:      noarch

  
@@ -29,6 +35,11 @@

  %prep

  %setup -q -n gson-gson-parent-%{version}

  %patch0 -p1

+ %patch1 -p1

+ %patch2 -p1

+ 

+ # presence of these files breaks builds with Java 8

+ find -name "module-info.java" -print -delete

  

  # Use felix maven-bundle-plugin only for OSGi metadata

  %pom_remove_plugin :bnd-maven-plugin gson
@@ -59,6 +70,9 @@

  %license LICENSE

  

  %changelog

+ * Fri Nov 01 2019 Fabio Valentini <decathorpe@gmail.com> - 2.8.6-1

+ - Update to version 2.8.6.

+ 

  * Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.8.2-4

  - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild

  

@@ -0,0 +1,15 @@

+ diff --git a/pom.xml b/pom.xml

+ index 4774e70..c7941b2 100644

+ --- a/pom.xml

+ +++ b/pom.xml

+ @@ -69,9 +69,8 @@

+                <id>default-compile</id>

+                <configuration>

+                  <jdkToolchain>

+ -                  <version>9</version>

+ +                  <version>8</version>

+                  </jdkToolchain>

+ -                <release>9</release>

+                </configuration>

+              </execution>

+              <execution>

@@ -0,0 +1,261 @@

+ 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 @@

+          <groupId>org.apache.felix</groupId>

+          <artifactId>maven-bundle-plugin</artifactId>

+        </plugin>

+ -      <plugin>

+ -        <groupId>org.codehaus.mojo</groupId>

+ -        <artifactId>templating-maven-plugin</artifactId>

+ -        <version>1.0.0</version>

+ -        <executions>

+ -          <execution>

+ -            <id>filtering-java-templates</id>

+ -            <goals>

+ -              <goal>filter-sources</goal>

+ -            </goals>

+ -            <configuration>

+ -              <sourceDirectory>${basedir}/src/main/java-templates</sourceDirectory>

+ -              <outputDirectory>${project.build.directory}/generated-sources/java-templates</outputDirectory>

+ -            </configuration>

+ -          </execution>

+ -        </executions>

+ -      </plugin>

+      </plugins>

+    </build>

+  </project>

+ 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<Object>) 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<TestType>() {

+ -      @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));

+ -  }

+ -}

file modified
+1 -1
@@ -1,1 +1,1 @@

- SHA512 (gson-parent-2.8.2.tar.gz) = 72ab46ebbbe3ef6388be7676e6cb1bf1eadc09469437e136adb81212eb7abe76786ec2362405690af29fd395f715e5ffeff0868312bbf120cd3e6b725f68073b

+ SHA512 (gson-parent-2.8.6.tar.gz) = 2e9db9388017b5c08b992801d15c0e04a9402e5b729b4da78443af3003e60428f06c8ba14f8ac43d7aafca208e1ab401c56fa6079493d2bf1d4e40da48c044ab

  • update to latest version (2.8.2 → 2.8.6)
  • patch pom.xml to make it build correctly with Java 8
  • require templating-maven-plugin (open review request)

Test rebuilds (with templating-maven-plugin present) were done in COPR and were successful:

https://copr.fedorainfracloud.org/coprs/decathorpe/google-gson-2.8.6-pr/monitor/

All build failures were expected since they already happen in rawhide without this change.

Nitpick: do you want to set it to?:

%{url}/archive/%{name}-parent-%{version}.tar.gz

@dmoluguw ah, you mean so that the file name matches the internal directory structure?

Do we need this new package? Can't we just disable the plugin (if it's not needed)?

@dmoluguw

Yes, I checked, it actually needs this plugin for building, and it fails without it.

And ... changing the Source URL is not as easy as that after all. So I'd rather let it be the way it is now.

Sure thingy! Thanks for looking into it! I'm currently reviewing the templating-maven-plugin. Once that gets accepted, this PR is good to be merged! :-)

1 new commit added

  • fixup! update to version 2.8.6
3 years ago

I've pushed a fixup commit. please review and squash if ok

rebased onto c50693b

3 years ago

@churchyard Works like a charm! :100: thanks!

Patch looks good, lets ship this.

Pull-Request has been merged by decathorpe

3 years ago