Since commit f186971, this project has been using the repackaged Guava classes provided by Jersey. Unfortunately, many classes therin have been ProGuard-ified away, in particular the Optional class. One can see this by dumping the jar contents:
continuity:nater:~/Downloads$ jar tf jersey-guava-2.11.jar | grep Optional
jersey/repackaged/com/google/common/base/Optional.class
continuity:nater:~/Downloads$ javap -cp jersey-guava-2.11.jar jersey/repackaged/com/google/common/base/Optional
Compiled from "Optional.java"
public abstract class jersey.repackaged.com.google.common.base.Optional<T> implements java.io.Serializable {
public static <T extends java/lang/Object> jersey.repackaged.com.google.common.base.Optional<T> absent();
public static <T extends java/lang/Object> jersey.repackaged.com.google.common.base.Optional<T> of(T);
public static <T extends java/lang/Object> jersey.repackaged.com.google.common.base.Optional<T> fromNullable(T);
jersey.repackaged.com.google.common.base.Optional();
public abstract T orNull();
}
Since public interfaces of this package return optional, external consumers can touch these mauled classes and get compilation errors. Either the Guava dependency needs to be re-added (as discussed in #140) or Guava classes cannot be used in public interfaces (or really at all, if they're not in the Jersey repackaged jar).
Since commit f186971, this project has been using the repackaged Guava classes provided by Jersey. Unfortunately, many classes therin have been ProGuard-ified away, in particular the Optional class. One can see this by dumping the jar contents:
Since public interfaces of this package return optional, external consumers can touch these mauled classes and get compilation errors. Either the Guava dependency needs to be re-added (as discussed in #140) or Guava classes cannot be used in public interfaces (or really at all, if they're not in the Jersey repackaged jar).