[infinispan-dev] Infinispan Test language level to Java 8?

Sanne Grinovero sanne at infinispan.org
Wed Apr 30 10:31:50 EDT 2014


Valid concerns, but I think we should split those in two very
different categories:
 1- we provide testing utilities which are quite useful to other people too
 2- we run unit tests on our own code to prevent regressions

If we split the utilities into a properly delivered package - built
with Java7, having a very own Maven identity and maybe even a user
guide - that would be even more useful to consumers. For example I use
some of the utilities in both Hibernate Search and Hibernate OGM,
dependending on the testing classifier of infinispan-core. I'd prefer
to depend on a "proper" module with a somehow stable API, and this
would be a great improvement for our users who start playing with
Infinispan.. I often refer to our testsuite to explain how to setup
things.

For the second use case - our own test execution - I see great
advantages from using Java8. First of, to verify that the API's we're
developing today will make sense in a lambda enabled world: we might
not baseline on it today but it's very hard to do forward-compatible
thinking without actually experimenting with the API in TDD before
this is cast in stone. Remember TDD is a design metodology, not a QA
approach.

But I agree with Adrian on not wanting to fully trust animal-sniffer
with this task, nor I like the "flexibility" we have in IDEs for a
single module being mixed.
For the record Hibernate has been since long keeping the test
infrastructure in a different module; we could explore an alternative
code organization. While it's important to have some core tests
closely coupled with the module it's meant to test, I don't see why we
couldn't have additional tests in a different module?

+1 to have at least one module using (requiring) Java8. Yes,
contributors will need to have it around.. I don't see a problem, any
potentially good contributor should have it around by now.

Sanne



On 30 April 2014 13:12, Adrian Nistor <anistor at redhat.com> wrote:
>  > Another potential problem, as rightly pointed out by Will on IRC, is
> that it would also cause issues for anyone trying to run our testsuite
> with JDK7 or earlier, if anyone is doing such a thing.
>
> Galder, we may be doing such a thing :) The test suite is meant to
> verify correctness of our libraries when executed against a concrete set
> of external dependencies, with clearly specified supported versions or
> version intervals - the jdk being the most important of them.
>
> Since we'll no longer be able to run on jdk 7 we can no longer support
> jdk. Even if animal-sniffer cheerfully reports we've not broken binary
> compat, that still does not mean much when it comes to jdk version
> specific issues, or jdk maker specific issue (remember the IBM jdk
> oddities).
>
> Mavenwise, I think it is not possible to have a different compiler
> language level for module sources vs. test sources and Eclipse and
> Intellij also cannot cope with two source levels per module, so this
> would introduce some unnecessary development discomfort.  I would vote
> no for this.
>
> Adrian
>
> On 04/30/2014 02:55 PM, Galder Zamarreño wrote:
>> On 30 Apr 2014, at 13:36, Galder Zamarreño <galder at redhat.com> wrote:
>>
>>> Hi all,
>>>
>>> Just thinking out loud: what about we start using JDK8+ for all the test code in Infinispan?
>>>
>>> The production code would still have language level 6/7 (whatever is required…).
>>>
>>> This way we start getting ourselves familiar with JDK8 in a safe environment and we reduce some of the boiler plate code currently existing in the tests.
>>>
>>> This would only problematic for anyone consuming our test jars. They’d need move up to JDK8+ along with us.
>> Another potential problem, as rightly pointed out by Will on IRC, is that it would also cause issues for anyone trying to run our testsuite with JDK7 or earlier, if anyone is doing such a thing.
>>
>>> Thoughts?
>>>
>>> p.s. Recently I found https://leanpub.com/whatsnewinjava8/read which provides a great overview on what’s new in JDK8 along with small code samples.
>>> --
>>> Galder Zamarreño
>>> galder at redhat.com
>>> twitter.com/galderz
>>>
>>>
>>> _______________________________________________
>>> infinispan-dev mailing list
>>> infinispan-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/infinispan-dev
>>
>> --
>> Galder Zamarreño
>> galder at redhat.com
>> twitter.com/galderz
>>
>>
>> _______________________________________________
>> infinispan-dev mailing list
>> infinispan-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/infinispan-dev
>
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev



More information about the infinispan-dev mailing list