Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide Java package for deployment #106

Closed
jserv opened this issue Feb 16, 2019 · 3 comments · Fixed by #141
Closed

Provide Java package for deployment #106

jserv opened this issue Feb 16, 2019 · 3 comments · Fixed by #141
Assignees
Labels
feature Outstanding features we should implement
Milestone

Comments

@jserv
Copy link
Member

jserv commented Feb 16, 2019

Current JNI build process generates shared library in the form of pearldiver driver for IRI. However, it is not convenient for deployment as RocksDB does. By providing rocksdbjni package, maven can find and package rocksdbjni into final IRI jar file including RocksDB C++ library.

Once we can provide similar java package (likely dcurl-jni), we can simplify the process of validation and deployment.

@jserv jserv added the feature Outstanding features we should implement label Feb 16, 2019
@marktwtn marktwtn added this to the Burdock milestone Mar 1, 2019
@marktwtn
Copy link
Collaborator

marktwtn commented Mar 7, 2019

The generated library file libdcurl.so can be archived to jar file easily.

But there are few things to do:

  1. The generated jar file needs to be installed in the local maven repository.
    This should be included in the building steps of the Makefile in IRI.

  2. The source code of IRI needs to be modified to use the libdcurl.so in jar file correctly.

@jserv
Copy link
Member Author

jserv commented Mar 9, 2019

How can a dedicated loader implemented in IRI internally? Can we reuse the codesnip taken from rocksdbjni?

@marktwtn
Copy link
Collaborator

marktwtn commented Mar 9, 2019

How can a dedicated loader implemented in IRI internally? Can we reuse the codesnip taken from rocksdbjni?

I will reference from the file of rocksDB: NativeLibraryLoader.java
The file description:

This class is used to load the RocksDB shared library from within the jar.
The shared library is extracted to a temp folder and loaded from there.

@marktwtn marktwtn modified the milestones: Hemlock, Water Lily Apr 21, 2019
marktwtn added a commit to marktwtn/dcurl that referenced this issue Apr 24, 2019
Build with option `BUILD_JNI=1` would compile the Java code and create the JAR file.
The dcurl shared library `libdcurl.so` would be packaged into the JAR file
and can be extracted from it for Jave native interface easily.

Close DLTcollab#106.
marktwtn added a commit to marktwtn/dcurl that referenced this issue Apr 24, 2019
Build with option `BUILD_JNI=1` would compile the Java code and create the JAR file.
The dcurl shared library `libdcurl.so` would be packaged into the JAR file
and can be extracted from it for Jave native interface easily.

Close DLTcollab#106.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature Outstanding features we should implement
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants