Nice! Thanks Romain!
regards, François fpa...@apache.org Le 29/10/2019 à 08:52, Romain Manni-Bucau a écrit : > Hi everyone, > > Just created the repository as mentionned earlier. > > Here it is: https://gitbox.apache.org/repos/asf?p=geronimo-arthur.git > > I will try to add some basic doc module and work on tests after. > > Romain Manni-Bucau > @rmannibucau <https://twitter.com/rmannibucau> | Blog > <https://rmannibucau.metawerx.net/> | Old Blog > <http://rmannibucau.wordpress.com> | Github > <https://github.com/rmannibucau> | LinkedIn > <https://www.linkedin.com/in/rmannibucau> | Book > <https://www.packtpub.com/application-development/java-ee-8-high-performance> > > > Le lun. 28 oct. 2019 à 18:47, Jean-Baptiste Onofré <j...@nanthrax.net > <mailto:j...@nanthrax.net>> a écrit : > > It sounds good. +1. > > Regards > JB > > On 28/10/2019 18:07, Romain Manni-Bucau wrote: >> Hi everyone, >> >> I'm planning to create the repo tomorrow and try to get some doc >> for wednesday night. >> Is it ok for everyone? >> >> Romain Manni-Bucau >> @rmannibucau <https://twitter.com/rmannibucau> | Blog >> <https://rmannibucau.metawerx.net/> | Old Blog >> <http://rmannibucau.wordpress.com> | Github >> <https://github.com/rmannibucau> | LinkedIn >> <https://www.linkedin.com/in/rmannibucau> | Book >> >> <https://www.packtpub.com/application-development/java-ee-8-high-performance> >> >> >> Le dim. 27 oct. 2019 à 18:04, Romain Manni-Bucau >> <rmannibu...@gmail.com <mailto:rmannibu...@gmail.com>> a écrit : >> >> Hi Guillaume, >> >> Yes and no, First iteration I'd like to: >> >> 1. Enable to build a command graal line and execute it >> through a mojo (to have an e2e case) >> 2. Provide a simple API to let the user register classes (my >> current version is very specific to a few frameworks so i >> must abstract it but idea is to let some classes be found >> based on annotations or parent for ex and register them). >> Guess it will not use a feature but more a preprocessing >> phase generating a valid reflection.json (potentially >> resources.json and dynamicproxy.json in terms of design). >> Then we can run 1. with this config. In my case - job >> framework - i can find all the classes i need reflection on >> so i just list them all (it is close to Arc I guess?). >> 3. (optional for first import) provide some library >> integrations (substitutions and/or features, no arthur >> abstraction) to help with some common libraries. I needed >> some for johnzon so it can be one integration module for ex. >> >> Hope it makes sense. >> >> Romain Manni-Bucau >> @rmannibucau <https://twitter.com/rmannibucau> | Blog >> <https://rmannibucau.metawerx.net/> | Old Blog >> <http://rmannibucau.wordpress.com> | Github >> <https://github.com/rmannibucau> | LinkedIn >> <https://www.linkedin.com/in/rmannibucau> | Book >> >> <https://www.packtpub.com/application-development/java-ee-8-high-performance> >> >> >> Le dim. 27 oct. 2019 à 17:37, Guillaume Nodet >> <gno...@apache.org <mailto:gno...@apache.org>> a écrit : >> >> >> >> Le sam. 26 oct. 2019 à 08:11, Romain Manni-Bucau >> <rmannibu...@gmail.com <mailto:rmannibu...@gmail.com>> a >> écrit : >> >> >> >> Le sam. 26 oct. 2019 à 00:22, Guillaume Nodet >> <gno...@apache.org <mailto:gno...@apache.org>> a écrit : >> >> >> >> Le ven. 25 oct. 2019 à 22:42, Romain Manni-Bucau >> <rmannibu...@gmail.com >> <mailto:rmannibu...@gmail.com>> a écrit : >> >> >> >> Le ven. 25 oct. 2019 à 21:34, Guillaume Nodet >> <gno...@apache.org >> <mailto:gno...@apache.org>> a écrit : >> >> >> >> Le ven. 25 oct. 2019 à 16:28, Romain >> Manni-Bucau <rmannibu...@gmail.com >> <mailto:rmannibu...@gmail.com>> a écrit : >> >> Hi Raymond, >> >> What do you mean y "taking us down"? >> To give some background, I have some >> use case where a k8s orchestrator + >> native java run would be a good >> option compared to a long running >> program (see it as lambda like archi). >> I did some basic tooling - guess it >> is the same than you more or less - >> and just would like a home for now. >> Now I agree graal is not for all >> apps, it is not even possible to >> compile a jdbc driver today - yes >> quarkus faked it ;). >> >> >> I've been working on camel-quarkus >> recently and we do have integration tests >> that use JDBC and that are compiled to >> native mode. >> Not sure what you mean when you say it's >> not possible to compile a jdbc driver. >> I'd be interested in understanding what >> you mean here. >> >> >> It is going a bit off topic and guess if >> arthur has no strong objection we'll discuss >> it a bit in other threads but long story >> short,if you dont replace a bunch of code the >> driver will not work. Quarkus h2 kept only >> client mode to simplify part of it. H2 by >> itself works in client, file and mem if you >> do the reflection work but then if the jdbc >> pool or app uses DriverManager, most codepath >> will require to load all the driver at build >> time and often end up on some blocker you >> need to cut like natives or unsupported api. >> I got the same experience with derby. It is >> not the driver by itself but the SPI + common >> driver/jdbc usages which make it often hard >> to use without forking part of the libs. >> Fun fact is hikari is broken by that but not >> tomcat-jdbc cause their >> load(driver)/DriverManager chain is opposed. >> >> >> That's nothing related to Quarkus but just the >> effect of native code compilation I think. >> The limitation comes from compiling to native: >> the whole world has to be known at compile time, >> so dynamic class loading is not feasible. >> Loading a "new" jdbc driver dynamically will >> never work in native mode. However, the SPIs (be >> it xml, jaxb, jdbc or whatever) usually rely on >> loading a properties file and instantiating the >> class name found in it. This part can be made to >> work in native mode, but it has to be known at >> build time and taken care of. In this case, one >> needs to instruct the native compiler about the >> properties file (so that it's included in the >> native binary) and about the reflection needed >> for the driver class (so that it can be >> instantiated using its class name). >> So the short answer is : if you try to take any >> complex application and compile it to native >> mode, it won't work as is. And that's the reason >> why all libraries need to be "validated" before >> being usable in a native compilation : each >> limitation of the graal vm needs to be worked >> around, things explicited, reflection known >> before hand, etc... Quarkus, amongst other >> things, helps doing that and provides a set of >> "validated" components. >> >> >> I didnt say quarkus was guilty, point was that even >> the very high investment ibm/redhat did, h2 is not >> supported by their stack except in client mode which >> is not a simplicity sign. Sorry if it was ambiguous, >> my point was not to blame but to highlight I agreee >> with Ray we must not emphasis the simplicity of graal >> but only enable the build to be less hard. >> >> >> Ok. >> >> What do you have in mind exactly ? At first glance, it >> seems you want to scan and register all classes for >> reflection and all resources to be included ? >> If that's what you have mind, I think it can cause some >> problems: the graal vm heavily rely on dead code >> elimination (because the world is known and it can >> analyse all the code paths). I fear that registering all >> classes for full reflection may have a very bad effect of >> actually killing any dead code elimination, because all >> methods / classes will have to be present in the compiled >> code. Subsequent effects will be a bigger native code >> size and longer native code compilation... >> Or do you have something smarter in mind ? >> >> >> >> >> >> >> >> Romain >> >> >> >> Guillaume >> >> >> >> Romain Manni-Bucau >> @rmannibucau >> <https://twitter.com/rmannibucau> | >> Blog >> <https://rmannibucau.metawerx.net/> | >> Old Blog >> <http://rmannibucau.wordpress.com> >> | Github >> <https://github.com/rmannibucau> | >> LinkedIn >> <https://www.linkedin.com/in/rmannibucau> | >> Book >> >> <https://www.packtpub.com/application-development/java-ee-8-high-performance> >> >> >> Le ven. 25 oct. 2019 à 16:02, Raymond >> Auge <raymond.a...@liferay.com >> <mailto:raymond.a...@liferay.com>> a >> écrit : >> >> I'm not vehemently opposed as I >> have done my own graal salivating >> and not that I think anyone would >> care much even if I was >> completely opposed; but I will >> caution that this whole graal >> thing is a dangerous path that >> Oracle (and seemingly Redhat is >> just as happy to do it) are >> taking us all down. >> >> Anyway +0.5 >> >> Sincerely, >> - Ray >> >> On Fri, Oct 25, 2019 at 2:21 PM >> Francois Papon >> <francois.pa...@openobject.fr >> <mailto:francois.pa...@openobject.fr>> >> wrote: >> >> Hi Romain! >> >> I think it's a great idea, it >> make sense to have tooling >> around graalvm. >> >> I will be more than happy to >> contribute ;) >> >> "arthur" looks good to me :) >> >> regards, >> >> François >> fpa...@apache.org >> <mailto:fpa...@apache.org> >> >> Le 25/10/2019 à 09:00, Romain >> Manni-Bucau a écrit : >>> Hi everyone, >>> >>> Wonder if we want to create >>> a small project to simplify >>> graalvm builds? >>> What I have in mind is >>> basically a kind of main (+ >>> maven wrapper) which enables >>> to use scanning at build >>> time to prepare a binary, do >>> the >>> right RuntimeReflection.register and >>> set the right configuration >>> for proxies, resources etc. >>> It would be a companion of >>> XBean finder - which is a >>> perfect fit for this phase - >>> but likely outside of XBean >>> since the project will >>> likely require to use docker >>> for tests - since we go >>> native, otherwise we >>> wouldn't build portably - >>> and creates its own ecosystem. >>> >>> Side note: if we go with it, >>> I'm tempted to call it >>> "arthur", if you +1 the idea >>> don't hesitate to also >>> comment on the name >>> >>> Romain Manni-Bucau >>> @rmannibucau >>> <https://twitter.com/rmannibucau> >>> | Blog >>> <https://rmannibucau.metawerx.net/> >>> | >>> Old Blog >>> <http://rmannibucau.wordpress.com> >>> | Github >>> <https://github.com/rmannibucau> | >>> LinkedIn >>> >>> <https://www.linkedin.com/in/rmannibucau> | >>> Book >>> >>> <https://www.packtpub.com/application-development/java-ee-8-high-performance> >> >> >> >> -- >> *Raymond Augé* >> >> <http://www.liferay.com/web/raymond.auge/profile> (@rotty3000) >> >> Senior Software >> Architect *Liferay, Inc.* >> <http://www.liferay.com> (@Liferay) >> >> >> >> -- >> ------------------------ >> Guillaume Nodet >> >> >> >> -- >> ------------------------ >> Guillaume Nodet >> >> >> >> -- >> ------------------------ >> Guillaume Nodet >>