Skip to content

[Tracking] Improve Android API compat test in POM #2583

Description

@jhy

Currently in the POM we have this:

jsoup/pom.xml

Lines 115 to 155 in 19c758e

<execution>
<id>check-android21-api</id>
<phase>compile</phase>
<goals>
<goal>check</goal>
</goals>
<configuration>
<signature>
<groupId>com.toasttab.android</groupId>
<artifactId>gummy-bears-api-21</artifactId>
<version>0.10.0</version>
<!-- <classifier>coreLib2</classifier> -->
<!-- ^^ https://github.com/open-toast/gummy-bears says coreLib2 classifier for desugar should work, but I can't seem to wrangle Animal Sniffer to support that, so reverting to ignores for desugar -->
</signature>
<ignores>
<ignore>java.io.File</ignore> <!-- File#toPath() -->
<ignore>java.nio.file.*</ignore>
<ignore>java.nio.channels.SeekableByteChannel</ignore>
<ignore>java.util.function.*</ignore>
<ignore>java.util.stream.*</ignore>
<ignore>java.lang.ThreadLocal</ignore>
<ignore>java.io.UncheckedIOException</ignore>
<ignore>java.util.Comparator</ignore> <!-- Comparator.comparingInt() -->
<ignore>java.util.List</ignore> <!-- List#stream() -->
<ignore>java.util.ArrayList</ignore> <!-- List / ArrayList #sort() -->
<ignore>java.util.LinkedHashMap</ignore> <!-- LinkedHashMap#computeIfAbsent() -->
<ignore>java.util.Map</ignore> <!-- Map#computeIfAbsent() -->
<ignore>java.util.Objects</ignore>
<ignore>java.util.Optional</ignore>
<ignore>java.util.Set</ignore> <!-- Set#stream() -->
<ignore>java.util.Spliterator</ignore>
<ignore>java.util.Spliterators</ignore>
<ignore>java.nio.ByteBuffer</ignore> <!-- .flip(); added in API1; possibly due to .flip previously returning Buffer, later ByteBuffer; return unused -->
<ignore>java.net.HttpURLConnection</ignore><!-- .setAuthenticator(java.net.Authenticator) in Java 9; only used in multirelease 9+ version -->
<!-- HttpClient and following in Java 11; only used in multirelease 11+ version, guarded and not on Android -->
<ignore>java.net.http.*</ignore>
<ignore>java.time.Duration</ignore>
<ignore>java.util.OptionalLong</ignore>
</ignores>
<!-- ^ Provided by https://developer.android.com/studio/write/java8-support#library-desugaring -->
</configuration>

Because the Maven Animal Sniffer plugin doesn't currently support a classifier (mojohaus/animal-sniffer#328), we can't specify the Gummy Bears API definition for coreLib2. So I've been updating the POM with manual exclusions. But that's dull and a bit risky.

So I've added a PR to implement the classifier support: mojohaus/animal-sniffer#346

Assuming that lands we should be able to simplify this POM quite a bit.

It will be good also if Gummy Bears has a coreLib2 + NIO definition set, because that's what jsoup aligns to.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    improvementAn improvement / new feature idea

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions