Hello, Another question related to automatic modules. I have the following code: import com.fasterxml.jackson.core.JsonFactory; ... JsonFactory f = new JsonFactory(); System.out.println(f.getCodec());
This code clearly depends on jackson.core. So my module-info contains: requires jackson.core; This is as expected. I can change the module-info to the following however (removing the dependency on jackson.core): requires jackson.databind; At first sight, this fails to compile as expected, because the JsonFactory type comes from jackson.core, not from jackson.databind. But when I add "-addmods jackson.core" to my build command, it builds successfully! That's not what I would expect, because my module doesn't declare a dependency on jackson.core. Why does this happen? I would expect that the -addmods adds the module to the available modules, but does not magically add read edges to named modules. When removing the "jackson.databind" requires in my module-info, it fails to compile again, so it looks like jackson.databind somehow leaks types from jackson.core to my module. The build command I use is the following: javac -mp mods -addmods jackson.core -d out -modulesourcepath src $(find src -name '*.java') Best regards, Paul Bakker