JUNG v2.1.1 Release Notes

Release Date: 2016-09-07 // almost 8 years ago
  • πŸ›  This is primarily a bugfix release based on v2.1; with one minor exception there are no new features here.

    πŸ› Bug fixes:

    • πŸ›  Barabasi-Albert random graph generator fixed to work properly for undirected graphs (#55)
    • BasicVisualizationServer now correctly initializes its PluggableRendererContext for all constructors (#45)
    • πŸ›  BasicEdgeLabelRenderer (and elsewhere) fixed to not provide a null graph to the parallel edge indexer (#47, #50)
    • πŸ›  Lattice2DGenerator.getRow() logic fixed (#54)
    • πŸ›  OrderedKAryTree.getSource() bug fixed (#56)
    • Maven dependencies cleaned up (#57, #62)

    πŸ†• New feature:

    • GraphMLReader2 now has an InputStream constructor, which allows it to handle different character sets (#46, discussion in #47)

    πŸ›  Thanks to those who spotted, reported, and provided fixes for these bugs, including @dominic-jones, @takanori-ugai, @rondicus, @JMMarchant, @shatu, and @mletenay.

Previous changes from v2.1

  • Highlights:

    • πŸš€ GitHub is now the new home of JUNG. You can continue to find versions of JUNG prior to 2.1 at SourceForge, but no new versions will be released there.
      Now that it is easier to review
    • The commons-collections-generics library dependency has been replaced with Guava v19.
      This change is not backwards-compatible with existing code. It was necessary because of a security issue, but we also decided that Guava was a much better
      πŸš€ library to depend on in future for a variety of reasons (some of which will become apparent in future JUNG releases).
    • As of this version, JUNG now depends on Java v1.6 (up from 1.5).
    • 🚚 The matrix-related code has been removed, and with it the dependency on Colt.
    • 🚚 The (now unnecessary) woodstox dependency has been removed.
    • πŸ— JUNG now uses Travis to ensure that new code builds correctly before it is merged into the master branch.
    • Everyone's favorite trivial change: the Maven artifact ID for JUNG is now jung, not jung2.

    πŸš€ Many thanks to @cgruber for his help in getting the release and testing machinery in place.

    In terms of interfaces, the replacement of commons-collections with Guava has the following user-visible effects:

    • Predicate -> Predicate
    • Factory -> Supplier
    • Transformer -> Function

    There are also (of course) many internal changes related to this replacement, e.g.

    • ChainedTransformer -> Functions.compose()
    • Buffer, UnboundedFifoBuffer -> Queue, LinkedList
    • BidiMap -> BiMap

    (Note that some of the method signatures on these interfaces are different, e.g., Predicate.evaluate() -> Predicate.apply().)

    πŸ› Bug fixes:

    • πŸ›  Fixed path problem in TestGraphMLReader.java


    • Replaced uses of assert with Preconditions checks.
    • ⚑️ Updated a lot of Javadoc to be standards-compliant with the latest formatter expectations.
    • βœ‚ Removed some dead code.
    • Replaced (almost all) uses of MapMaker with LoadingCache/CacheBuilder/CacheLoader
    • StructurallyEquivalent: renamed canPossiblyCompare() to canBeEquivalent
    • βœ… PajekNetIOTest: fixed a bug (improper use of RandomLocationTransformer)
    • 🚚 `MixedRandomGraphGenerator: removed unused β€˜parallel’ param
    • AggregateLayout: made isLocked() and done() more efficient (early exit)
    • 🚚 DAGLayout: setRoot(): removed unused β€˜g’ param
    • MinimumSpanningForest: converted internal Map to Function
    • 🚚 ConstantMap: no longer used, removed
    • DiscreteDistribution: replaced checkLengths() by Preconditions.checkArgument() calls
    • 🚚 MapBinaryHeap: removed deprecated pop() method
    • βœ… WeakComponentClustererTest, TestKStepMarkov, TestBetweennessCentrality, TestImageShaper: commented out println()
      βœ… (note: these tests are not actually testing anything :P)
    • πŸ”€ TreeUtils: removed commented-out mergeForests(), addChildrenToForest()
    • 🚚 ToStringLabeller(): removed unnecessary type parameter
    • 🚚 DefaultVertexIconTransfomer: no longer needed, removed
    • πŸ‘€ PluggableRendererDemo: removed unnecessary/unused guacamole in Seed{Draw,Fill}Color inner classes
    • πŸ”¨ FourPassImageShaper: mostly refactored into ImageShapeUtils
    • 🚚 ClassicPickSupport: removed, no longer needed
    • 🚚 SpatialRectangle: removed, not used
    • πŸ–¨ commented out a few System.out.println instances
    • βœ‚ removed a few unused parameters
    • πŸ›  fixed a lot of compilation warnings (missing generic types, etc.)