Android compatibility checks (#4070)

* Adding plugin to investigate compatibility with Android APIs:
Run with:
- mvn animal-sniffer:check

* No need to declare woodstox here

* Moving the Android check to the Plugin Management and activating it in all projects being used on the platform: base + android + converter + structures + validation.

* Removing `List.of` and `Optional.isEmpty` for Android compatibility.

* Moving animal-sniffer to the CI profile.

* Adding Android check to structures-r4b as well

* Removing Xml-apis from Xerces to see if CI passes.

* Activating Android check in the client lib

* Moving Xerces to the base-lib, the only place needed for Animal Sniffer

* Applying Xerces as a dependency only on CI

* Removing xml-apis from shexjava
This commit is contained in:
Vitor Pamplona 2022-12-23 14:23:36 -05:00 committed by GitHub
parent f32bc8f67a
commit f5133dd59c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 274 additions and 4 deletions

View File

@ -152,6 +152,17 @@
</build>
<profiles>
<profile>
<id>CI</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>

View File

@ -137,7 +137,6 @@
<artifactId>system-stubs-jupiter</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
@ -210,4 +209,27 @@
</resources>
</build>
<profiles>
<profile>
<id>CI</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<dependencies>
<!-- dependencies required for Android -->
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<scope>provided</scope>
<optional>true</optional>
</dependency>
</dependencies>
</profile>
</profiles>
</project>

View File

@ -29,6 +29,8 @@ import org.apache.commons.lang3.Validate;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import static org.apache.commons.lang3.StringUtils.isBlank;
@ -115,7 +117,7 @@ public class CompositeParam<A extends IQueryParameterType, B extends IQueryParam
* Get the values of the subcomponents, in order.
*/
public List<IQueryParameterType> getValues() {
return List.of(myLeftType, myRightType);
return Collections.unmodifiableList(Arrays.asList(myLeftType, myRightType));
}
@Override

View File

@ -34,7 +34,6 @@
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
</dependency>
</dependencies>
<build>
@ -65,4 +64,18 @@
</plugins>
</build>
<profiles>
<profile>
<id>CI</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>

View File

@ -112,7 +112,7 @@ public class TlsAuthenticationSvc {
public static X509TrustManager createTrustManager(Optional<TrustStoreInfo> theTrustStoreInfo) {
try {
TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
if (theTrustStoreInfo.isEmpty()) {
if (!theTrustStoreInfo.isPresent()) {
trustManagerFactory.init((KeyStore) null); // Load Trust Manager Factory with default Java truststore
}
else {

View File

@ -217,4 +217,18 @@
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>CI</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>

View File

@ -295,4 +295,18 @@
</plugins>
</build>
<profiles>
<profile>
<id>CI</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>

View File

@ -420,6 +420,20 @@
</resources>
</build>
<profiles>
<profile>
<id>CI</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<reporting>
<plugins>
<plugin>

View File

@ -79,6 +79,20 @@
</plugins>
</build>
<profiles>
<profile>
<id>CI</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<dependencies>
<dependency>
<groupId>ca.uhn.hapi.fhir</groupId>

View File

@ -316,4 +316,18 @@
</plugins>
</build>
<profiles>
<profile>
<id>CI</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>

View File

@ -132,6 +132,10 @@
<groupId>org.apache.commons</groupId>
<artifactId>commons-rdf-jena</artifactId>
</exclusion>
<exclusion>
<artifactId>xml-apis</artifactId>
<groupId>xml-apis</groupId>
</exclusion>
</exclusions>
</dependency>
@ -410,6 +414,17 @@
</dependency>
</dependencies>
</profile>
<profile>
<id>CI</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>

View File

@ -399,4 +399,18 @@
</plugins>
</build>
<profiles>
<profile>
<id>CI</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>

View File

@ -383,4 +383,17 @@
</plugins>
</build>
<profiles>
<profile>
<id>CI</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>

View File

@ -47,4 +47,18 @@
</plugins>
</build>
<profiles>
<profile>
<id>CI</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>

View File

@ -47,4 +47,17 @@
</plugins>
</build>
<profiles>
<profile>
<id>CI</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>

View File

@ -62,4 +62,18 @@
</plugins>
</build>
<profiles>
<profile>
<id>CI</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>

View File

@ -62,4 +62,17 @@
</plugins>
</build>
<profiles>
<profile>
<id>CI</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>

View File

@ -61,4 +61,18 @@
</plugins>
</build>
<profiles>
<profile>
<id>CI</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>

View File

@ -402,4 +402,17 @@
</plugins>
</build>
<profiles>
<profile>
<id>CI</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>

29
pom.xml
View File

@ -2090,6 +2090,14 @@
<artifactId>system-stubs-jupiter</artifactId>
<version>2.0.1</version>
</dependency>
<!-- dependencies required for Android -->
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.12.2</version>
<scope>provided</scope>
<optional>true</optional>
</dependency>
</dependencies>
</dependencyManagement>
@ -2401,6 +2409,27 @@
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
<version>1.22</version>
<configuration>
<signature>
<groupId>net.sf.androidscents.signature</groupId>
<artifactId>android-api-level-26</artifactId>
<version>8.0.0_r2</version>
</signature>
</configuration>
<executions>
<execution>
<id>check-android-26-compliance</id>
<phase>test</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
<plugins>