### Basic Ant Task Setup and Usage
Source: https://github.com/siom79/japicmp/blob/master/src/site/markdown/AntTask.md
Defines the JAPicmp Ant task and demonstrates its invocation with old and new JAR versions and associated classpaths. Ensure Ant version is 1.9.5 or higher.
```xml
```
--------------------------------
### Filter Classes and Methods using Groovy Script
Source: https://github.com/siom79/japicmp/blob/master/src/site/markdown/MavenPlugin.md
Apply custom filtering to the analysis results using a Groovy script. This example removes classes starting with 'japicmp.test.annotation' and methods starting with 'get' or 'set'.
```groovy
def it = jApiClasses.iterator()
while (it.hasNext()) {
def jApiClass = it.next()
def fqn = jApiClass.getFullyQualifiedName()
if (fqn.startsWith("japicmp.test.annotation")) {
it.remove()
}
def methodIt = jApiClass.getMethods().iterator()
while (methodIt.hasNext()) {
def method = methodIt.next()
if (method.getName().startsWith("get") || method.getName().startsWith("set")) {
methodIt.remove()
}
}
}
return jApiClasses
```
--------------------------------
### Configure Multiple Old and New Versions for Summary Report
Source: https://github.com/siom79/japicmp/blob/master/src/site/markdown/MavenPlugin.md
Set up multiple old and new versions of dependencies to generate a comprehensive summary report. This aggregates comparisons across several library versions.
```xml
com.github.siom79.japicmp
japicmp-test-v1
${project.version}
com.github.siom79.japicmp
japicmp-test2-v1
${project.version}
com.github.siom79.japicmp
japicmp-test-v2
${project.version}
com.github.siom79.japicmp
japicmp-test2-v2
${project.version}
...
```
--------------------------------
### get
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.md
Returns the element at the specified position in this iterable. This method is unchanged.
```APIDOC
## get
### Description
Returns the element at the specified position in this iterable.
### Method
`public final Object get(int index)`
### Parameters
#### Path Parameters
None
#### Query Parameters
None
#### Request Body
None
### Request Example
None
### Response
#### Success Response (Object)
- The element at the specified index.
#### Response Example
None
```
--------------------------------
### Compare Multiple JARs for Old and New Versions
Source: https://github.com/siom79/japicmp/blob/master/src/site/markdown/CliTool.md
For reporting purposes, you can provide multiple JAR files for both the old and new versions.
```bash
java -jar japicmp-0.26.1-jar-with-dependencies.jar -o lib1-old.jar;lib2-old.jar -n lib1-new.jar;lib2-new.jar
```
--------------------------------
### com.google.common.base.Joiner Methods
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.md
Lists the methods available in the Joiner class and their compatibility status.
```APIDOC
## Methods
| Status | Modifiers | Generics | Type | Method | Annotations | Compatibility Changes |
|-----------|-------------------|----------|------------|-----------------------------------------------|--------------------------|-----------------------|
| Unchanged | `final` `public` | | [`String`] | `join`([`Iterable>`]) | **[`CheckReturnValue`]** | ![Annotation added] |
| Unchanged | `final` `public` | | [`String`] | `join`([`Iterator>`]) | **[`CheckReturnValue`]** | ![Annotation added] |
| Unchanged | `final` `public` | | [`String`] | `join`([`Object[]`][1]) | **[`CheckReturnValue`]** | ![Annotation added] |
| Unchanged | `final` `public` | | [`String`] | `join`([`Object`], [`Object`], [`Object...`]) | **[`CheckReturnValue`]** | ![Annotation added] |
| Unchanged | `static` `public` | | [`Joiner`] | `on`([`String`]) | **[`CheckReturnValue`]** | ![Annotation added] |
| Unchanged | `static` `public` | | [`Joiner`] | `on`(`char`) | **[`CheckReturnValue`]** | ![Annotation added] |
```
--------------------------------
### Ticker Class
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.md
Represents a source of time, providing a way to get the current time.
```APIDOC
## `com.google.common.base.Ticker`
### Description
An abstract class representing a source of time.
### Methods
#### `systemTicker()`
- **Type**: `Ticker`
- **Modifiers**: `static public`
- **Description**: Returns a `Ticker` that uses the system's current time.
```
--------------------------------
### ImmutableRangeSet.asDescendingSetOfRanges
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.md
Returns an ImmutableSet view of the ranges in this set, ordered by descending start points. This method was added to the public class.
```APIDOC
## ImmutableRangeSet.asDescendingSetOfRanges
### Description
Returns an ImmutableSet view of the ranges in this set, ordered by descending start points.
### Method
public
### Endpoint
N/A (Java Method)
### Parameters
None
### Request Example
N/A
### Response
#### Success Response
- **ImmutableSet>** - A set of ranges ordered by descending start points.
### Response Example
N/A
```
--------------------------------
### Command-line API Comparison Report
Source: https://github.com/siom79/japicmp/blob/master/src/site/markdown/Examples.md
Displays differences between two versions of a library on the command line. Incompatible changes are flagged with '!' for binary and '*' for source.
```bash
**** MODIFIED INTERFACE: PUBLIC ABSTRACT com.google.common.collect.RangeMap (not serializable)
+++* NEW METHOD: PUBLIC(+) ABSTRACT(+) java.util.Map asDescendingMapOfRanges()
**** MODIFIED INTERFACE: PUBLIC ABSTRACT com.google.common.collect.RangeSet (not serializable)
+++* NEW METHOD: PUBLIC(+) ABSTRACT(+) java.util.Set asDescendingSetOfRanges()
***! MODIFIED CLASS: com.google.common.collect.RegularImmutableBiMap (type of field has changed)
*** MODIFIED FIELD: PRIVATE FINAL java.util.Map$Entry[] (<- com.google.common.collect.ImmutableMapEntry[]) entries
+++ NEW FIELD: STATIC(+) FINAL(+) com.google.common.collect.RegularImmutableBiMap EMPTY
---! REMOVED CONSTRUCTOR: RegularImmutableBiMap(java.util.Map$Entry[])
---! REMOVED CONSTRUCTOR: RegularImmutableBiMap(int, com.google.common.collect.ImmutableMapEntry$TerminalEntry[])
---! REMOVED CONSTRUCTOR: RegularImmutableBiMap(com.google.common.collect.ImmutableMapEntry$TerminalEntry[])
+++ NEW CONSTRUCTOR: PRIVATE(+) RegularImmutableBiMap(com.google.common.collect.ImmutableMapEntry[], com.google.common.collect.ImmutableMapEntry[], java.util.Map$Entry[], int, int)
+++ NEW METHOD: PRIVATE(+) STATIC(+) void checkNoConflictInValueBucket(java.lang.Object, java.util.Map$Entry, com.google.common.collect.ImmutableMapEntry)
--- REMOVED METHOD: PRIVATE(-) STATIC(-) com.google.common.collect.ImmutableMapEntry[] createEntryArray(int)
+++ NEW METHOD: STATIC(+) com.google.common.collect.RegularImmutableBiMap fromEntries(java.util.Map$Entry[])
+++ NEW METHOD: STATIC(+) com.google.common.collect.RegularImmutableBiMap fromEntryArray(int, java.util.Map$Entry[])
+++ NEW METHOD: PUBLIC(+) int hashCode()
+++ NEW METHOD: boolean isHashCodeFast()
...
```
--------------------------------
### ImmutableRangeMap.asDescendingMapOfRanges
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.md
Returns an ImmutableMap view of the ranges in this map, ordered by descending start points. This method was added to the public class.
```APIDOC
## ImmutableRangeMap.asDescendingMapOfRanges
### Description
Returns an ImmutableMap view of the ranges in this map, ordered by descending start points.
### Method
public
### Endpoint
N/A (Java Method)
### Parameters
None
### Request Example
N/A
### Response
#### Success Response
- **ImmutableMap, V>** - A map where keys are ranges and values are the associated values.
### Response Example
N/A
```
--------------------------------
### com.google.common.primitives.Shorts
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.md
Compatibility status for the com.google.common.primitives.Shorts class.
```APIDOC
## `com.google.common.primitives.Shorts`
- [X] Binary-compatible
- [X] Source-compatible
- [X] Serialization-compatible
| Status | Modifiers | Type | Name | Extends | JDK | Serialization | Compatibility Changes |
|-----------|------------------|-------|----------|------------|-------|---------------------|-----------------------|
| Unchanged | `final` `public` | Class | `Shorts` | [`Object`] | JDK 6 | ![Not serializable] | ![Annotation added] |
#### Annotations
| Status | Annotation | Compatibility Changes |
|--------|--------------------------|-----------------------|
| Added | **[`CheckReturnValue`]** | ![No changes] |
```
--------------------------------
### Standard JAR Comparison with Classpath
Source: https://github.com/siom79/japicmp/blob/master/src/site/markdown/CliTool.md
If the classpath for both versions remains unchanged, you can add the library using the standard -cp argument.
```bash
java -cp japicmp-0.26.1-jar-with-dependencies.jar;otherLibrary.jar japicmp.JApiCmp -n new-version.jar -o old-version.jar
```
--------------------------------
### get (Future, Class)
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.md
Retrieves the result of a Future, throwing a checked exception if the Future completed exceptionally. This method is deprecated.
```APIDOC
## get
### Description
Retrieves the result of a Future, throwing a checked exception if the Future completed exceptionally.
### Method
`static public`
### Generics
`, `
### Type
`Object`
### Method Signature
`get(Future future, Class exceptionClass)`
### Annotations
`@Deprecated`
### Throws
`Exception`
### Compatibility Changes
Annotation deprecated added
```
--------------------------------
### get (Future, long, TimeUnit, Class)
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.md
Retrieves the result of a Future within a specified time, throwing a checked exception if the Future completed exceptionally. This method is deprecated.
```APIDOC
## get
### Description
Retrieves the result of a Future within a specified time, throwing a checked exception if the Future completed exceptionally.
### Method
`static public`
### Generics
`, `
### Type
`Object`
### Method Signature
`get(Future future, long timeout, TimeUnit unit, Class exceptionClass)`
### Annotations
`@Deprecated`
### Throws
`Exception`
### Compatibility Changes
Annotation deprecated added
```
--------------------------------
### com.google.common.primitives.Primitives
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.md
Compatibility status for the com.google.common.primitives.Primitives class.
```APIDOC
## `com.google.common.primitives.Primitives`
- [X] Binary-compatible
- [X] Source-compatible
- [X] Serialization-compatible
| Status | Modifiers | Type | Name | Extends | JDK | Serialization | Compatibility Changes |
|-----------|------------------|-------|--------------|------------|-------|---------------------|-----------------------|
| Unchanged | `final` `public` | Class | `Primitives` | [`Object`] | JDK 6 | ![Not serializable] | ![Annotation added] |
#### Annotations
| Status | Annotation | Compatibility Changes |
|--------|--------------------------|-----------------------|
| Added | **[`CheckReturnValue`]** | ![No changes] |
```
--------------------------------
### Specify Old and New Versions for Comparison
Source: https://github.com/siom79/japicmp/blob/master/src/site/markdown/MavenPlugin.md
Define separate dependencies for old and new versions of a library to compare specific version changes. This is useful when the classpath differs between versions.
```xml
org.apache.commons
commons-math3
3.4
org.apache.commons
commons-math3
3.5
```
--------------------------------
### com.google.common.primitives.UnsignedBytes
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.md
Compatibility status for the com.google.common.primitives.UnsignedBytes class.
```APIDOC
## `com.google.common.primitives.UnsignedBytes`
- [X] Binary-compatible
- [X] Source-compatible
- [X] Serialization-compatible
| Status | Modifiers | Type | Name | Extends | JDK | Serialization | Compatibility Changes |
|-----------|------------------|-------|-----------------|------------|-------|---------------------|-----------------------|
| Unchanged | `final` `public` | Class | `UnsignedBytes` | [`Object`] | JDK 6 | ![Not serializable] | ![No changes] |
```
--------------------------------
### Immediate Futures
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.md
Methods to create ListenableFutures that are already completed.
```APIDOC
## immediateFailedFuture
### Description
Creates a ListenableFuture that is already completed with the given exception.
### Method
`static public ListenableFuture immediateFailedFuture(Throwable throwable)
### Parameters
* **throwable** (Throwable) - The exception to complete the future with.
### Response
#### Success Response (ListenableFuture)
Returns a ListenableFuture that is already failed.
## immediateFuture
### Description
Creates a ListenableFuture that is already completed with the given value.
### Method
`static public ListenableFuture immediateFuture(V value)
### Parameters
* **value** (V) - The value to complete the future with.
### Response
#### Success Response (ListenableFuture)
Returns a ListenableFuture that is already completed with the given value.
```
--------------------------------
### com.google.common.base.Preconditions Methods
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.md
Static public methods available in Preconditions class.
```APIDOC
## compare(long, long)
### Description
Compares two long values.
### Method
static public
### Parameters
- **param1** (long) - Description
- **param2** (long) - Description
### Response
#### Success Response (200)
- **return** (int) - Description
### Request Example
```json
{
"example": "compare(10, 5)"
}
```
### Response Example
```json
{
"example": "1"
}
```
```
```APIDOC
## divide(long, long)
### Description
Divides two long values.
### Method
static public
### Parameters
- **param1** (long) - Description
- **param2** (long) - Description
### Response
#### Success Response (200)
- **return** (long) - Description
### Request Example
```json
{
"example": "divide(10, 5)"
}
```
### Response Example
```json
{
"example": "2"
}
```
```
```APIDOC
## join(String, long...)
### Description
Joins a string with a variable number of long arguments.
### Method
static public
### Parameters
- **param1** (String) - Description
- **param2** (long...) - Description
### Response
#### Success Response (200)
- **return** (String) - Description
### Request Example
```json
{
"example": "join(\"-\", 1, 2, 3)"
}
```
### Response Example
```json
{
"example": "1-2-3"
}
```
```
```APIDOC
## lexicographicalComparator()
### Description
Returns a comparator for lexicographical ordering.
### Method
static public
### Response
#### Success Response (200)
- **return** (Comparator) - Description
```
```APIDOC
## max(long...)
### Description
Returns the maximum of a variable number of long arguments.
### Method
static public
### Parameters
- **param1** (long...) - Description
### Response
#### Success Response (200)
- **return** (long) - Description
### Request Example
```json
{
"example": "max(1, 5, 2)"
}
```
### Response Example
```json
{
"example": "5"
}
```
```
```APIDOC
## min(long...)
### Description
Returns the minimum of a variable number of long arguments.
### Method
static public
### Parameters
- **param1** (long...) - Description
### Response
#### Success Response (200)
- **return** (long) - Description
### Request Example
```json
{
"example": "min(1, 5, 2)"
}
```
### Response Example
```json
{
"example": "1"
}
```
```
```APIDOC
## remainder(long, long)
### Description
Calculates the remainder of a division between two long values.
### Method
static public
### Parameters
- **param1** (long) - Description
- **param2** (long) - Description
### Response
#### Success Response (200)
- **return** (long) - Description
### Request Example
```json
{
"example": "remainder(10, 3)"
}
```
### Response Example
```json
{
"example": "1"
}
```
```
```APIDOC
## toString(long)
### Description
Converts a long value to its string representation.
### Method
static public
### Parameters
- **param1** (long) - Description
### Response
#### Success Response (200)
- **return** (String) - Description
### Request Example
```json
{
"example": "toString(123)"
}
```
### Response Example
```json
{
"example": "123"
}
```
```
```APIDOC
## toString(long, int)
### Description
Converts a long value to its string representation with a specified radix.
### Method
static public
### Parameters
- **param1** (long) - Description
- **param2** (int) - Description
### Response
#### Success Response (200)
- **return** (String) - Description
### Request Example
```json
{
"example": "toString(10, 2)"
}
```
### Response Example
```json
{
"example": "1010"
}
```
```
--------------------------------
### com.google.common.reflect.ClassPath$ResourceInfo Methods
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.md
Methods available in the ResourceInfo inner class.
```APIDOC
## url()
### Description
Returns the URL of the resource.
### Method
final public
### Throws
- NoSuchElementException
### Response
#### Success Response (200)
- **return** (URL) - Description
```
--------------------------------
### com.google.common.primitives.UnsignedBytes
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.html
Documentation for the UnsignedBytes class, including unchanged methods.
```APIDOC
## UnsignedBytes
### Description
Documentation for the UnsignedBytes class.
### Methods
#### Unchanged Methods
- **compare(byte, byte)**: static public int compare(byte, byte)
```
--------------------------------
### com.google.common.primitives.Ints Methods
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.md
Documentation for the static methods available in the Ints class.
```APIDOC
## static public int compare(int, int)
### Description
Compares two integers.
### Method
static public
### Parameters
#### Path Parameters
None
#### Query Parameters
None
#### Request Body
None
### Request Example
None
### Response
#### Success Response (200)
- **return value** (int) - The result of the comparison.
### Response Example
None
```
```APIDOC
## static public int divide(int, int)
### Description
Divides two integers.
### Method
static public
### Parameters
#### Path Parameters
None
#### Query Parameters
None
#### Request Body
None
### Request Example
None
### Response
#### Success Response (200)
- **return value** (int) - The result of the division.
### Response Example
None
```
```APIDOC
## static public String join(String, int...)
### Description
Joins a string with a variable number of integers.
### Method
static public
### Parameters
#### Path Parameters
None
#### Query Parameters
None
#### Request Body
None
### Request Example
None
### Response
#### Success Response (200)
- **return value** (String) - The joined string.
### Response Example
None
```
```APIDOC
## static public Comparator lexicographicalComparator()
### Description
Returns a lexicographical comparator for integer arrays.
### Method
static public
### Parameters
#### Path Parameters
None
#### Query Parameters
None
#### Request Body
None
### Request Example
None
### Response
#### Success Response (200)
- **return value** (Comparator) - The lexicographical comparator.
### Response Example
None
```
```APIDOC
## static public int max(int...)
### Description
Returns the maximum of a variable number of integers.
### Method
static public
### Parameters
#### Path Parameters
None
#### Query Parameters
None
#### Request Body
None
### Request Example
None
### Response
#### Success Response (200)
- **return value** (int) - The maximum integer.
### Response Example
None
```
```APIDOC
## static public int min(int...)
### Description
Returns the minimum of a variable number of integers.
### Method
static public
### Parameters
#### Path Parameters
None
#### Query Parameters
None
#### Request Body
None
### Request Example
None
### Response
#### Success Response (200)
- **return value** (int) - The minimum integer.
### Response Example
None
```
```APIDOC
## static public int remainder(int, int)
### Description
Calculates the remainder of an integer division.
### Method
static public
### Parameters
#### Path Parameters
None
#### Query Parameters
None
#### Request Body
None
### Request Example
None
### Response
#### Success Response (200)
- **return value** (int) - The remainder of the division.
### Response Example
None
```
```APIDOC
## static public long toLong(int)
### Description
Converts an integer to a long.
### Method
static public
### Parameters
#### Path Parameters
None
#### Query Parameters
None
#### Request Body
None
### Request Example
None
### Response
#### Success Response (200)
- **return value** (long) - The long representation of the integer.
### Response Example
None
```
```APIDOC
## static public String toString(int)
### Description
Converts an integer to its string representation.
### Method
static public
### Parameters
#### Path Parameters
None
#### Query Parameters
None
#### Request Body
None
### Request Example
None
### Response
#### Success Response (200)
- **return value** (String) - The string representation of the integer.
### Response Example
None
```
```APIDOC
## static public String toString(int, int)
### Description
Converts an integer to its string representation in a specified radix.
### Method
static public
### Parameters
#### Path Parameters
None
#### Query Parameters
None
#### Request Body
None
### Request Example
None
### Response
#### Success Response (200)
- **return value** (String) - The string representation of the integer in the specified radix.
### Response Example
None
```
--------------------------------
### ListenableFuture Methods
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.html
This section details various methods available for working with ListenableFuture objects in Guava.
```APIDOC
## ListenableFuture Methods
### Description
Provides utility methods for creating and transforming ListenableFuture instances.
### Methods
#### `nonCancellationPropagating(ListenableFuture future)`
Creates a `ListenableFuture` that propagates exceptions but not cancellation from the given future.
#### `successfulAsList(ListenableFuture... futures)`
Returns a `ListenableFuture` that will complete when all of the given futures have completed. The result will be a list containing the results of all futures, in the order they were given.
#### `successfulAsList(Iterable extends ListenableFuture> futures)`
Similar to the varargs version, but accepts an `Iterable` of futures.
#### `transform(ListenableFuture input, AsyncFunction super I, O> function)`
Returns a new `ListenableFuture` that when this `ListenableFuture` completes, will compute its value by passing the result to the given `AsyncFunction`.
#### `transform(ListenableFuture input, AsyncFunction super I, O> function, Executor executor)`
Similar to the above, but specifies an `Executor` to run the `AsyncFunction`.
#### `transformAsync(ListenableFuture input, AsyncFunction super I, O> function)`
Returns a new `ListenableFuture` that when this `ListenableFuture` completes, will compute its value by passing the result to the given `AsyncFunction`.
#### `transformAsync(ListenableFuture input, AsyncFunction super I, O> function, Executor executor)`
Similar to the above, but specifies an `Executor` to run the `AsyncFunction`.
#### `withFallback(ListenableFuture input, FutureFallback fallback)`
Returns a new `ListenableFuture` that will complete with the result of the input future, or if the input future fails, it will attempt to compute its result using the given `FutureFallback`.
#### `withFallback(ListenableFuture input, FutureFallback fallback, Executor executor)`
Similar to the above, but specifies an `Executor` to run the `FutureFallback`.
#### `withTimeout(ListenableFuture delegate, long timeout, TimeUnit unit, ScheduledExecutorService scheduledExecutorService)`
Returns a `ListenableFuture` that will complete with the result of the delegate future, or will time out after the specified duration. If the timeout occurs, the returned future will be cancelled and the `scheduledExecutorService` will be used to schedule the cancellation.
```
--------------------------------
### com.google.common.hash.Hashing Methods
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.md
Documentation for the static methods available in the Hashing class.
```APIDOC
## concatenating(HashFunction, HashFunction, HashFunction...)
### Description
Creates a `HashFunction` that combines multiple hash functions.
### Method
`public static HashFunction concatenating(HashFunction first, HashFunction second, HashFunction... rest)`
```
```APIDOC
## concatenating(Iterable)
### Description
Creates a `HashFunction` that combines multiple hash functions from an iterable.
### Method
`public static HashFunction concatenating(Iterable hashFunctions)`
```
```APIDOC
## sha384()
### Description
Returns a `HashFunction` that computes the SHA-384 hash.
### Method
`public static HashFunction sha384()`
```
--------------------------------
### com.google.common.hash.Hasher Methods
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.md
Documentation for the methods available in the Hasher interface.
```APIDOC
## hash()
### Description
Computes the hash code.
### Method
`public abstract HashCode hash()`
### Annotations
- `CheckReturnValue`
```
```APIDOC
## hashCode()
### Description
Deprecated method for computing the hash code.
### Method
`public abstract int hashCode()`
### Annotations
- `Deprecated`
```
--------------------------------
### Run japicmp from Command Line
Source: https://github.com/siom79/japicmp/blob/master/README.md
Use this command to compare two JAR versions directly from the command line. Ensure the japicmp JAR with dependencies is executable.
```bash
java -jar japicmp-.0-jar-with-dependencies.jar -n new-version.jar -o old-version.jar
```
--------------------------------
### com.google.common.base.Ticker
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.html
Documentation for the Ticker class, including its static method systemTicker.
```APIDOC
## UNCHANGED public abstract class com.google.common.base.Ticker
### Description
Represents a source of time, useful for testing code that depends on time.
### Methods
#### static public com.google.common.base.Ticker systemTicker()
##### Description
Returns a ticker that uses the system clock.
##### Status
UNCHANGED
##### Modifier
static public
##### Type
com.google.common.base.Ticker
##### Line Number
54
```
--------------------------------
### com.google.common.collect.Lists Methods
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.md
Documentation for static methods in the Lists class.
```APIDOC
## `Lists.cartesianProduct`
### Description
Computes the Cartesian product of a list of lists.
### Method
`static List> cartesianProduct(List extends List extends B>> lists)`
`static List> cartesianProduct(List... extends B> lists)`
### Parameters
#### Path Parameters
None
#### Query Parameters
None
#### Request Body
None
### Request Example
None
### Response
#### Success Response (200)
A `List` of `List`s representing the Cartesian product.
#### Response Example
None
```
```APIDOC
## `Lists.reverse`
### Description
Reverses the order of elements in a list.
### Method
`static List reverse(List list)`
### Parameters
#### Path Parameters
None
#### Query Parameters
None
#### Request Body
None
### Request Example
None
### Response
#### Success Response (200)
A new `List` with elements in reverse order.
#### Response Example
None
```
```APIDOC
## `Lists.transform`
### Description
Transforms a list by applying a function to each element.
### Method
`static List transform(List fromList, Function super F, ? extends T> function)`
### Parameters
#### Path Parameters
None
#### Query Parameters
None
#### Request Body
None
### Request Example
None
### Response
#### Success Response (200)
A new `List` containing the transformed elements.
#### Response Example
None
```
--------------------------------
### com.google.common.primitives.UnsignedInteger Methods
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.md
Details the methods of the UnsignedInteger class and their compatibility status.
```APIDOC
## public UnsignedInteger dividedBy(UnsignedInteger)
### Description
Calculates the division of two UnsignedInteger objects.
### Method
public
### Endpoint
N/A
### Parameters
#### Path Parameters
N/A
#### Query Parameters
N/A
#### Request Body
N/A
### Request Example
N/A
### Response
#### Success Response (200)
- **return value** (UnsignedInteger) - The result of the division.
#### Response Example
N/A
```
```APIDOC
## public UnsignedInteger minus(UnsignedInteger)
### Description
Calculates the subtraction of two UnsignedInteger objects.
### Method
public
### Endpoint
N/A
### Parameters
#### Path Parameters
N/A
#### Query Parameters
N/A
#### Request Body
N/A
### Request Example
N/A
### Response
#### Success Response (200)
- **return value** (UnsignedInteger) - The result of the subtraction.
#### Response Example
N/A
```
```APIDOC
## public UnsignedInteger mod(UnsignedInteger)
### Description
Calculates the modulo of two UnsignedInteger objects.
### Method
public
### Endpoint
N/A
### Parameters
#### Path Parameters
N/A
#### Query Parameters
N/A
#### Request Body
N/A
### Request Example
N/A
### Response
#### Success Response (200)
- **return value** (UnsignedInteger) - The result of the modulo operation.
#### Response Example
N/A
```
```APIDOC
## public UnsignedInteger plus(UnsignedInteger)
### Description
Calculates the addition of two UnsignedInteger objects.
### Method
public
### Endpoint
N/A
### Parameters
#### Path Parameters
N/A
#### Query Parameters
N/A
#### Request Body
N/A
### Request Example
N/A
### Response
#### Success Response (200)
- **return value** (UnsignedInteger) - The result of the addition.
#### Response Example
N/A
```
```APIDOC
## public UnsignedInteger times(UnsignedInteger)
### Description
Calculates the multiplication of two UnsignedInteger objects.
### Method
public
### Endpoint
N/A
### Parameters
#### Path Parameters
N/A
#### Query Parameters
N/A
#### Request Body
N/A
### Request Example
N/A
### Response
#### Success Response (200)
- **return value** (UnsignedInteger) - The result of the multiplication.
#### Response Example
N/A
```
--------------------------------
### com.google.common.base.Optional
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.html
This section details changes related to the com.google.common.base.Optional class, including methods like first() and firstMatch().
```APIDOC
## com.google.common.base.Optional
### Description
This class represents an optional value. It may be absent or present.
### Methods
#### first()
- **Description**: Returns the single element contained in this Optional, if present.
- **Return Type**: com.google.common.base.Optional
#### firstMatch(com.google.common.base.Predicate)
- **Description**: Returns the first element in this Optional that satisfies the given predicate, if one exists.
- **Parameters**:
- **predicate** (com.google.common.base.Predicate) - Required - The predicate to test elements against.
- **Return Type**: com.google.common.base.Optional
```
--------------------------------
### com.google.common.collect.ImmutableMultiset
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.html
Documentation for ImmutableMultiset, an immutable multiset implementation.
```APIDOC
## com.google.common.collect.ImmutableMultiset
### Description
An immutable multiset.
### Methods
#### toMultiset()
- **Description**: Returns an ImmutableMultiset containing the elements of this FluentIterable.
- **Return Type**: com.google.common.collect.ImmutableMultiset
```
--------------------------------
### Basic Maven Plugin Configuration
Source: https://github.com/siom79/japicmp/blob/master/src/site/markdown/MavenPlugin.md
Include this configuration in your pom.xml to add the japicmp Maven plugin. It defines the old and new versions for comparison.
```xml
com.github.siom79.japicmp
japicmp-maven-plugin
0.26.1
${project.groupId}
${project.artifactId}
${oldversion}
jar
${project.build.directory}/${project.artifactId}-${project.version}.${project.packaging}
verify
cmp
```
--------------------------------
### java.lang.Object
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.html
Documentation for Object class methods.
```APIDOC
## java.lang.Object
### Description
Base class for all Java objects.
### Methods
#### get(int)
- **Description**: Returns the element at the specified position in this list.
- **Parameters**:
- **index** (int) - Required - The index of the element to return.
- **Return Type**: java.lang.Object
#### toString()
- **Description**: Returns a string representation of the object.
- **Return Type**: java.lang.String
```
--------------------------------
### com.google.common.collect.ComparisonChain
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.html
Documentation for the ComparisonChain class, including a new compare method.
```APIDOC
## MODIFIED public abstract class com.google.common.collect.ComparisonChain
### Description
A comparison chain that allows for chained comparisons of objects.
### Methods
#### final public com.google.common.collect.ComparisonChain compare(java.lang.Boolean, java.lang.Boolean)
##### Description
Compares two Boolean objects.
##### Annotations
* java.lang.Deprecated
* javax.annotation.CheckReturnValue
##### Status
NEW
##### Modifier
final public
##### Type
com.google.common.collect.ComparisonChain
##### Line Number
241
```
--------------------------------
### Run japicmp from Command Line
Source: https://github.com/siom79/japicmp/blob/master/src/site/markdown/index.md
Execute japicmp to compare two JAR files using command-line arguments. Specify the new and old versions of the JARs.
```bash
java -jar japicmp-0.26.1-jar-with-dependencies.jar -n new-version.jar -o old-version.jar
```
--------------------------------
### com.google.common.primitives.SignedBytes
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.md
Compatibility status for the com.google.common.primitives.SignedBytes class.
```APIDOC
## `com.google.common.primitives.SignedBytes`
- [X] Binary-compatible
- [X] Source-compatible
- [X] Serialization-compatible
| Status | Modifiers | Type | Name | Extends | JDK | Serialization | Compatibility Changes |
|-----------|------------------|-------|---------------|------------|-------|---------------------|-----------------------|
| Unchanged | `final` `public` | Class | `SignedBytes` | [`Object`] | JDK 6 | ![Not serializable] | ![Annotation added] |
#### Annotations
| Status | Annotation | Compatibility Changes |
|--------|--------------------------|-----------------------|
| Added | **[`CheckReturnValue`]** | ![No changes] |
```
--------------------------------
### Add External Dependencies for Comparison
Source: https://github.com/siom79/japicmp/blob/master/src/site/markdown/MavenPlugin.md
Specify external library dependencies for comparison when they are not part of the main project's POM. This ensures accurate diffs against libraries like commons-math3.
```xml
org.apache.commons
commons-math3
3.4
```
--------------------------------
### java.lang.String
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.html
Documentation for String class methods.
```APIDOC
## java.lang.String
### Description
Represents a sequence of characters.
### Methods
#### join(com.google.common.base.Joiner)
- **Description**: Joins the elements of this string with the given Joiner.
- **Parameters**:
- **joiner** (com.google.common.base.Joiner) - Required - The Joiner to use for joining.
- **Return Type**: java.lang.String
```
--------------------------------
### com.google.common.base.MoreObjects.ToStringHelper
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.html
Helper class for building `toString` method output.
```APIDOC
## toString()
### Description
Returns the string representation built by this ToStringHelper.
### Method
`public java.lang.String toString()`
```
--------------------------------
### com.google.common.net.HttpHeaders
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.html
Documentation for the HttpHeaders class, including new fields.
```APIDOC
## HttpHeaders
### Description
Documentation for the HttpHeaders class.
### Fields
#### New Fields
- **PING_FROM**: public static final String PING_FROM
- **PING_TO**: public static final String PING_TO
```
--------------------------------
### General Utility Methods
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.html
This section covers common utility methods available for collections and iterables.
```APIDOC
## General Utility Methods
### Description
Common utility methods for collections and iterables.
### Methods
#### contains(java.lang.Object)
- **Description**: Returns true if this collection contains the specified element.
- **Parameters**:
- **element** (java.lang.Object) - Required - The element to check for.
- **Return Type**: boolean
#### isEmpty()
- **Description**: Returns true if this collection contains no elements.
- **Return Type**: boolean
#### size()
- **Description**: Returns the number of elements in this collection.
- **Return Type**: int
#### toArray(java.lang.Class)
- **Description**: Returns an array containing all the elements in this collection in proper sequence (from first to last element); the runtime type of the returned array is that specified by the class argument.
- **Parameters**:
- **componentType** (java.lang.Class) - Required - the runtime type of the desired array
- **Return Type**: java.lang.Object[]
```
--------------------------------
### Maven Plugin Configuration with Post-Analysis Script
Source: https://github.com/siom79/japicmp/blob/master/src/site/markdown/MavenPlugin.md
Configure the japicmp-maven-plugin in your pom.xml to execute a Groovy script after analysis. Ensure the artifact containing the script is added as a dependency.
```xml
com.github.siom79.japicmp
japicmp-maven-plugin
${project.version}
[...]
post-analysis-script.groovy
com.github.siom79.japicmp
post-analysis-script-artifact
${project.version}
```
--------------------------------
### com.google.common.io.ByteSource
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.html
Documentation for the ByteSource class, including new methods.
```APIDOC
## ByteSource
### Description
Documentation for the ByteSource class.
### Methods
#### New Methods
- **sizeIfKnown()**: public com.google.common.base.Optional sizeIfKnown()
```
--------------------------------
### com.google.common.collect.ImmutableList
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.html
Documentation for ImmutableList, an immutable list implementation.
```APIDOC
## com.google.common.collect.ImmutableList
### Description
An immutable list.
### Methods
#### toList()
- **Description**: Returns an ImmutableList containing the elements of this FluentIterable.
- **Return Type**: com.google.common.collect.ImmutableList
#### toSortedList(java.util.Comparator)
- **Description**: Returns an ImmutableList containing the elements of this FluentIterable, sorted according to the specified comparator.
- **Parameters**:
- **comparator** (java.util.Comparator) - Required - The comparator to use for sorting.
- **Return Type**: com.google.common.collect.ImmutableList
```
--------------------------------
### SettableFuture Class
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.html
Documentation for the SettableFuture class, including its new methods.
```APIDOC
## SettableFuture Class
### Description
Represents a `ListenableFuture` whose result can be set asynchronously.
### Methods
#### `setFuture(ListenableFuture> future)`
Sets the result of this `SettableFuture` to be the result of the given `ListenableFuture`. If the given `ListenableFuture` completes with an exception, this `SettableFuture` will complete with the same exception. If this `SettableFuture` has already been set, this method does nothing.
```
--------------------------------
### com.google.common.io.CharSource
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.html
Documentation for the CharSource class, including new methods.
```APIDOC
## CharSource
### Description
Documentation for the CharSource class.
### Methods
#### New Methods
- **length()**: public long length()
- **lengthIfKnown()**: public com.google.common.base.Optional lengthIfKnown()
```
--------------------------------
### Throwable Utility Methods
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.md
Provides static utility methods for working with Throwables, including retrieving causal chains and stack traces.
```APIDOC
## `Throwable` Utility Methods
### Description
Static utility methods for handling `Throwable` objects.
### Methods
#### `getCausalChain(Throwable)`
- **Type**: `List`
- **Modifiers**: `static public`
- **Description**: Retrieves the causal chain of a `Throwable`.
#### `getRootCause(Throwable)`
- **Type**: `Throwable`
- **Modifiers**: `static public`
- **Description**: Retrieves the root cause of a `Throwable`.
#### `getStackTraceAsString(Throwable)`
- **Type**: `String`
- **Modifiers**: `static public`
- **Description**: Converts a `Throwable`'s stack trace to a String.
#### `lazyStackTrace(Throwable)`
- **Type**: `List`
- **Modifiers**: `static public`
- **Description**: Lazily retrieves the stack trace of a `Throwable`.
#### `lazyStackTraceIsLazy()`
- **Type**: `boolean`
- **Modifiers**: `static public`
- **Description**: Checks if the stack trace retrieval is lazy.
```
--------------------------------
### allAsList (Varargs)
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.md
Combines multiple ListenableFutures into a single ListenableFuture that returns a list of all results. This method is unchanged.
```APIDOC
## allAsList
### Description
Combines multiple ListenableFutures into a single ListenableFuture that returns a list of all results.
### Method
`static public`
### Generics
``
### Type
`ListenableFuture>`
### Method Signature
`allAsList(ListenableFuture... extends V> futures)`
### Annotations
`@CheckReturnValue`
`@SafeVarargs`
### Compatibility Changes
Annotation added
```
--------------------------------
### com.google.common.base.VerifyException
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.html
Documentation for the VerifyException class, noting changes in its serialVersionUID and constructors.
```APIDOC
## MODIFIED (Serializable incompatible(!): default serialVersionUID changed) public class com.google.common.base.VerifyException
### Description
An exception thrown when a verification fails.
### Constructors
#### public VerifyException(java.lang.String, java.lang.Throwable)
##### Description
Constructs a new VerifyException with the specified detail message and cause.
##### Status
NEW
##### Modifier
public
##### Line Number
57
#### public VerifyException(java.lang.Throwable)
##### Description
Constructs a new VerifyException with the specified cause.
##### Status
NEW
##### Modifier
public
##### Line Number
47
```
--------------------------------
### com.google.common.base.Joiner
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.html
The com.google.common.base.Joiner class is unchanged.
```APIDOC
## UNCHANGED public class com.google.common.base.Joiner
### Methods
| Status | Modifier | Type | Method |
|-----------|----------|--------|--------|
| UNCHANGED | final public | | |
```
--------------------------------
### com.google.common.net.MediaType
Source: https://github.com/siom79/japicmp/blob/master/doc/japicmp_guava.html
Documentation for the MediaType class, including new constants.
```APIDOC
## MediaType
### Description
Documentation for the MediaType class.
### Fields
#### New Fields
- **APPLE_PASSBOOK**: public static final MediaType APPLE_PASSBOOK
- **DART_UTF_8**: public static final MediaType DART_UTF_8
- **MANIFEST_JSON_UTF_8**: public static final MediaType MANIFEST_JSON_UTF_8
```