1
Max Rydahl Andersen, Distinguished Engineer, Red Hat
@maxandersen
Tips, tricks, and techniques
Me in 2018-2019
After ~20 years in Java Enterprise and Development Tools
- is that all we can do ?
Worked in Go for 2 years
Took a year off - had fun with Python
...then started hearing about a fun project inside Red Hat….
3
Developer Joy
Quarkus
Supersonic Subatomic Java
Unifies
imperative and reactive
Best of breed
libraries and standards
4
Developer Joy
Quarkus
Supersonic Subatomic Java
Unifies
imperative and reactive
Best of breed
libraries and standards
Developer Joy Ride
IDE’s
Quarkus dev-mode
Command Mode
Ngrok
Wireshark
What just happend?
Quarkus Tools
Tooling done by Quarkus community and Red Hat Developer
Language Server Based
VSCode Eclipse IntelliJ
Community
and Ultimate
che.openshift.io
Quarkus Dev Mode
“Side-effect of the Quarkus Way”
@
@
</>
Packaging
(maven, gradle…)
How does a framework start?
Build Time
Runtime
@
@
</>
Load config file from file system
Parse it
How does a framework start?
Build Time
Runtime
How does a framework start?
@
@
</>
Classpath scanning to find
annotated classes
Attempt to load class to
enable/disable features
Build Time
Runtime
How does a framework start?
@
@
</>
Build its model of
the world.
Build Time
Runtime
How does a framework start?
@
@
</>
Start the
management
(thread, pool…)
Build Time
Runtime
@
@</>
The Quarkus Way
@
@
</>
Build Time
Runtime
RuntimeBuild Time
Traditional dev:mode
Your App
1: Write code
3: Do a request
(browse, event, cli..)
2: compile/build/restart
Quarkus dev:mode
Dev:mode
Your App
1: Write code
2: Do a request
(browse, event, cli..)
Command Mode
New feature in Quarkus 1.4
Use cases: command line tools, one-off scripts, batch operations, console, Swing,
JavaFX apps ?
Works with quarkus:dev
Ngrok
Create tunnel via ngrok.io to your machine to show of your awesome work!
Can be used standalone or use Community Quarkus Extension for zero-setup
<dependency>
<groupId>com.github.quarkus-extension</groupId>
<artifactId>quarkus-ngrok-extension</artifactId>
<version>master-SNAPSHOT</version>
</dependency>
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
Wireshark
Kitchen sink to do all kind of network tracing
When you can’t remember all the logging/setting
Filter all data on loopback and do:
“http and tcp.port eq 8080 and http.request.full_uri contains "/hello"”
What just happened ?
Fast
Just Works, with or without IDE plugins
Zero config / Zero install
Extendable
- Ngrok
- kubernetes/openshift
- Container, jib, s2i
- Debezium
- Kafka
- Camel... bit.ly/dkquarkus2019 19
20
Developer Joy
Quarkus
Supersonic Subatomic Java
Unifies
imperative and reactive
Best of breed
libraries and standards
Questions ?
More (virtual) talks from @maxandersen:
- Quarkus: Black swan of Java ?
- April 30th, Switzerland JUG
- JBang: Unleash the power of Java for shell scripting
- May 29th, DevNation

Quarkus tips, tricks, and techniques

  • 1.
    1 Max Rydahl Andersen,Distinguished Engineer, Red Hat @maxandersen Tips, tricks, and techniques
  • 2.
    Me in 2018-2019 After~20 years in Java Enterprise and Development Tools - is that all we can do ? Worked in Go for 2 years Took a year off - had fun with Python ...then started hearing about a fun project inside Red Hat….
  • 3.
    3 Developer Joy Quarkus Supersonic SubatomicJava Unifies imperative and reactive Best of breed libraries and standards
  • 4.
    4 Developer Joy Quarkus Supersonic SubatomicJava Unifies imperative and reactive Best of breed libraries and standards
  • 5.
    Developer Joy Ride IDE’s Quarkusdev-mode Command Mode Ngrok Wireshark What just happend?
  • 6.
    Quarkus Tools Tooling doneby Quarkus community and Red Hat Developer Language Server Based VSCode Eclipse IntelliJ Community and Ultimate che.openshift.io
  • 7.
    Quarkus Dev Mode “Side-effectof the Quarkus Way”
  • 8.
    @ @ </> Packaging (maven, gradle…) How doesa framework start? Build Time Runtime
  • 9.
    @ @ </> Load config filefrom file system Parse it How does a framework start? Build Time Runtime
  • 10.
    How does aframework start? @ @ </> Classpath scanning to find annotated classes Attempt to load class to enable/disable features Build Time Runtime
  • 11.
    How does aframework start? @ @ </> Build its model of the world. Build Time Runtime
  • 12.
    How does aframework start? @ @ </> Start the management (thread, pool…) Build Time Runtime
  • 13.
    @ @</> The Quarkus Way @ @ </> BuildTime Runtime RuntimeBuild Time
  • 14.
    Traditional dev:mode Your App 1:Write code 3: Do a request (browse, event, cli..) 2: compile/build/restart
  • 15.
    Quarkus dev:mode Dev:mode Your App 1:Write code 2: Do a request (browse, event, cli..)
  • 16.
    Command Mode New featurein Quarkus 1.4 Use cases: command line tools, one-off scripts, batch operations, console, Swing, JavaFX apps ? Works with quarkus:dev
  • 17.
    Ngrok Create tunnel viangrok.io to your machine to show of your awesome work! Can be used standalone or use Community Quarkus Extension for zero-setup <dependency> <groupId>com.github.quarkus-extension</groupId> <artifactId>quarkus-ngrok-extension</artifactId> <version>master-SNAPSHOT</version> </dependency> <repositories> <repository> <id>jitpack.io</id> <url>https://jitpack.io</url> </repository> </repositories>
  • 18.
    Wireshark Kitchen sink todo all kind of network tracing When you can’t remember all the logging/setting Filter all data on loopback and do: “http and tcp.port eq 8080 and http.request.full_uri contains "/hello"”
  • 19.
    What just happened? Fast Just Works, with or without IDE plugins Zero config / Zero install Extendable - Ngrok - kubernetes/openshift - Container, jib, s2i - Debezium - Kafka - Camel... bit.ly/dkquarkus2019 19
  • 20.
    20 Developer Joy Quarkus Supersonic SubatomicJava Unifies imperative and reactive Best of breed libraries and standards
  • 21.
    Questions ? More (virtual)talks from @maxandersen: - Quarkus: Black swan of Java ? - April 30th, Switzerland JUG - JBang: Unleash the power of Java for shell scripting - May 29th, DevNation