| { | |
| "configuration_format_version": 3, | |
| "group_id" : "com.tools.android", | |
| "artifact_id" : "desugar_jdk_libs", | |
| "version": "1.1.9", | |
| "required_compilation_api_level": 26, | |
| "synthesized_library_classes_package_prefix": "j$.", | |
| "support_all_callbacks_from_library": true, | |
| "common_flags": [ | |
| { | |
| "api_level_below_or_equal": 25, | |
| "wrapper_conversion": [ | |
| "java.time.Clock", | |
| "java.time.temporal.ChronoUnit" | |
| ] | |
| }, | |
| { | |
| "api_level_below_or_equal": 23, | |
| "wrapper_conversion": [ | |
| "java.util.PrimitiveIterator$OfDouble", | |
| "java.util.PrimitiveIterator$OfInt", | |
| "java.util.PrimitiveIterator$OfLong", | |
| "java.util.Spliterator", | |
| "java.util.Spliterator$OfDouble", | |
| "java.util.Spliterator$OfInt", | |
| "java.util.Spliterator$OfLong", | |
| "java.util.Spliterator$OfPrimitive", | |
| "java.util.function.BiConsumer", | |
| "java.util.function.BiFunction", | |
| "java.util.function.BiPredicate", | |
| "java.util.function.BinaryOperator", | |
| "java.util.function.Consumer", | |
| "java.util.function.DoubleBinaryOperator", | |
| "java.util.function.DoubleConsumer", | |
| "java.util.function.DoubleFunction", | |
| "java.util.function.DoublePredicate", | |
| "java.util.function.DoubleToIntFunction", | |
| "java.util.function.DoubleToLongFunction", | |
| "java.util.function.DoubleUnaryOperator", | |
| "java.util.function.Function", | |
| "java.util.function.IntBinaryOperator", | |
| "java.util.function.IntConsumer", | |
| "java.util.function.IntFunction", | |
| "java.util.function.IntPredicate", | |
| "java.util.function.IntToDoubleFunction", | |
| "java.util.function.IntToLongFunction", | |
| "java.util.function.IntUnaryOperator", | |
| "java.util.function.LongBinaryOperator", | |
| "java.util.function.LongConsumer", | |
| "java.util.function.LongFunction", | |
| "java.util.function.LongPredicate", | |
| "java.util.function.LongToDoubleFunction", | |
| "java.util.function.LongToIntFunction", | |
| "java.util.function.LongUnaryOperator", | |
| "java.util.function.ObjDoubleConsumer", | |
| "java.util.function.ObjIntConsumer", | |
| "java.util.function.ObjLongConsumer", | |
| "java.util.function.Predicate", | |
| "java.util.function.Supplier", | |
| "java.util.function.ToDoubleFunction", | |
| "java.util.function.ToIntFunction", | |
| "java.util.function.ToLongFunction", | |
| "java.util.function.UnaryOperator", | |
| "java.util.stream.BaseStream", | |
| "java.util.stream.Collector", | |
| "java.util.stream.DoubleStream", | |
| "java.util.stream.IntStream", | |
| "java.util.stream.LongStream", | |
| "java.util.stream.Stream" | |
| ] | |
| } | |
| ], | |
| "library_flags": [ | |
| { | |
| "api_level_below_or_equal": 25, | |
| "rewrite_prefix": { | |
| "j$.time.": "java.time.", | |
| "java.time.": "j$.time.", | |
| "java.util.Desugar": "j$.util.Desugar" | |
| }, | |
| "retarget_lib_member": { | |
| "java.util.Date#toInstant": "java.util.DesugarDate", | |
| "java.util.GregorianCalendar#toZonedDateTime": "java.util.DesugarGregorianCalendar", | |
| "java.util.TimeZone#toZoneId": "java.util.DesugarTimeZone" | |
| }, | |
| "custom_conversion": { | |
| "java.time.Duration": "java.time.TimeConversions", | |
| "java.time.Instant": "java.time.TimeConversions", | |
| "java.time.LocalDate": "java.time.TimeConversions", | |
| "java.time.LocalDateTime": "java.time.TimeConversions", | |
| "java.time.LocalTime": "java.time.TimeConversions", | |
| "java.time.MonthDay": "java.time.TimeConversions", | |
| "java.time.Period": "java.time.TimeConversions", | |
| "java.time.ZoneId": "java.time.TimeConversions", | |
| "java.time.ZonedDateTime": "java.time.TimeConversions", | |
| "java.time.ZoneOffset": "java.time.TimeConversions" | |
| } | |
| }, | |
| { | |
| "api_level_below_or_equal": 23, | |
| "rewrite_prefix": { | |
| "j$.util.Optional": "java.util.Optional", | |
| "j$.util.LongSummaryStatistics": "java.util.LongSummaryStatistics", | |
| "j$.util.IntSummaryStatistics": "java.util.IntSummaryStatistics", | |
| "j$.util.DoubleSummaryStatistics": "java.util.DoubleSummaryStatistics", | |
| "java.util.stream.": "j$.util.stream.", | |
| "java.util.function.": "j$.util.function.", | |
| "java.util.Comparators": "j$.util.Comparators", | |
| "java.util.DoubleSummaryStatistics": "j$.util.DoubleSummaryStatistics", | |
| "java.util.IntSummaryStatistics": "j$.util.IntSummaryStatistics", | |
| "java.util.LongSummaryStatistics": "j$.util.LongSummaryStatistics", | |
| "java.util.Objects": "j$.util.Objects", | |
| "java.util.Optional": "j$.util.Optional", | |
| "java.util.PrimitiveIterator": "j$.util.PrimitiveIterator", | |
| "java.util.SortedSet$1": "j$.util.SortedSet$1", | |
| "java.util.Spliterator": "j$.util.Spliterator", | |
| "java.util.StringJoiner": "j$.util.StringJoiner", | |
| "java.util.Tripwire": "j$.util.Tripwire", | |
| "java.util.concurrent.DesugarUnsafe": "j$.util.concurrent.DesugarUnsafe", | |
| "java.util.concurrent.ThreadLocalRandom": "j$.util.concurrent.ThreadLocalRandom", | |
| "java.util.concurrent.atomic.DesugarAtomic": "j$.util.concurrent.atomic.DesugarAtomic", | |
| "java.util.concurrent.ConcurrentHashMap": "j$.util.concurrent.ConcurrentHashMap" | |
| }, | |
| "retarget_lib_member": { | |
| "java.util.Arrays#stream": "java.util.DesugarArrays", | |
| "java.util.Arrays#spliterator": "java.util.DesugarArrays", | |
| "java.util.LinkedHashSet#spliterator": "java.util.DesugarLinkedHashSet" | |
| }, | |
| "dont_rewrite": [ | |
| "java.util.Iterator#remove" | |
| ], | |
| "emulate_interface": { | |
| "java.lang.Iterable": "j$.lang.Iterable", | |
| "java.util.Map$Entry": "j$.util.Map$Entry", | |
| "java.util.Collection": "j$.util.Collection", | |
| "java.util.Map": "j$.util.Map", | |
| "java.util.Iterator": "j$.util.Iterator", | |
| "java.util.Comparator": "j$.util.Comparator", | |
| "java.util.List": "j$.util.List", | |
| "java.util.SortedSet": "j$.util.SortedSet", | |
| "java.util.Set": "j$.util.Set", | |
| "java.util.concurrent.ConcurrentMap": "j$.util.concurrent.ConcurrentMap" | |
| }, | |
| "custom_conversion": { | |
| "java.util.Optional": "java.util.OptionalConversions", | |
| "java.util.OptionalDouble": "java.util.OptionalConversions", | |
| "java.util.OptionalInt": "java.util.OptionalConversions", | |
| "java.util.OptionalLong": "java.util.OptionalConversions", | |
| "java.util.LongSummaryStatistics": "java.util.LongSummaryStatisticsConversions", | |
| "java.util.IntSummaryStatistics": "java.util.IntSummaryStatisticsConversions", | |
| "java.util.DoubleSummaryStatistics": "java.util.DoubleSummaryStatisticsConversions" | |
| } | |
| } | |
| ], | |
| "program_flags": [ | |
| { | |
| "api_level_below_or_equal": 25, | |
| "rewrite_prefix": { | |
| "java.time.": "j$.time.", | |
| "java.util.Desugar": "j$.util.Desugar" | |
| }, | |
| "retarget_lib_member": { | |
| "java.util.Calendar#toInstant": "java.util.DesugarCalendar", | |
| "java.util.Date#from": "java.util.DesugarDate", | |
| "java.util.Date#toInstant": "java.util.DesugarDate", | |
| "java.util.GregorianCalendar#from": "java.util.DesugarGregorianCalendar", | |
| "java.util.GregorianCalendar#toZonedDateTime": "java.util.DesugarGregorianCalendar", | |
| "java.util.TimeZone#getTimeZone": "java.util.DesugarTimeZone", | |
| "java.util.TimeZone#toZoneId": "java.util.DesugarTimeZone" | |
| }, | |
| "custom_conversion": { | |
| "java.time.Duration": "java.time.TimeConversions", | |
| "java.time.Instant": "java.time.TimeConversions", | |
| "java.time.LocalDate": "java.time.TimeConversions", | |
| "java.time.LocalDateTime": "java.time.TimeConversions", | |
| "java.time.LocalTime": "java.time.TimeConversions", | |
| "java.time.MonthDay": "java.time.TimeConversions", | |
| "java.time.Period": "java.time.TimeConversions", | |
| "java.time.ZoneId": "java.time.TimeConversions", | |
| "java.time.ZonedDateTime": "java.time.TimeConversions", | |
| "java.time.ZoneOffset": "java.time.TimeConversions" | |
| } | |
| }, | |
| { | |
| "api_level_below_or_equal": 23, | |
| "rewrite_prefix": { | |
| "java.util.stream.": "j$.util.stream.", | |
| "java.util.function.": "j$.util.function.", | |
| "java.util.DoubleSummaryStatistics": "j$.util.DoubleSummaryStatistics", | |
| "java.util.IntSummaryStatistics": "j$.util.IntSummaryStatistics", | |
| "java.util.LongSummaryStatistics": "j$.util.LongSummaryStatistics", | |
| "java.util.Optional": "j$.util.Optional", | |
| "java.util.PrimitiveIterator": "j$.util.PrimitiveIterator", | |
| "java.util.Spliterator": "j$.util.Spliterator", | |
| "java.util.StringJoiner": "j$.util.StringJoiner", | |
| "java.util.concurrent.ThreadLocalRandom": "j$.util.concurrent.ThreadLocalRandom", | |
| "java.util.concurrent.atomic.DesugarAtomic": "j$.util.concurrent.atomic.DesugarAtomic", | |
| "java.util.concurrent.ConcurrentHashMap": "j$.util.concurrent.ConcurrentHashMap" | |
| }, | |
| "retarget_lib_member": { | |
| "java.util.Arrays#stream": "java.util.DesugarArrays", | |
| "java.util.Arrays#spliterator": "java.util.DesugarArrays", | |
| "java.util.LinkedHashSet#spliterator": "java.util.DesugarLinkedHashSet", | |
| "java.util.concurrent.atomic.AtomicInteger#getAndUpdate": "java.util.concurrent.atomic.DesugarAtomicInteger", | |
| "java.util.concurrent.atomic.AtomicInteger#updateAndGet": "java.util.concurrent.atomic.DesugarAtomicInteger", | |
| "java.util.concurrent.atomic.AtomicInteger#getAndAccumulate": "java.util.concurrent.atomic.DesugarAtomicInteger", | |
| "java.util.concurrent.atomic.AtomicInteger#accumulateAndGet": "java.util.concurrent.atomic.DesugarAtomicInteger", | |
| "java.util.concurrent.atomic.AtomicLong#getAndUpdate": "java.util.concurrent.atomic.DesugarAtomicLong", | |
| "java.util.concurrent.atomic.AtomicLong#updateAndGet": "java.util.concurrent.atomic.DesugarAtomicLong", | |
| "java.util.concurrent.atomic.AtomicLong#getAndAccumulate": "java.util.concurrent.atomic.DesugarAtomicLong", | |
| "java.util.concurrent.atomic.AtomicLong#accumulateAndGet": "java.util.concurrent.atomic.DesugarAtomicLong", | |
| "java.util.concurrent.atomic.AtomicReference#getAndUpdate": "java.util.concurrent.atomic.DesugarAtomicReference", | |
| "java.util.concurrent.atomic.AtomicReference#updateAndGet": "java.util.concurrent.atomic.DesugarAtomicReference", | |
| "java.util.concurrent.atomic.AtomicReference#getAndAccumulate": "java.util.concurrent.atomic.DesugarAtomicReference", | |
| "java.util.concurrent.atomic.AtomicReference#accumulateAndGet": "java.util.concurrent.atomic.DesugarAtomicReference", | |
| "java.util.Collections#synchronizedMap": "java.util.DesugarCollections", | |
| "java.util.Collections#synchronizedSortedMap": "java.util.DesugarCollections" | |
| }, | |
| "dont_rewrite": [ | |
| "java.util.Iterator#remove" | |
| ], | |
| "emulate_interface": { | |
| "java.lang.Iterable": "j$.lang.Iterable", | |
| "java.util.Map$Entry": "j$.util.Map$Entry", | |
| "java.util.Collection": "j$.util.Collection", | |
| "java.util.Map": "j$.util.Map", | |
| "java.util.Iterator": "j$.util.Iterator", | |
| "java.util.Comparator": "j$.util.Comparator", | |
| "java.util.List": "j$.util.List", | |
| "java.util.SortedSet": "j$.util.SortedSet", | |
| "java.util.Set": "j$.util.Set", | |
| "java.util.concurrent.ConcurrentMap": "j$.util.concurrent.ConcurrentMap" | |
| }, | |
| "custom_conversion": { | |
| "java.util.Optional": "java.util.OptionalConversions", | |
| "java.util.OptionalDouble": "java.util.OptionalConversions", | |
| "java.util.OptionalInt": "java.util.OptionalConversions", | |
| "java.util.OptionalLong": "java.util.OptionalConversions", | |
| "java.util.LongSummaryStatistics": "java.util.LongSummaryStatisticsConversions", | |
| "java.util.IntSummaryStatistics": "java.util.IntSummaryStatisticsConversions", | |
| "java.util.DoubleSummaryStatistics": "java.util.DoubleSummaryStatisticsConversions" | |
| } | |
| } | |
| ], | |
| "shrinker_config": [ | |
| "-keepclassmembers class j$.** extends java.io.Serializable { void <init>(); static final long serialVersionUID; java.lang.Object readResolve(); java.lang.Object writeReplace(); private void readObject(java.io.ObjectInputStream); private void writeObject(java.io.ObjectOutputStream); private void readObjectNoData(); }", | |
| "-keepclassmembers class j$.util.concurrent.ConcurrentHashMap$TreeBin { int lockState; }", | |
| "-keepclassmembers class j$.util.concurrent.ConcurrentHashMap { int sizeCtl; int transferIndex; long baseCount; int cellsBusy; }", | |
| "-keepclassmembers class j$.util.concurrent.ConcurrentHashMap { private static final java.io.ObjectStreamField[] serialPersistentFields; }", | |
| "-keepclassmembers class j$.util.concurrent.ConcurrentHashMap$CounterCell { long value; }", | |
| "-keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); public static final !synthetic <fields>; }", | |
| "-keeppackagenames j$.**", | |
| "-keepclassmembers class j$.util.IntSummaryStatistics { long count; long sum; int min; int max; }", | |
| "-keepclassmembers class j$.util.LongSummaryStatistics { long count; long sum; long min; long max; }", | |
| "-keepclassmembers class j$.util.DoubleSummaryStatistics { long count; double sum; double min; double max; }", | |
| "-keepattributes Signature", | |
| "-keepattributes EnclosingMethod", | |
| "-keepattributes InnerClasses", | |
| "-dontwarn sun.misc.Unsafe" | |
| ] | |
| } |