setup for HOL-4957 – Automating Your CI/CD Stack with Java and Groovy

Scott and I’ll be leading a hands on lab “Automating your Ci/CD Stack with Java and Groovy” at Oracle Code One. This is a BYOL (bring your own laptop) lab.

If you run into any trouble setting up for the lab, you can post a comment on this blog post or start a thread in the Cloud/Virtualization forum at CodeRanch.

This lab requires the following:

  1. Docker
  2. Docker images
  3. Enough disk space
  4. The ability to run curl
  5. Optional: JDK 8
  6. Optional: Groovy

1 – Docker

To install Docker, follow the instructions at:


At the command line, run docker –version. (Small version differences are ok in the output)

$ docker --version

Docker version 18.06.0-ce, build 0ffa825

2 – Docker images

These images a little under 2GB combined. So as not to tax the conference network, please pull them in advance. This will also let you deal with any corporate internet proxies while you are still at work and can ask for help.

At the command line run:

docker pull sonatype/nexus3:3.13.0

docker pull jenkins/jenkins:2.146

docker pull sonarqube:7.1

 Note: “latest” will probably work. These version numbers are the ones we tested with.

$ docker pull sonatype/nexus3:3.13.0
3.13.0: Pulling from sonatype/nexus3
256b176beaff: Pull complete
18d124afa1e9: Pull complete
9bb412307f82: Pull complete
Digest: sha256:19d186d5bc8be1ea4f7bae72756baa830e79bf20aae0e9e7b1a0c7d3ce7ac136
Status: Downloaded newer image for sonatype/nexus3:3.13.0

$ docker pull jenkins/jenkins:2.146
2.146: Pulling from jenkins/jenkins
55cbf04beb70: Pull complete
1607093a898c: Pull complete
9a8ea045c926: Pull complete
d4eee24d4dac: Pull complete
c58988e753d7: Pull complete
794a04897db9: Pull complete
70fcfa476f73: Pull complete
806029475e0c: Pull complete
67959b355155: Pull complete
4d217ccd3d4c: Pull complete
0261bb88a4a5: Pull complete
96f2a3ae5539: Pull complete
f6bf99db32d5: Pull complete
bb47d4bbb0e1: Pull complete
4b48ec5d60cf: Pull complete
7280a8dfb767: Pull complete
91091f8d44ca: Pull complete
8ca02cad320f: Pull complete
46009bfec329: Pull complete
f9860b79812e: Pull complete
89ac8103ea67: Pull complete
Digest: sha256:161cb25fbb23a1c5ac5fdd0feebd713edd62c235e199e68b34d1a78205a42da7
Status: Downloaded newer image for jenkins/jenkins:2.146
JeanneBrskysMBP:OracleCodeOne2018-HOL-Automating-Stack-Groovy nyjeanne$ docker pull sonarqube:7.1
7.1: Pulling from library/sonarqube
55cbf04beb70: Already exists 
1607093a898c: Already exists 
9a8ea045c926: Already exists 
d4eee24d4dac: Already exists 
c58988e753d7: Already exists 
794a04897db9: Already exists 
70fcfa476f73: Already exists 
806029475e0c: Already exists 
67959b355155: Already exists 
1e6b3af7f55a: Pull complete 
e0b67c57c8e1: Pull complete 
ce12e009fbe7: Pull complete 
3edf8e47f9c4: Pull complete 
Digest: sha256:4438a37735caa24d80da31ee29e72d686abdaa8f5009746ec60e0d43519e1a57
Status: Downloaded newer image for sonarqube:7.1

4 – The ability to run curl

If you are running Mac, Linux or Windows 10, you don’t need to do anything. If you are running an older version of Windows, you can install Cygwin.

5 – Optional: JDK

If you want to run groovy locally, JDK 8 (not higher) needs to be in your path. It is possible to do the lab without having Groovy installed.

6 – Optional: Groovy

Follow the instructions at:

Note: Please download Groovy 2.X rather than 3.X. Version 3.X is in alpha at the time of writing this lab.


At the command line, run groovy –version.(Small version differences are ok in the output)

$ groovy -version

Groovy Version: 2.5.2 JVM: 1.8.0_45 Vendor: Oracle Corporation OS: Mac OS X

4 – Disk space

This lab uses about 2 Gigabytes of disk space (not counting Docker itself.) The last step of the lab explains how to recover disk space.


At the command line, run curl and ensure the output isn’t an error message.


javaone vs oracle code one

Oracle announced that they are turning JavaOne into Oracle Code One.  There was a lot of Twitter chatter that week. I want to add my two cents.


First off all, JavaOne had two non-Java tracks last year:

  • Emerging Languages
  • Oracle Code: Containers, Microservices, DevOps, Databases, APIs and MOre

That means that 2/7 or approximately a quarter of the conference was already not about Java. I realize that’s not exact. Some of the topics in that quarter were about JVM languages. But it does show that JavaOne reflected the reality of polyglot developers and didn’t focus on “just” Java. (I think I remember there being some JavaScript stuff too, but maybe I’m remembering wrong.)

Two conferences

It’ll be interesting to see what if anything moves Oracle OpenWorld to Oracle code. Some of the Oracle technology specific sessions are about coding so maybe it is time for them to move.

Piloted at city events

Oracle ran Oracle Code in different cities. I went to (and spoke) at the New York City one. There was a good amount of Java there. There were also a good number of talks Java developers would find relevant even if they weren’t specific to Java. If that ratio of talks at Oracle Code One matches Oracle Code, I’ll be one happy developer.


  • DevNexus is a “Java focused” conference; they call themselves the second biggest Java conference in the US (or world; I forget.) They have non Java sessions – DevOps, JavaScript, etc. But no .NET at this time so they do cover what a JVM stack developer wants to know. Note they don’t Java in the name either and nobody is crying.
  • CodeRanch is a forum that used to be named JavaRanch. It’s still mostly JVM language focused, but the name also reflects that it is more than “just Java.”

Advice for Oracle

Remember the community. Jakarta EE might not belong to you, but it is an important part of the community. Make sure there are still talks on it.


Change is hard. Personally, I really wanted to speak at JavaOne. So glad I got to last year before the opportunity was gone. That said, Oracle Code NYC was a good event so I expect Oracle Code One to be as well. And I want to speak there too. So now I have a new goal :).


The world isn’t ending. This isn’t the death of Java or the conference.  What makes “JavaOne” the flagship conference isn’t the name. It’s the people/venue/event/scale. So if you are a Java community leader/speaker, go again. Don’t make “the death of JavaOne” a self fulling prophecy.

And now off to submit my application…

zooming in on the mac

At my JavaOne Session on mutation testing, I needed to show both code and “other materials” to a large room on the Mac.

In Eclipse

Increasing the font size for the editor pane in Eclipse is easy. Cmd = makes the code bigger and Cmd – makes the code smaller.


I also needed to show the problems view and the report. For this, I used the magnifying glass.

The initial set up was

  • Settings
  • Accessibility
  • Zoom
  • Check “Use Scroll gesture with modifier keys to zoom. I had mine set to control for the modifier, but you can change this.

Then I could zoom in on anything by holding control and moving two fingers away from me (up) on the trackpad.

To get rid of the magnifier is also easy; just hold control and two finger scroll down.