Service provider module dependency resolving webrev
Jaroslav Tulach
jaroslav.tulach at oracle.com
Wed Jun 20 06:55:43 PDT 2012
Dne Út 19. června 2012 16:33:42, Paul Sandoz napsal(a):
> Hi,
>
> http://cr.openjdk.java.net/~psandoz/jigsaw/resolver-services/webrev/
This is exactly the order I was recently thinking about when trying to extend
the concept of "complete repository[1]" to deal with services, but it is so
NP-completenish!
> - service provider modules dependencies are resolved after the explicit
> dependencies have been successfully resolved.
This part can be made easy with complete repository[1].
> - if service provider modules or their dependencies are service consumer
> modules then the correspond service provide modules are resolved after the
> explicit dependences and so on.
In this step you have to select one of the modules that "provides a service"
which has been requested by some module in the first step. This is the part
when the algorithm turns into 3-SAT solver.
No surprise, things may get unclear and complicated (which is how I understood
your further discussion with Alan).
-jt
[1]
http://wiki.apidesign.org/wiki/RangeDependenciesAnalysed#Complete_Module_Repository_with_Ranges
>
> [exec] | Configuring [mapp@=1.0] using library build/mlib
> [exec] | resolving ROOT requires mapp@=1.0
> [exec] | - trying mapp at 1.0
> [exec] | - pushing service provider module dependency
> stringer.StringTransformer -> requires optional mhasher [exec] | -
> pushing service provider module dependency stringer.StringTransformer ->
> requires optional mrotter [exec] | -- resolving mapp at 1.0 requires
> mstringer
> [exec] | --- trying mstringer at 1.0
> [exec] | ---- resolving mstringer at 1.0 requires synthesized
> java.base@>=8 [exec] | ----- trying java.base
> [exec] | ----- pushing service provider module dependency
> java.nio.charset.spi.CharsetProvider -> requires optional sun.charsets
> [exec] | ----- pushing service provider module dependency
> java.nio.file.spi.FileSystemProvider -> requires optional jdk.zipfs [exec]
> | ----- pushing service provider module dependency
> sun.net.spi.nameservice.NameServiceDescriptor -> requires optional jdk.jndi
> [exec] | ------ resolving jdk.base at 8-ea requires local optional
> jdk.desktop.internal@=8-ea [exec] | ------- trying
> jdk.desktop.internal at 8-ea
> [exec] | ------- pushing service provider module dependency
> javax.print.PrintServiceLookup -> requires optional jdk.desktop [exec] |
> ------- pushing service provider module dependency
> javax.print.StreamPrintServiceFactory -> requires optional jdk.desktop
> [exec] | ------- pushing service provider module dependency
> javax.sound.midi.spi.MidiDeviceProvider -> requires optional jdk.desktop
> [exec] | ------- pushing service provider module dependency
> javax.sound.midi.spi.MidiFileReader -> requires optional jdk.desktop [exec]
> | ------- pushing service provider module dependency
> javax.sound.midi.spi.MidiFileWriter -> requires optional jdk.desktop [exec]
> | ------- pushing service provider module dependency
> javax.sound.midi.spi.SoundbankReader -> requires optional jdk.desktop
> [exec] | ------- pushing service provider module dependency
> javax.sound.sampled.spi.AudioFileReader -> requires optional jdk.desktop
> [exec] | ------- pushing service provider module dependency
> javax.sound.sampled.spi.AudioFileWriter -> requires optional jdk.desktop
> [exec] | ------- pushing service provider module dependency
> javax.sound.sampled.spi.FormatConversionProvider -> requires optional
> jdk.desktop [exec] | ------- pushing service provider module dependency
> javax.sound.sampled.spi.MixerProvider -> requires optional jdk.desktop
> [exec] | ------- pushing service provider module dependency
> sun.java2d.cmm.PCMM -> requires optional jdk.desktop [exec] | -------
> pushing service provider module dependency sun.java2d.pipe.RenderingEngine
> -> requires optional jdk.desktop [exec] | -------- resolving
> jdk.desktop at 8-ea requires local jdk.base.internal@=8-ea [exec] |
> --------- resolving jdk.desktop at 8-ea requires jdk.jaxp@=8-ea [exec] |
> ---------- trying jdk.jaxp at 8-ea
> [exec] | ----------- resolving jdk.jaxp at 8-ea requires jdk.base@=8-ea
> [exec] | ------------ resolving jdk.jaxp at 8-ea requires synthesized
> java.base@>=8 [exec] | ------------- resolving jdk.desktop at 8-ea requires
> jdk.logging@=8-ea [exec] | -------------- trying jdk.logging at 8-ea
> [exec] | --------------- resolving jdk.logging at 8-ea requires
> jdk.base.internal@=8-ea [exec] | ---------------- resolving
> jdk.logging at 8-ea requires synthesized java.base@>=8 [exec] |
> ----------------- resolving jdk.desktop at 8-ea requires jdk.prefs@=8-ea
> [exec] | ------------------ trying jdk.prefs at 8-ea
> [exec] | ------------------- resolving jdk.prefs at 8-ea requires local
> jdk.base.internal@=8-ea [exec] | -------------------- resolving
> jdk.prefs at 8-ea requires jdk.jaxp@=8-ea [exec] | ---------------------
> resolving jdk.prefs at 8-ea requires synthesized java.base@>=8 [exec] |
> ---------------------- resolving jdk.desktop at 8-ea requires
> sun.charsets.internal@=8-ea [exec] | ----------------------- trying
> sun.charsets.internal at 8-ea [exec] | ------------------------ resolving
> sun.charsets at 8-ea requires local jdk.base.internal@=8-ea [exec] |
> ------------------------- resolving sun.charsets at 8-ea requires synthesized
> java.base@>=8 [exec] | -------------------------- resolving
> jdk.desktop at 8-ea requires synthesized java.base@>=8 [exec] |
> --------------------------- resolving jdk.base at 8-ea requires optional
> jdk.jaxp.internal@=8-ea [exec] | ---------------------------- resolving
> jdk.base at 8-ea requires local optional jdk.tls.internal@=8-ea [exec] |
> ----------------------------- trying jdk.tls.internal at 8-ea [exec] |
> ------------------------------ resolving jdk.tls at 8-ea requires local
> jdk.base.internal@=8-ea [exec] | -------------------------------
> resolving jdk.tls at 8-ea requires synthesized java.base@>=8 [exec] |
> -------------------------------- resolving jdk.base at 8-ea requires local
> optional sun.localedata@=8-ea [exec] | ---------------------------------
> trying sun.localedata at 8-ea [exec] | ----------------------------------
> resolving sun.localedata at 8-ea requires local jdk.base.internal@=8-ea [exec]
> | ----------------------------------- resolving sun.localedata at 8-ea
> requires synthesized java.base@>=8 [exec] |
> ------------------------------------ resolving jdk.base at 8-ea requires local
> optional sun.resources@=8-ea [exec] |
> ------------------------------------- trying sun.resources at 8-ea [exec] |
> -------------------------------------- resolving sun.resources at 8-ea
> requires local jdk.base.internal@=8-ea [exec] |
> --------------------------------------- resolving sun.resources at 8-ea
> requires synthesized java.base@>=8 [exec] |
> ---------------------------------------- resolving mapp at 1.0 requires
> synthesized java.base@>=8 [exec] |
> ----------------------------------------- resolving SERVICE PROVIDER
> requires optional mhasher [exec] |
> ------------------------------------------ trying mhasher at 1.0 [exec] |
> ------------------------------------------- resolving mhasher at 1.0 requires
> mstringer [exec] | -------------------------------------------- resolving
> mhasher at 1.0 requires synthesized java.base@>=8 [exec] |
> --------------------------------------------- resolving SERVICE PROVIDER
> requires optional mrotter [exec] |
> ---------------------------------------------- trying mrotter at 1.0 [exec] |
> ----------------------------------------------- resolving mrotter at 1.0
> requires mstringer [exec] |
> ------------------------------------------------ resolving mrotter at 1.0
> requires synthesized java.base@>=8 [exec] |
> ------------------------------------------------- resolving SERVICE
> PROVIDER requires optional sun.charsets [exec] |
> -------------------------------------------------- resolving SERVICE
> PROVIDER requires optional jdk.zipfs [exec] |
> --------------------------------------------------- trying jdk.zipfs at 8-ea
> [exec] | ---------------------------------------------------- resolving
> jdk.zipfs at 8-ea requires jdk.base@=8-ea [exec] |
> ----------------------------------------------------- resolving
> jdk.zipfs at 8-ea requires synthesized java.base@>=8 [exec] |
> ------------------------------------------------------ resolving SERVICE
> PROVIDER requires optional jdk.jndi [exec] |
> ------------------------------------------------------- trying
> jdk.jndi at 8-ea [exec] |
> -------------------------------------------------------- resolving
> jdk.jndi at 8-ea requires local jdk.auth.internal@=8-ea [exec] |
> --------------------------------------------------------- trying
> jdk.auth.internal at 8-ea [exec] |
> ---------------------------------------------------------- resolving
> jdk.auth at 8-ea requires local jdk.base.internal@=8-ea [exec] |
> ----------------------------------------------------------- resolving
> jdk.auth at 8-ea requires jdk.logging@=8-ea [exec] |
> ------------------------------------------------------------ resolving
> jdk.auth at 8-ea requires synthesized java.base@>=8 [exec] |
> ------------------------------------------------------------- resolving
> jdk.jndi at 8-ea requires local jdk.base.internal@=8-ea [exec] |
> -------------------------------------------------------------- resolving
> jdk.jndi at 8-ea requires optional jdk.desktop@=8-ea [exec] |
> --------------------------------------------------------------- resolving
> jdk.jndi at 8-ea requires jdk.rmi@=8-ea [exec] |
> ---------------------------------------------------------------- trying
> jdk.rmi at 8-ea [exec] |
> ----------------------------------------------------------------- resolving
> jdk.rmi at 8-ea requires jdk.base.internal@=8-ea [exec] |
> ------------------------------------------------------------------
> resolving jdk.rmi at 8-ea requires jdk.logging@=8-ea [exec] |
> -------------------------------------------------------------------
> resolving jdk.rmi at 8-ea requires jdk.tls@=8-ea [exec] |
> --------------------------------------------------------------------
> resolving jdk.rmi at 8-ea requires synthesized java.base@>=8 [exec] |
> ---------------------------------------------------------------------
> resolving jdk.jndi at 8-ea requires jdk.tls.internal@=8-ea [exec] |
> ----------------------------------------------------------------------
> resolving jdk.jndi at 8-ea requires synthesized java.base@>=8 [exec] |
> -----------------------------------------------------------------------
> resolving SERVICE PROVIDER requires optional jdk.desktop
More information about the jigsaw-dev
mailing list