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

Quarkus integration #76

Open
PhilAndrew opened this issue Feb 10, 2020 · 4 comments
Open

Quarkus integration #76

PhilAndrew opened this issue Feb 10, 2020 · 4 comments

Comments

@PhilAndrew
Copy link

PhilAndrew commented Feb 10, 2020

I would like integration with Quarkus https://quarkus.io/

Quarkus allows for fast reload of classes and a whole lot of features I would like seed to exhibit. I suspect this issue maybe closed as this could be a separate github project, but I like to ask first. It may not be desired by your project. I like some of the declarative features of Quarkus.

@tindzk
Copy link
Owner

tindzk commented Feb 10, 2020

Thanks for the suggestion! Creating native executables using GraalVM is planned.

I am not familiar with Quarkus, unfortunately. The main feature appears to be live reloading of classes. How does it compare to DCEVM?

@PhilAndrew
Copy link
Author

PhilAndrew commented Feb 13, 2020

I have a book on Quarkus, let me read the book and work out why I like it :) (or I should say, come back with reasons)

@PhilAndrew
Copy link
Author

I really want live reloading. How to do with this, use DCEVM? I have used it before but not on seed. Live reload with your ScalaJS trigger would be useful.

http://hotswapagent.org/

http://dcevm.github.io/
https://github.com/dcevm/dcevm

@tindzk
Copy link
Owner

tindzk commented Apr 8, 2020

I managed to get it to work with an older Bloop version two years ago, but in a recent release, class files started to be written to unique folders. Otherwise you have done this:

# Terminal 1: Continuously build project
seed build --watch example

# Terminal 2: Run main class with DCEVM enabled
JAVA_TOOL_OPTIONS="-XXaltjvm=dcevm -javaagent:/path/to/hotswap-agent.jar" bloop run example

In my case, the first command wrote the class files to
/tmp/build-dcevm/bloop/bloop-internal-classes/example-6P2vxtl9QjGGuCgBFSQ8wg==, whereas the second one used a different path:
/tmp/build-dcevm/bloop/bloop-bsp-clients-classes/example-bloop-21r1tSAdRkONeSDCaa_UqA==/

If the target path for class files could be hard-coded in Bloop, DCEVM would be already supported.

Furthermore, if the JVM options could be specified in the Bloop configuration file, then we can shorten the second command to seed run example. Unfortunately, environment variables are not passed on to the JVM process when using BSP, so you still have to use the Bloop CLI for now.

Feel free to report these issues on the Bloop bug tracker.

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

No branches or pull requests

2 participants