Skip to content

Either restore guava or remove use of Optional #151

Description

@flandr

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).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions