The critical missing pieces and a path forward

Volker Berlin volker.berlin at goebel-clan.de
Thu May 11 20:03:10 UTC 2017


Am 08.05.2017 um 16:57 schrieb mark.reinhold at oracle.com:
> Forbidding cyclic module relationships is one of these new constraints.
> That such relationships are generally a bad idea is not just my personal
> view; see, e.g., Kirk Knoernschild's compelling arguments against them
> in his fine book,_Java Application Architecture_  [2], specifically in
> §4.4, "Cyclic Dependencies -- The Death Knell".
I does not understand the discussion here. It is inpossible to write a 
large complex application without cyclic dependencies. The classic cycle 
is "Logging" and "Configuration". The configuration define the type of 
logging like level, file, format, etc. If there any errors in the 
configuration then it write it to the logging module.
Another frequently cycle is between "Login/Permission" and "GUI". The 
login needs a GUI. And the dialog elements of the GUI needs a permission 
check.

Because we have understand this and the hierarchically classloader can 
not handle cycles that we have develop for years a classloader with cycles.
The alterative to cycles are large monolithic modulus/components. Such 
modules are very bad to maintain.

> (For those not familiar with the details of the design: Cycles are not
>   allowed when modules are resolved but it is possible to create them
>   post-resolution via the API, if needed [4][5].  Cycles are also set up
>   amongst all automatic modules, after resolution, to make it easier to
>   treat existing JAR files as modules without change [6].)
A light point but what are the advantages of modules in this case. I see 
no advantages across from classloaders. Because classloaders will never 
removed there is no need for a switch.

Volker
i-net software


More information about the jpms-spec-observers mailing list