incubator-graphar icon indicating copy to clipboard operation
incubator-graphar copied to clipboard

[Feat][Java] Recording gap between C++ and Java library

Open Thespica opened this issue 2 years ago • 4 comments

Is your feature request related to a problem? Please describe. Now, our Java library rely on C++ library. But with iteration of C++ library, there are some gap between those two library.

Recording these gap will help Java developers to fit these changes.

Recording tamplate

# Essentially describing the main change of the feature in C++

More detals.

---

- Is compatible with Java SDK now: yes/no
- The earliest released(or to be released) C++ library's version with this feature: v x.x.x
- Related PR: 
- [ ] Mark as implemented

Thespica avatar Nov 04 '23 12:11 Thespica

Support filter push down

See PR.


  • Is compatible with Java SDK now: yes
  • The earliest released(or to be released) C++ library's version with this feature: v 0.7.0
  • Related PR: #178
  • [ ] Mark as implemented

Thespica avatar Nov 04 '23 12:11 Thespica

Use inherit to implement EdgesCollection

To fit this change:

  • Remove 4 supper classes of EdgesCollection;
  • Remove create function in EdgesCollection;
  • Write a new factory function in util/GrapharStaticFunctions.java to create EdgesCollection, which maps ConstructEdgesCollection in C++;
  • Add annotations for EdgesCollection:
    • For class: @FFIGen @FFITypeAlias @CXXHead
    • For return objects: @CXXReference or @CXXValue
  • Modify related usage in test.

  • Is compatible with Java SDK now: no
  • The earliest released(or to be released) C++ library's version with this feature: v 0.10.0
  • Related PR: #238
  • [x] Mark as implemented

Thespica avatar Nov 04 '23 12:11 Thespica

Add internal id column to vertex payload file

Remove one function and modify usage in test


  • Is compatible with Java SDK now: no
  • The earliest released(or to be released) C++ library's version with this feature: v 0.10.0
  • Related PR: #264
  • [x] Mark as implemented

Thespica avatar Nov 11 '23 12:11 Thespica

Refactor the C++ SDK with forward declaration and shared ptr

The main point that may affect Java SDK is using std::shard_ptr to manage info classes, thus the usage and parameters about info classes should have corresponding changes.

Additionally, it also relates to problems concerning memory management #285 , so we should design more for Java SDK about memory management.


  • Is compatible with Java SDK now: no
  • The earliest released(or to be released) C++ library's version with this feature: v 0.11.0
  • Related PR: #290
  • [ ] Mark as implemented

Thespica avatar Dec 20 '23 11:12 Thespica