41 lines
1.3 KiB
Prolog
41 lines
1.3 KiB
Prolog
# Futures.getChecked, in both of its variants, is incompatible with proguard.
|
|
|
|
# Used by AtomicReferenceFieldUpdater and sun.misc.Unsafe
|
|
-keepclassmembers class com.google.common.util.concurrent.AbstractFuture** {
|
|
*** waiters;
|
|
*** value;
|
|
*** listeners;
|
|
*** thread;
|
|
*** next;
|
|
}
|
|
-keepclassmembers class com.google.common.util.concurrent.AtomicDouble {
|
|
*** value;
|
|
}
|
|
-keepclassmembers class com.google.common.util.concurrent.AggregateFutureState {
|
|
*** remaining;
|
|
*** seenExceptions;
|
|
}
|
|
|
|
# Since Unsafe is using the field offsets of these inner classes, we don't want
|
|
# to have class merging or similar tricks applied to these classes and their
|
|
# fields. It's safe to allow obfuscation, since the by-name references are
|
|
# already preserved in the -keep statement above.
|
|
-keep,allowshrinking,allowobfuscation class com.google.common.util.concurrent.AbstractFuture** {
|
|
<fields>;
|
|
}
|
|
|
|
# AbstractFuture uses this
|
|
-dontwarn sun.misc.Unsafe
|
|
|
|
# MoreExecutors references AppEngine
|
|
-dontnote com.google.appengine.api.ThreadManager
|
|
-keep class com.google.appengine.api.ThreadManager {
|
|
static *** currentRequestThreadFactory(...);
|
|
}
|
|
-dontnote com.google.apphosting.api.ApiProxy
|
|
-keep class com.google.apphosting.api.ApiProxy {
|
|
static *** getCurrentEnvironment (...);
|
|
}
|
|
|
|
-dontwarn java.lang.SafeVarargs
|