You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by Shawn McKinney <sm...@apache.org> on 2019/06/17 14:37:09 UTC

Supporting Java9++

Hello,

An assertion about Java9 support…

Directory projects should support Java9++ but not require it.

The adding part is pretty easy.  Update the pom, change the compiler plugin, add missing dependencies for JAXB, …

The not requiring is perhaps the tricky part.

What is the best way to allow the user to pick which compiler to use without boxing them into one or the other?

Open to suggestions, comments, laments, etc...

Thanks,
—Shawn  

 
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@directory.apache.org
For additional commands, e-mail: dev-help@directory.apache.org


Re: Supporting Java9++

Posted by Stefan Seelmann <ma...@stefan-seelmann.de>.
For API/server/studio and their Jenkins pieplines I now use Docker
containers [1] with preinstalled Java (8/11/12/...) and Maven and other
required tools. This makes the build independent of the machine it runs,
only Docker is required, but avoids to relay that all tools are installed.

[1]
https://github.com/apache/directory-buildtools/tree/master/docker/maven-build


On 6/18/19 6:48 PM, Shawn McKinney wrote:
> Thanks Brian and Stefan for the advice.  I’ll try it out in a sandbox and report back here how it goes.
> 
> —Shawn
> 
>> On Jun 17, 2019, at 12:09 PM, Stefan Seelmann <ma...@stefan-seelmann.de> wrote:
>>
>> Yes, with other Directory projects (LDAP API, server, studio still WIP)
>> we do it exactly like that. Additionally in CI we use the lowest (Java
>> 8) to build artifacts (installers and JARs uploaded to snapshot repo)
>> just to be on the safe side.
>>
>> Reading JAXB made me shrug, I didn't manage to get it working with
>> Java11+OSGi for Studio (ehcache required JAXb), so replace it with Caffeine.
>>
>> Also, skip Java 9 and 10 which are already EOL. I'd suggest to support 8
>> and 11 which are somehow LTS releases (at least AdoptOpenJDK provides
>> support) and the latest (Java 12 currently).
>>
>> Kind Regards,
>> Stefan
>>
>> On 6/17/19 4:47 PM, Brian Demers wrote:
>>> IMHO, setting the source & target to 1.8 (or whatever the lower end of your
>>> support range is) and running a CI job with a range of versions is the
>>> way to go (1.8, 11, etc)
>>> That way this uncovers the issues similar to you have mentioned and retains
>>> backward compatibility with any of the dependencies you update.
>>> I do something similar at my day job, and IIRC Spring does this too.
>>>
>>>
>>> On Mon, Jun 17, 2019 at 10:37 AM Shawn McKinney <sm...@apache.org>
>>> wrote:
>>>
>>>> Hello,
>>>>
>>>> An assertion about Java9 support…
>>>>
>>>> Directory projects should support Java9++ but not require it.
>>>>
>>>> The adding part is pretty easy.  Update the pom, change the compiler
>>>> plugin, add missing dependencies for JAXB, …
>>>>
>>>> The not requiring is perhaps the tricky part.
>>>>
>>>> What is the best way to allow the user to pick which compiler to use
>>>> without boxing them into one or the other?
>>>>
>>>> Open to suggestions, comments, laments, etc...
>>>>
>>>> Thanks,
>>>> —Shawn
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscribe@directory.apache.org
>>>> For additional commands, e-mail: dev-help@directory.apache.org
>>>>
>>>>
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@directory.apache.org
>> For additional commands, e-mail: dev-help@directory.apache.org
>>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@directory.apache.org
> For additional commands, e-mail: dev-help@directory.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@directory.apache.org
For additional commands, e-mail: dev-help@directory.apache.org


Re: Supporting Java9++

Posted by Shawn McKinney <sm...@apache.org>.
Thanks Brian and Stefan for the advice.  I’ll try it out in a sandbox and report back here how it goes.

—Shawn

> On Jun 17, 2019, at 12:09 PM, Stefan Seelmann <ma...@stefan-seelmann.de> wrote:
> 
> Yes, with other Directory projects (LDAP API, server, studio still WIP)
> we do it exactly like that. Additionally in CI we use the lowest (Java
> 8) to build artifacts (installers and JARs uploaded to snapshot repo)
> just to be on the safe side.
> 
> Reading JAXB made me shrug, I didn't manage to get it working with
> Java11+OSGi for Studio (ehcache required JAXb), so replace it with Caffeine.
> 
> Also, skip Java 9 and 10 which are already EOL. I'd suggest to support 8
> and 11 which are somehow LTS releases (at least AdoptOpenJDK provides
> support) and the latest (Java 12 currently).
> 
> Kind Regards,
> Stefan
> 
> On 6/17/19 4:47 PM, Brian Demers wrote:
>> IMHO, setting the source & target to 1.8 (or whatever the lower end of your
>> support range is) and running a CI job with a range of versions is the
>> way to go (1.8, 11, etc)
>> That way this uncovers the issues similar to you have mentioned and retains
>> backward compatibility with any of the dependencies you update.
>> I do something similar at my day job, and IIRC Spring does this too.
>> 
>> 
>> On Mon, Jun 17, 2019 at 10:37 AM Shawn McKinney <sm...@apache.org>
>> wrote:
>> 
>>> Hello,
>>> 
>>> An assertion about Java9 support…
>>> 
>>> Directory projects should support Java9++ but not require it.
>>> 
>>> The adding part is pretty easy.  Update the pom, change the compiler
>>> plugin, add missing dependencies for JAXB, …
>>> 
>>> The not requiring is perhaps the tricky part.
>>> 
>>> What is the best way to allow the user to pick which compiler to use
>>> without boxing them into one or the other?
>>> 
>>> Open to suggestions, comments, laments, etc...
>>> 
>>> Thanks,
>>> —Shawn
>>> 
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscribe@directory.apache.org
>>> For additional commands, e-mail: dev-help@directory.apache.org
>>> 
>>> 
>> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@directory.apache.org
> For additional commands, e-mail: dev-help@directory.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@directory.apache.org
For additional commands, e-mail: dev-help@directory.apache.org


Re: Supporting Java9++

Posted by Stefan Seelmann <ma...@stefan-seelmann.de>.
Yes, with other Directory projects (LDAP API, server, studio still WIP)
we do it exactly like that. Additionally in CI we use the lowest (Java
8) to build artifacts (installers and JARs uploaded to snapshot repo)
just to be on the safe side.

Reading JAXB made me shrug, I didn't manage to get it working with
Java11+OSGi for Studio (ehcache required JAXb), so replace it with Caffeine.

Also, skip Java 9 and 10 which are already EOL. I'd suggest to support 8
and 11 which are somehow LTS releases (at least AdoptOpenJDK provides
support) and the latest (Java 12 currently).

Kind Regards,
Stefan

On 6/17/19 4:47 PM, Brian Demers wrote:
> IMHO, setting the source & target to 1.8 (or whatever the lower end of your
> support range is) and running a CI job with a range of versions is the
> way to go (1.8, 11, etc)
> That way this uncovers the issues similar to you have mentioned and retains
> backward compatibility with any of the dependencies you update.
> I do something similar at my day job, and IIRC Spring does this too.
> 
> 
> On Mon, Jun 17, 2019 at 10:37 AM Shawn McKinney <sm...@apache.org>
> wrote:
> 
>> Hello,
>>
>> An assertion about Java9 support…
>>
>> Directory projects should support Java9++ but not require it.
>>
>> The adding part is pretty easy.  Update the pom, change the compiler
>> plugin, add missing dependencies for JAXB, …
>>
>> The not requiring is perhaps the tricky part.
>>
>> What is the best way to allow the user to pick which compiler to use
>> without boxing them into one or the other?
>>
>> Open to suggestions, comments, laments, etc...
>>
>> Thanks,
>> —Shawn
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@directory.apache.org
>> For additional commands, e-mail: dev-help@directory.apache.org
>>
>>
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@directory.apache.org
For additional commands, e-mail: dev-help@directory.apache.org


Re: Supporting Java9++

Posted by Brian Demers <br...@gmail.com>.
IMHO, setting the source & target to 1.8 (or whatever the lower end of your
support range is) and running a CI job with a range of versions is the
way to go (1.8, 11, etc)
That way this uncovers the issues similar to you have mentioned and retains
backward compatibility with any of the dependencies you update.
I do something similar at my day job, and IIRC Spring does this too.


On Mon, Jun 17, 2019 at 10:37 AM Shawn McKinney <sm...@apache.org>
wrote:

> Hello,
>
> An assertion about Java9 support…
>
> Directory projects should support Java9++ but not require it.
>
> The adding part is pretty easy.  Update the pom, change the compiler
> plugin, add missing dependencies for JAXB, …
>
> The not requiring is perhaps the tricky part.
>
> What is the best way to allow the user to pick which compiler to use
> without boxing them into one or the other?
>
> Open to suggestions, comments, laments, etc...
>
> Thanks,
> —Shawn
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@directory.apache.org
> For additional commands, e-mail: dev-help@directory.apache.org
>
>