Java Network Analyzer (JNA) provides a collection of graph theory and social network analysis algorithms. These algorithms are implemented on mathematical graphs using the JGraphT library.
Augmented BFS, DFS and Dijkstra algorithms are used to compute:
- Betweenness centrality
 - Closeness centrality
 - Strahler stream order (for mathematical trees)
 
The underlying graph may be directed, edge-reversed or undirected, and edges may or may not have weights.
You can include JNA in your project thanks to Sonatype repository.
Check https://search.maven.org/artifact/org.orbisgis/java-network-analyzer/0.4.0/bundle
To use the current snapshot add in the pom
<repository>
  <id>orbisgis-snapshot</id>
  <name>OrbisGIS sonatype snapshot repository</name>
  <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
</repository>and the following dependency
<dependency>
    <groupId>org.orbisgis</groupId>
    <version>0.5.1-SNAPSHOT</version>  
    <artifactId>java-network-analyzer</artifactId>
</dependency>