JanusGraph / JanusGraph/janusgraph
Remove Guava dependency
- Dominant language
- Java
- Stars
- 5.8k
- Forks
- 1.2k
- Avg merge
- 13h 53m
- Merged PRs (30d)
- 6
Description
Guava is often binary incompatible with previous versions that is why it produces some troubles when some dependencies depend on one guava version and some dependencies on another guava version.
The issue can be split to the next subtasks:
**Direct guava usage removal**:
- Move all usage of guava to Java 8 Streams API or direct Java code. (Partially done in #2098 and #3513)
- Move `janusgraph-cql/src/main/java/org/janusgraph/hadoop` to a separate module because it uses `CqlBinaryRecordReader` which depends on DataStax Cassandra driver 3.x which depends on guava.
**Dependencies update**:
- ~~Resolve #1510 (Cassandra driver `4.x` doesn't depend on guava)~~ (Done #2169)
- ~~Resolve #1737 (Cassandra `2.x` depends on guava)~~ (Done #2095)
- ~~Move to `reflections8`~~ (Done #2029)
- ~~Remove `airlift:airline`~~ (Done #1800)
**Fixing dependencies (should be fixed not on our side but on libraries which we depend on)**:
- remove guava from `org.apache.tinkerpop:hadoop-gremlin 3.6.x`
- ~~remove guava from `org.apache.hadoop:hadoop-common 3.x`~~ (hadoop-common shaded Guava)
- ~~remove guava from `org.apache.hadoop:hadoop-hdfs 3.x`~~ (hadoop-hdfs doesn't depend on Guava anymore)
- remove guava from `org.apache.solr:solr-test-framework 8.x`
Contributor guide
Research direction
Review the remaining direct usage in janusgraph-cql/src/main/java/org/janusgraph/hadoop and its CqlBinaryRecordReader dependency first. Then inspect the listed hadoop-gremlin and solr-test-framework dependencies. Done means the remaining Guava usage and dependency sources identified in this issue have been addressed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- databases
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100