Using modules in open source libraries
Alan Bateman
Alan.Bateman at oracle.com
Tue Jul 26 11:08:58 UTC 2016
On 26/07/2016 11:10, Stephen Colebourne wrote:
> Please use this thread to add summaries of other open source
> projects.
>
Many general libraries are going to export most or all packages as that
is the way that they are structured. No surprise there. Exporting all
packages is also the starting point for migration when using automatic
modules. When you move to creating explicit modules then you are forced
to think about which packages are part of the API, that seems like a
good thing!
In any case, here's some data from a recent OpenJDK build. The JDK puts
a lot of implementation into non-exported packages so the profile will
be different.
java.activation 1 exported, 1 internal
java.annotations.common 1 exported, 0 internal
java.base 51 exported, 106 internal
java.compact1 0 exported, 0 internal
java.compact2 0 exported, 0 internal
java.compact3 0 exported, 0 internal
java.compiler 6 exported, 0 internal
java.corba 31 exported, 83 internal
java.datatransfer 1 exported, 1 internal
java.desktop 50 exported, 75 internal
java.httpclient 1 exported, 1 internal
java.instrument 1 exported, 1 internal
java.logging 1 exported, 3 internal
java.management 10 exported, 14 internal
java.naming 5 exported, 11 internal
java.prefs 1 exported, 0 internal
java.rmi 6 exported, 7 internal
java.scripting 1 exported, 1 internal
java.se 0 exported, 0 internal
java.se.ee 0 exported, 0 internal
java.security.jgss 2 exported, 15 internal
java.security.sasl 1 exported, 4 internal
java.smartcardio 1 exported, 1 internal
java.sql 3 exported, 0 internal
java.sql.rowset 3 exported, 3 internal
java.transaction 1 exported, 0 internal
java.xml 25 exported, 83 internal
java.xml.bind 6 exported, 51 internal
java.xml.crypto 6 exported, 26 internal
java.xml.ws 11 exported, 128 internal
jdk.accessibility 1 exported, 1 internal
jdk.attach 2 exported, 1 internal
jdk.charsets 0 exported, 1 internal
jdk.compiler 4 exported, 26 internal
jdk.crypto.ec 0 exported, 1 internal
jdk.crypto.pkcs11 0 exported, 2 internal
jdk.dynalink 5 exported, 1 internal
jdk.hotspot.agent 0 exported, 97 internal
jdk.httpserver 2 exported, 1 internal
jdk.internal.le 0 exported, 7 internal
jdk.internal.opt 0 exported, 3 internal
jdk.jartool 2 exported, 3 internal
jdk.javadoc 7 exported, 23 internal
jdk.jcmd 0 exported, 7 internal
jdk.jconsole 1 exported, 2 internal
jdk.jdeps 0 exported, 5 internal
jdk.jdi 5 exported, 4 internal
jdk.jdwp.agent 0 exported, 0 internal
jdk.jlink 1 exported, 10 internal
jdk.jshell 3 exported, 6 internal
jdk.jsobject 1 exported, 1 internal
jdk.jstatd 0 exported, 3 internal
jdk.jvmstat 0 exported, 7 internal
jdk.localedata 0 exported, 6 internal
jdk.management 1 exported, 1 internal
jdk.naming.dns 0 exported, 2 internal
jdk.naming.rmi 0 exported, 2 internal
jdk.net 1 exported, 0 internal
jdk.pack200 0 exported, 0 internal
jdk.policytool 0 exported, 1 internal
jdk.rmic 0 exported, 9 internal
jdk.scripting.nashorn 2 exported, 27 internal
jdk.scripting.nashorn.shell 0 exported, 1 internal
jdk.sctp 1 exported, 1 internal
jdk.security.auth 4 exported, 0 internal
jdk.security.jgss 1 exported, 1 internal
jdk.unsupported 3 exported, 0 internal
jdk.vm.ci 3 exported, 13 internal
jdk.xml.bind 0 exported, 68 internal
jdk.xml.dom 4 exported, 0 internal
jdk.xml.ws 0 exported, 27 internal
jdk.zipfs 0 exported, 1 internal
Total exported: 280
Total internal: 987
The "0 exported" is the norm for service provider module, also API-less
tool modules. Also in the above then aggregator modules report "0
exported" because they don't have any content.
More information about the jigsaw-dev
mailing list