question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

First Release of Java API

See original GitHub issue

This is the master issue to track the progress of formally releasing Java API.

Background

Java worker code was contributed by Ant Financial in 2018 as an experimental feature. It has also been used in the past 2 years internally at Ant. Now we think the code should be stable enough for the formal release.

Action items.

  • Simplify usage for beginners: deploy jars (with all platform binaries included) to Maven’s central repo. So that users can use it out of box, without having to compile from code (#6876).
  • Make Java version aligned with Python.
  • Enhance integration tests for new version releases.
  • Finalize API: revisit API design and refine it if needed; avoid making breaking changes after formal release.
  • Improve documentation.
  • Remove --include-java and --java-worker-options from ray start.

Issue Analytics

  • State:open
  • Created 4 years ago
  • Comments:14 (13 by maintainers)

github_iconTop GitHub Comments

4reactions
raulchencommented, Jun 4, 2020

After some discussions, we decided to upgrade Java API to make it easier to use, more readable, and more consistent with Python.

Remote tasks

Current API

CallOptions options = new CallOptions.Builder.setResources(...).createCallOptions();
RayObject<Integer> res = Ray.call(Foo::foo, 1, options);  // `options` can be omitted.

New API

ObjectRef<Integer> res = Ray.task(Foo::foo, 1).setResource(...).remote(); // `setResource` can be omitted.

Actors

Current API

ActorCreationOptions options = new ActorCreationOpitons.Builder().setResources(...).setMaxRestarts(...).createActorCreationOptions();
RayActor<MyActor> actor = Ray.createActor(MyActor::new, 1, options);
RayObject<Integer> result = actor.call(MyActor::foo, 1);

New API

ActorHandle<MyActor> actor = Ray.actor(MyActor::new, 1)..setResources(...).setMaxRestarts(...).remote();
ObjectRef<Integer> result = actor.task(MyActor::foo, 1).remote();
1reaction
kfstormcommented, Jul 28, 2021

@raulchen Should we update and close this issue?

Read more comments on GitHub >

github_iconTop Results From Across the Web

Java (programming language) - Wikipedia
Java was originally developed by James Gosling at Sun Microsystems. It was released in May 1995 as a core component of Sun Microsystems'...
Read more >
1. History and Retrospective - Java: The Legend [Book] - O'Reilly
The first public release of Java was May 23, 1995, as an alpha available only on Sun Microsystem's Solaris operating system. Since that...
Read more >
The complete History of Java Programming Language
JDK 1.0, January 1996, The Very first version was released on January 23, 1996. The principal stable variant, JDK 1.0.2, is called Java...
Read more >
History of Java - Java Versions - RefreshJava
The first version of java was released on January 23, 1996. Codename Oak. The first stable version was JDK 1.0.2. It consist around...
Read more >
Java Version History - Javatpoint
It was the first stable released version of Java. Its codename was Oak.The first stable version of JDK was JDK 1.0.2 and it...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found