Difference between export, indirect export, requirements and indirect requirements in Java9?

I was looking through the API docs for jdk.accessibilityand noticed that it lists all of these separately.

  • Are modules with a scope requiresin a single module - is this an indirect requirement consuming module?

  • The module module-info.javafor the module is as follows:

    module jdk.accessibility {
        requires transitive java.desktop;
    
        exports com.sun.java.accessibility.util;
    }
    

    and for java.desktop- it's something like (trying to include a variable -

    module java.desktop {
        ...
        requires java.prefs;
        ...
        requires transitive java.xml;
        exports java.applet;
        ...
        exports sun.awt to
            javafx.swing,
            jdk.accessibility,
            oracle.desktop;
        opens javax.swing.plaf.basic to jdk.jconsole;
        ...
        uses javax.sound.sampled.spi.MixerProvider;
        ...
        provides javax.sound.sampled.spi.MixerProvider with
            com.sun.media.sound.DirectAudioDeviceProvider,
            com.sun.media.sound.PortMixerProvider;
    

    But then the document for jdk.accessibilitydoes not mention sun.awtboth “Required as well as indirect requirement” or “Indirect export”. What is the reason for the insolvency here?

, , (2), Java9.

+4
1

, :

module java.desktop {
    ...
    ...
    exports sun.awt to
        javafx.swing,
        jdk.accessibility,
        oracle.desktop;
}

sun.awt - , . ( .) , , sun.awt , java.desktop .

: , jdk.accessibility sun.awt . java.desktop jdk.accessibility, API. ( ), , jdk.accessibility java.desktop transitive.

+5

Source: https://habr.com/ru/post/1684379/


All Articles