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> 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>
> 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> a
>> écrit :
>>
>>>
>>>
>>> Le sam. 26 oct. 2019 à 08:11, Romain Manni-Bucau <rmannibu...@gmail.com>
>>> a écrit :
>>>
>>>>
>>>>
>>>> Le sam. 26 oct. 2019 à 00:22, Guillaume Nodet <gno...@apache.org> a
>>>> écrit :
>>>>
>>>>>
>>>>>
>>>>> Le ven. 25 oct. 2019 à 22:42, Romain Manni-Bucau <
>>>>> rmannibu...@gmail.com> a écrit :
>>>>>
>>>>>>
>>>>>>
>>>>>> Le ven. 25 oct. 2019 à 21:34, Guillaume Nodet <gno...@apache.org> a
>>>>>> écrit :
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Le ven. 25 oct. 2019 à 16:28, Romain Manni-Bucau <
>>>>>>> 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> 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> 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çoisfpa...@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
>>>
>>>

Reply via email to