Robottinosino
Robottinosino

Reputation: 10882

guava-testlib future version JAR

Today, the current Guava version seems to be:

release is 13.0.1, August 3, 2012.

but I checked out the source off of:

git clone https://code.google.com/p/guava-libraries/

and got intrigued by what seems like an extremely useful testing tool to me:

http://code.google.com/p/guava-libraries/source/browse/guava-testlib/src/com/google/common/testing/NullPointerTester.java

I am trying to verify that all of my methods detest null just as much as Doug Lea ( http://gee.cs.oswego.edu/dl/html/vita.html ) seems to do, unless Joshua Bloch misquotes him ( http://www.youtube.com/watch?v=ZeO_J2OcHYM#t=26m35s ) in being "null-hostile".

Anyway, NullPointerTester.java seems to be just perfect so I am trying to build it into my project.

Following the dependencies (NullPointerTester -> Invokable<?, ?>, -> ... for example) is tedious as I run into classes that are @since 14.0, basically belong to a future version.

What's the best way to build a self-contained JAR of the next/future version of Guava, with all dependencies being taken care of for me? Note: the sources seem to be "all" on git...


You can stop reading here.

I can't wait to be doing stuff like this, which is really cool I think:

Note: what's missing are "security checks", as in "if the constructor has been made private, check that I cannot reflect-invoke it anyway...

If I were a better coder I'd contribute, but this is all I can do and it's very poor, although the intent should be clear?

static boolean isDefaultConstructorDisabled(Class<?> type) {
  boolean isDefaultConstructorDisabled = false;
  Constructor<?>[] declaredConstructors = type.getDeclaredConstructors();
  Constructor<?> defaultContructor = declaredConstructors[0];
  defaultContructor.setAccessible(true);
  try {
    defaultContructor.newInstance();
  } catch (InvocationTargetException invocationTargetException) {
    Throwable cause = invocationTargetException.getCause();
    if (cause instanceof UnsupportedOperationException
        && cause.getMessage().contains(
            ErrorMessage.DefaultConstructor.DISABLED)) {
      isDefaultConstructorDisabled = true;
    }
  } catch (Throwable throwable) {
    throwable.printStackTrace();
  }
  return isDefaultConstructorDisabled;
}

Upvotes: 2

Views: 485

Answers (2)

Louis Wasserman
Louis Wasserman

Reputation: 198321

If you cloned the whole Guava repository, then the v13.0.1 tag will have guava-testlib, and specifically NullPointerTester, as of 13.0.1, which should work -- no?

Upvotes: 1

Michael Hixson
Michael Hixson

Reputation: 1271

Did you try looking in Maven?

http://search.maven.org/#browse%7C-723200679

I think guava-testlib is what contains NullPointerTester. You could grab the 13.0.1 jar.

http://search.maven.org/#browse%7C1590928164

Upvotes: 2

Related Questions