X Tutup
Skip to content

Either restore guava or remove use of Optional #151

@flandr

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

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

      X Tutup