Skip to content

Conversation

@kidylee
Copy link
Contributor

@kidylee kidylee commented Mar 23, 2023

Explanation:

  • Mutex lock free: in Java, class constructor is thread-safe so calling native method doesn't need a lock.
  • Holding pointer of operator in Operator.java and free it when Java instance be destroyed by GC.
  • Java doesn't native support async/await, maybe we can try Kotlin.

@Xuanwo
Copy link
Member

Xuanwo commented Mar 23, 2023

  • Readme for usage
  • Development/Contribution guide.
  • Exceptions need polish to conform Java files related interface.
  • Cucumber test cases
  • Experiment: Java doesn't support async/await hence using Kotlin to implement async related API.

Thank you for the pull request! At OpenDAL, we prefer to split pull requests into smaller chunks for faster review and merging. It would be better if we create a tracking issue instead.

In this PR, I expect to the basic setup, and future impove can be done later.

@kidylee
Copy link
Contributor Author

kidylee commented Mar 23, 2023

  • Readme for usage
  • Development/Contribution guide.
  • Exceptions need polish to conform Java files related interface.
  • Cucumber test cases
  • Experiment: Java doesn't support async/await hence using Kotlin to implement async related API.

Thank you for the pull request! At OpenDAL, we prefer to split pull requests into smaller chunks for faster review and merging. It would be better if we create a tracking issue instead.

In this PR, I expect to the basic setup, and future impove can be done later.

Sure, I will put them in readme for memo and will add issues after this pr get merged.

@Xuanwo
Copy link
Member

Xuanwo commented Mar 23, 2023

You can use the following command to format license:

 docker run -it --rm -v $(pwd):/github/workspace -u $(id -u):$(id -g) ghcr.io/korandoru/hawkeye-native format

@suyanhanx
Copy link
Member

You may track them in #1572

@suyanhanx
Copy link
Member

  • Java doesn't native support async/await, maybe we can try Kotlin.

Sounds good. Can it be integrated? Or is it possible to directly implement Java binding using Kotlin?

@kidylee
Copy link
Contributor Author

kidylee commented Mar 23, 2023

You may track them in #1572

Thanks.

  • Java doesn't native support async/await, maybe we can try Kotlin.

Sounds good. Can it be integrated? Or is it possible to directly implement Java binding using Kotlin?

Yes, both integration or writing in Kotlin entirely work for Java and Kotlin. A open question is how do we handling running model for Executor and Waker:

  • Keep them in Kotlin
  • Keep them in Rust
  • Both language has them separately.

@Xuanwo
Copy link
Member

Xuanwo commented Mar 23, 2023

A open question is how do we handling running model for Executor and Waker

We can consider implementing them in the future, but for now let's prioritize blocking support. I believe it's best to address one problem at a time.

@kidylee kidylee force-pushed the java-binding branch 2 times, most recently from 1e0334c to e54e6cb Compare March 23, 2023 13:06
Copy link
Member

@Xuanwo Xuanwo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot! Let's keep moving on.

@Xuanwo Xuanwo merged commit 836ab99 into apache:main Mar 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants