CARVIEW |
Select Language
HTTP/2 301
server: AkamaiGHost
content-length: 0
location: https://mail.openjdk.org/pipermail/jpms-spec-comments/2015-October/000006.html
date: Tue, 29 Jul 2025 22:54:08 GMT
HTTP/2 200
content-type: text/html
last-modified: Mon, 11 Jul 2016 15:04:33 GMT
etag: "148d-5375d7847a240"
accept-ranges: bytes
x-akamai-transformed: 0 - 0 -
vary: Accept-Encoding
content-encoding: gzip
date: Tue, 29 Jul 2025 22:54:08 GMT
content-length: 2207
set-cookie: _abck=F775E83EE56898AB50318D1DC957F684~-1~YAAQNAHARbk3Lz2YAQAAW6pkWA5ykerp12ZICmyEfd626OB2LIi2zqB7RDAZ8lGos9gyuDmUXOPhVmN1UpZhUH9UCsPhzle3Z0HO9cDIskzTYZULSRgTVKPCW+uwX34BXaelNzU5fRj3NKIoLzSCAWTr6pRFdQxkzCesWO3nGELfhxJaQ6W/RYIaYiIfuEZHpOYJFW8jJnxx49f7xKUSgSJ2t/iQsY3uyxKd63I7ZVBIsAkYKYUDiC+C/ll8FJORCRfIYjrcFGyVRJ4TJcy/Pwz12H0ZjZKMoI6KI7cN6wmuQD0ykIYRPLKjcKO7qJ3odX6QaHsxEDxefPnMLuv4lRUlj9ONCM7UCfhNQVit/myJJHEFG3ESiOq+XTyfg3lAA6YjN5RAnT46BLzSBL8spJPE4uWxO4vwqLqyEi0Y1D5lL+c8EUgTu5U6oPukIdu61oSulno=~-1~-1~-1; Domain=.openjdk.org; Path=/; Expires=Wed, 29 Jul 2026 22:54:08 GMT; Max-Age=31536000; Secure
set-cookie: bm_sz=EAA740D750F688C5034E1A20AA3D8BD9~YAAQNAHARbo3Lz2YAQAAW6pkWByBj/oie2v5a8RzcObEu75OAhmxq98f5kAg/Czmu7qG3aNPmyqgxHGk/NExpJPO49HbZqDu6mK8y+IFFbgGl9eZfVtPRKKSgfZXWyR60Pt9Jw9PCWmQGKDnLe17co2BZmdwL4e/EQUc3UBaiEDKlXaKNZQG38mAlZDZgqmsyoKx+8PF/nRNcAzZSu6wyzXkDagqEjiJZQsNnzR+HzNkaxUOewEehw6IkF94MRnUZ5TH+Rn9IhlrdS091XiMi+rGDS104C7kz3cje8thOR0iQTDNHkAr+jZAW6zzqXJ8qZ/j8IXHUWD71zpvNrfcdm2PEYiaCvVppyPvzDJ30fhjPbUOmYCR2dI=~4338233~3289394; Domain=.openjdk.org; Path=/; Expires=Wed, 30 Jul 2025 02:54:08 GMT; Max-Age=14400
Auto-layering? Layers too specific a mechanism?
Wed Oct 7 11:55:23 UTC 2015
More information about the jpms-spec-comments mailing list
Auto-layering? Layers too specific a mechanism?
Mike Hearn hearn at vinumeris.comWed Oct 7 11:55:23 UTC 2015
- Previous message: Use of modules by build/launch tools
- Next message: Comment to "The State of the Module System"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Sorry, just realised that the -observers list specifically says that nobody may be reading it. Resending to the comments list ---------- Forwarded message ---------- From: Mike Hearn <hearn at vinumeris.com> Date: Wed, Oct 7, 2015 at 1:44 PM Subject: Auto-layering? Layers too specific a mechanism? To: jpms-spec-observers at openjdk.java.net Currently Jigsaw seems set to not solve the issue of conflicting versions of common libraries like Guava or language runtimes, except via a layering mechanism. The JSR says: "It is the responsibility of build tools and container applications to configure module paths so as to avoid version conflicts; it is not a goal <https://openjdk.java.net/projects/jigsaw/spec/reqs/02#version-selection> of the module system to address the version-selection problem." I don't fully understand what build tools are meant to do in the case of dependency tree conflicts. The best Maven can do currently is the convergence plugin, which just warns you about potential problems. But it cannot solve them. Layers *do* seem to solve this problem, by allowing different versions of the same module to co-exist in the same program. But it seems expected that ordinary applications won't benefit from this, and only app containers or apps with a plugin mechanism will need it. I believe this must be based on the assumption that developers have more control over their dependency trees than they really do. I am by no means a large scale Java developer. I maintain a few libraries and a few apps, all open source. Yet I routinely encounter cases where I (could) end up with two versions of the same library in my app's dependency tree, just through the normal act of using open source code. Common cases are: - Guava - Language runtimes like Scala, Kotlin, etc - Widely used annotation JARs This can result in apps becoming frozen in time .... adding a feature requires a new version of library A, but library A requires a new version of B, and that would introduce a conflict with library C. Often your only choice is to go and bug the maintainer of C and ask them to upgrade as well, resulting in slow moving and complicated internet-wide dependency upgrades. If every module had its own layer/classloader for internal (non public) required modules, this problem would solve itself automatically, and there'd only be issues in the case where two modules exporting the same package were actually directly depended on by the same module. But it seems that currently, doing this would require some sort of third party add-on to the module loader mechanism. That'd be unfortunate.
- Previous message: Use of modules by build/launch tools
- Next message: Comment to "The State of the Module System"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the jpms-spec-comments mailing list