SPI does not work in Java projects using JPMS, since `module-info.java` does not contains any `provides` directive. To reproduce, I created a Java project with: - `module-info.java` ```java module foo { requires com.fasterxml.jackson.core; uses com.fasterxml.jackson.core.JsonFactory; } ``` - `main` ```java public static void main(String[] args) { Optional<JsonFactory> jf = ServiceLoader.load(JsonFactory.class).findFirst(); System.out.println(jf.isPresent()); // --> false } ```