--
You received this message because you are subscribed to the Google Groups "Quarkus Development mailing list" group.
To unsubscribe from this group and stop receiving emails from it, send an email to quarkus-dev...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CANghgrSitCz6LhmWLQMXqLc6GJ56MLUAvXZgGLa1w%2BxEP%2BsRAg%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CALeTM-nkeUMXFO9B5WpTtA7s6YxJTiT-PndBRw2AzFu0Aq%2BeGQ%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "Quarkus Development mailing list" group.
To unsubscribe from this group and stop receiving emails from it, send an email to quarkus-dev...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CAL%3DE%3DjSuuKN%3DrfA-a4OjT_bfGdjxKnLU2KRHpEi0fbvda7acFA%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "Quarkus Development mailing list" group.
To unsubscribe from this group and stop receiving emails from it, send an email to quarkus-dev...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CANghgrSitCz6LhmWLQMXqLc6GJ56MLUAvXZgGLa1w%2BxEP%2BsRAg%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CAHL%3D7VsSVS%3DrQXBdRZSFrpvE9%3DFJuO_3kqfCjXdwut6q_vtcTA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CANghgrR1OguhZ-i4ECXr1x_V7RASuYe1yB6RRgh%2B83OJgBh1fg%40mail.gmail.com.
This is what I throught as well. The concept of fetching artifacts at startup seems very counter-intuitive to the immutability of containers. Like we do not install software in a running container (we would do this at image buildtime), I would not want to fetch artifacts at startup. Then there is of course the challenge with air-gapped environments. And lastly, I do not like the idea that the artifacts might change depending on when I started the application (especially during development, when we use snapshot artifacts that can be overridden, this sounds like a lengthy debugging session).
Cheers,
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CALeTM-kFJN6U6_bmsVt_HpJfkzKeOUAXYguA8qaK1svzw%2BH-jA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/4906f145-5ed8-46ef-903d-defe3168dd8d%40googlemail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CANghgrTWLpJBaLBSBmdCcwN9ePweJnS37eNiDvO7to7i_CUQFg%40mail.gmail.com.
Re snapshots: Yes. When the image is built, it is built, with exactly one version of each dependency. The dependencies do not change just because I start the image at a different point in time.
If we do not fetch at image startup, I do not see how the package
size might get smaller. Sure - we could have a "common layer" with
an abundance of dependencies and then always layer our
applications over that. This sounds, however, as if we would
increase the overall image size. Plus, we suddenly have libraries
on the classpath that we "do not use", but might creep into our
application anyway (e.g. through service loading).
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CANghgrTMaaF6JXm-4F3qa%2BhxJihS%3DddenHzSS7vY_RNui0j5Ug%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CAMmsnJjMhNzxA_bH_qotMGwGfFPJ8r7Y0aArUZfpSVsnJBxeWg%40mail.gmail.com.
> Would that impact Quarkus applications using Gradle too?
I would assume it would be separate-complementary.
i.e. jbang runs maven, gradle, etc. just fine.
This here would just be packaging of dependencies.txt and then a resolution against
maven repo (local and/or remote)
And it would be pure runtime scoped deps with no transitive deps.
I am still not clear what the actual benefits of Bill's proposal would be besides loading JARs from a shared location - local Maven repo. Is this what this is actually about?It wouldn't be that straightforward though, an application would have to keep bytecode enhanced artifacts in a location that would have a higher priority over the local Maven repo.
That's a reasonable question... off the cuff I'd say, smaller packaging (i.e. disk space), maybe better sharing/layering opportunities for container images, maybe faster classloading (thus startup) if we go the full JBoss Modules style package index route (compared to flat classpaths). We could also utilize a more sophisticated front-end class loading mechanism to dynamically JPMS-ize some or all dependencies in the future, making it easier to add an access-control wedge for reflection, FFM, etc.
It seems to me that a few different, disparate issues are converging on "let's have better class loading", so I'm thinking along the lines of "what can we do more easily if we took an architectural approach to class loading?", and this is certainly something that should be easy to do in such a scenario. However, this of course only covers one (or a subset of) possible packaging option(s).
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CANghgrTWLpJBaLBSBmdCcwN9ePweJnS37eNiDvO7to7i_CUQFg%40mail.gmail.com.
On Wed, May 22, 2024 at 4:38 PM Alexey Loubyansky <alexey.l...@redhat.com> wrote:I am still not clear what the actual benefits of Bill's proposal would be besides loading JARs from a shared location - local Maven repo. Is this what this is actually about?It wouldn't be that straightforward though, an application would have to keep bytecode enhanced artifacts in a location that would have a higher priority over the local Maven repo.Benefits?* Same benefits as a shared library.
* Smaller disk footprint, think of all our integration tests in quarkus git repo that copy all the jars needed for each integration test.
* Shared container mounts* Repos store other things than the .jar that might be useful* Very thin distributionsIMO an application becomes much more structured.
--Bill BurkeRed Hat
--
You received this message because you are subscribed to the Google Groups "Quarkus Development mailing list" group.
To unsubscribe from this group and stop receiving emails from it, send an email to quarkus-dev...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CAL%3DE%3DjSLkJjpxAm_B8eb5Pdecx6BwcjD-7UT4OS%2BmNNWS8VWpA%40mail.gmail.com.
On Thu, 23 May 2024 at 02:42, David Lloyd <david...@redhat.com> wrote:That's a reasonable question... off the cuff I'd say, smaller packaging (i.e. disk space), maybe better sharing/layering opportunities for container images, maybe faster classloading (thus startup) if we go the full JBoss Modules style package index route (compared to flat classpaths). We could also utilize a more sophisticated front-end class loading mechanism to dynamically JPMS-ize some or all dependencies in the future, making it easier to add an access-control wedge for reflection, FFM, etc.Fast-Jar already has package indexing that mostly works the same as in jboss-modules. It is written into the serialized data so the full index is known at build time.
It seems to me that a few different, disparate issues are converging on "let's have better class loading", so I'm thinking along the lines of "what can we do more easily if we took an architectural approach to class loading?", and this is certainly something that should be easy to do in such a scenario. However, this of course only covers one (or a subset of) possible packaging option(s).What exactly are you proposing around class loading?
Has something changed with native mode that would allow support for non-flat class paths?