Local Groovy Language Service
The extension ships its own Groovy Language Service and runs it on your machine whenever a Java 21 runtime is available. Completions, hovers, and diagnostics come from a local process: they work offline, they work behind corporate proxies that block WebSockets, and in Local mode your rule text never leaves your machine.
If no usable Java is found, the extension falls back to the hosted service at epmworkbench.com, so Groovy intelligence keeps working either way. On the hosted service, rule text is processed transiently for your session only and is never stored; see the Privacy Policy for the details. This page covers how the service is chosen, and how to set up a local Java runtime even on a locked-down machine where you cannot install software.
How the service is chosen
Section titled “How the service is chosen”The Epm Workbench › Lsp: Provider setting (open Settings and search for “lsp provider”) has three modes:
- Auto (the default) tries the local service first and falls back to the hosted service if local cannot start.
- Local uses only the bundled local service. Java 21 is required, and the hosted fallback is disabled: rule text never leaves the machine.
- Hosted skips Java discovery and connects directly to the hosted service.
The EPM Groovy status bar item shows which one you are on (Local or
Connected for hosted). Click it to switch. When the hosted service is in
use, open Groovy rule text is sent for transient processing; see the
Privacy Policy for exactly what that means.
Java 21, exactly
Section titled “Java 21, exactly”The local service needs Java 21, not 21 or newer. The bundled server pins the Groovy version Oracle EPM uses, and that Groovy cannot read class files from a newer JDK: a newer runtime would start but fail every validation. The extension therefore rejects any other Java major during discovery, with a message telling you what it found.
A JRE is enough. You do not need the full JDK.
How Java is found
Section titled “How Java is found”The extension checks, in order:
- The Epm Workbench › Lsp: Java Path setting, if set. This is a full
path to the
javaexecutable itself. - The
JAVA_HOMEenvironment variable. javaon yourPATH.
If you already have a Java 21 runtime installed, discovery usually just works. The command EPM Workbench: Select Java Runtime opens a picker that validates your choice and writes the setting for you.
Set up Java without installing anything
Section titled “Set up Java without installing anything”On many corporate machines you cannot run an installer, but you can extract a zip. Eclipse Temurin (the successor to AdoptOpenJDK) publishes Java 21 as a plain archive, and that is all the local service needs:
-
Download the Temurin 21 (LTS) JRE archive for your platform from adoptium.net: the
.zipon Windows, the.tar.gzon macOS or Linux. Pick the JRE package, not the JDK; it is a third of the size. -
Extract it anywhere you have write access, for example
C:\Users\you\java\or~/java/. No installer, no admin rights, no system changes. -
Run EPM Workbench: Select Java Runtime from the Command Palette. It opens a file browser: navigate into the extracted folder and pick the
javaexecutable. The extension checks that the file really is a working Java 21 runtime before saving, so a wrong pick tells you what it found instead of failing later.The file to pick, by platform:
- Windows:
bin\java.exe(notjavaw.exe), for exampleC:\Users\you\java\jdk-21.0.9+10-jre\bin\java.exe - macOS:
Contents/Home/bin/java, for example~/java/jdk-21.0.9+10-jre/Contents/Home/bin/java - Linux:
bin/java, for example~/java/jdk-21.0.9+10-jre/bin/java
Prefer the Settings UI? Open Settings and search for “java path” to find Epm Workbench › Lsp: Java Path. Its description includes a Browse for the Java executable link that opens the same validated picker and fills the setting for you — or paste the path into the field directly. Every route writes the same value.
- Windows:
-
Open a
.groovyrule. The status bar item switches to Local once the service is up.
Your exact folder name will differ with the current patch release; the shape is always the same.
Troubleshooting
Section titled “Troubleshooting”- Status bar says Connected instead of Local. Discovery did not find a usable Java 21. Run EPM Workbench: Select Java Runtime to point at one directly, then check EPM Workbench: Show Groovy Language Service Log for what was probed and why it was rejected.
- You picked a newer Java. A Java 22+ or older runtime is rejected up front with a message naming the version it found; the fix is a Java 21 runtime as above.
- No Java and no network. With neither a local runtime nor a reachable
hosted service, Groovy files still get syntax highlighting, formatting, and
%Templateand%Scriptmacro intelligence from the extension itself; full completions and diagnostics return when either becomes available.