I have other question about java.desktop module - if I want to understand deeply the module system and will try for educational purpose only to extract/separate "javax.sound" part of that java.desktop module to create my own javax.sound module to use in javafx application which dont need entire java.desktop module - how to do it? I tried first to recompile module-info.java having expected changes there, but I have no success yet ... yes, I know that its only academic debate as I cant redistribute this probably anywhere, am I right?
modified module-info.java (decompiled by javap) is this: (dont know about imports, I added them and left there also more requires than needed now, but my javac command-line complains still...
import javax.sound.midi.*;
import javax.sound.midi.spi.*;
import javax.sound.sampled.*;
import javax.sound.sampled.spi.*;
import com.sun.media.sound.*;
module javax.sound {
requires java.base;
requires java.prefs;
requires transitive java.datatransfer;
requires transitive java.xml;
exports javax.sound.midi;
exports javax.sound.midi.spi;
exports javax.sound.sampled;
exports javax.sound.sampled.spi;
uses javax.sound.midi.spi.MidiDeviceProvider;
uses javax.sound.midi.spi.MidiFileReader;
uses javax.sound.midi.spi.MidiFileWriter;
uses javax.sound.midi.spi.SoundbankReader;
uses javax.sound.sampled.spi.AudioFileReader;
uses javax.sound.sampled.spi.AudioFileWriter;
uses javax.sound.sampled.spi.FormatConversionProvider;
uses javax.sound.sampled.spi.MixerProvider;
provides javax.sound.midi.spi.MidiDeviceProvider with
com.sun.media.sound.MidiInDeviceProvider,
com.sun.media.sound.MidiOutDeviceProvider,
com.sun.media.sound.RealTimeSequencerProvider,
com.sun.media.sound.SoftProvider;
provides javax.sound.midi.spi.MidiFileReader with
com.sun.media.sound.StandardMidiFileReader;
provides javax.sound.midi.spi.MidiFileWriter with
com.sun.media.sound.StandardMidiFileWriter;
provides javax.sound.midi.spi.SoundbankReader with
com.sun.media.sound.AudioFileSoundbankReader,
com.sun.media.sound.DLSSoundbankReader,
com.sun.media.sound.JARSoundbankReader,
com.sun.media.sound.SF2SoundbankReader;
provides javax.sound.sampled.spi.AudioFileReader with
com.sun.media.sound.AiffFileReader,
com.sun.media.sound.AuFileReader,
com.sun.media.sound.SoftMidiAudioFileReader,
com.sun.media.sound.WaveFileReader,
com.sun.media.sound.WaveFloatFileReader,
com.sun.media.sound.WaveExtensibleFileReader;
provides javax.sound.sampled.spi.AudioFileWriter with
com.sun.media.sound.AiffFileWriter,
com.sun.media.sound.AuFileWriter,
com.sun.media.sound.WaveFileWriter,
com.sun.media.sound.WaveFloatFileWriter;
provides javax.sound.sampled.spi.FormatConversionProvider with
com.sun.media.sound.AlawCodec,
com.sun.media.sound.AudioFloatFormatConverter,
com.sun.media.sound.PCMtoPCMCodec,
com.sun.media.sound.UlawCodec;
provides javax.sound.sampled.spi.MixerProvider with
com.sun.media.sound.DirectAudioDeviceProvider,
com.sun.media.sound.PortMixerProvider;
}
this dont work yet: javac -p %JAVA_HOME\jmod% module-info.java
module-info.java:1: error: package javax.sound.midi is not visible
import javax.sound.midi.*;
^
(package javax.sound.midi is declared in the unnamed module, but module javax.sound does not read it)
module-info.java:2: error: package javax.sound.midi.spi is not visible
import javax.sound.midi.spi.*;
^
(package javax.sound.midi.spi is declared in the unnamed module, but module javax.sound does not read it)
module-info.java:3: error: package javax.sound.sampled is not visible
import javax.sound.sampled.*;
^
(package javax.sound.sampled is declared in the unnamed module, but module javax.sound does not read it)
module-info.java:4: error: package javax.sound.sampled.spi is not visible
import javax.sound.sampled.spi.*;