Question for JSR107 compliance certification

45 views
Skip to first unread message

Enrico Olivelli

unread,
Jan 5, 2016, 9:27:37 AM1/5/16
to jsr107
Hello,
We are going to implement JSR107 on our (Apache2 licensed) Cache Implementation (http://blazingcache.orghttps://github.com/BlazingCache/blazingcache ), I have some question about the TCK and the possibility to have a certification of compliance.


1) Our new release is passing the public TCK, but on the TCK I have some problems on the "Annotation Test Harness" packages, which use ${implementation-version} as version (see cache-annotations-ri-guice for instance), but in my case implementation-version is "1.1.4" and so the build fails. I have to change the pom.xml files in order to let the build finish with a full success.
Is this a problem ?

for instance the command is:
mvn clean install -Dimplementation-groupId=blazingcache -Dimplementation-artifactId=blazingcache-jcache -Dimplementation-version=1.1.4 -DCacheManagerImpl=blazingcache.jcache.BlazingCacheCacheManager -DCacheImpl=blazingcache.jcache.BlazingCacheCache -DCacheEntryImpl=blazingcache.jcache.BlazingCacheEntry -Djavax.management.builder.initial=blazingcache.jcache.BlazingCacheMBeanServerBuilder -Dorg.jsr107.tck.management.agentId=RIMBeanServer


2) We can pass the TCK on v1.0.1-release but if we switch to 'master' we run into a Test failure on testPuIfAbsent, to which version we should be compliant ?

Failed tests:   testPutIfAbsent(org.jsr107.tck.management.CacheMBStatisticsBeanTest): expected:<1> but was:<0>

3) What are the steps to follow in order to get compliance certification (once our JSR107-compliant version will be released) ?

4) We copied into our test-cases some test-cases of the official TCK which is Apache2 licensed, should we remove this tests or it is possible to leave a copy in our source code ?

Regards
-- Enrico Olivelli

Jens Wilke

unread,
Jan 5, 2016, 11:04:57 AM1/5/16
to jsr...@googlegroups.com, Enrico Olivelli
On Tuesday 05 January 2016 06:27:36 Enrico Olivelli wrote:
> Hello,
> We are going to implement JSR107 on our (Apache2 licensed) Cache Implementation (http://blazingcache.org, https://github.com/BlazingCache/blazingcache ), I have some question about the TCK and the possibility to have a certification of compliance.

Enrico,

welcome to the Java cache community!

> 1) Our new release is passing the public TCK, but on the TCK I have some problems on the "Annotation Test Harness" packages, which use ${implementation-version} as version (see cache-annotations-ri-guice for instance), but in my case implementation-version is "1.1.4" and so the build fails. I have to change the pom.xml files in order to let the build finish with a full success.
> Is this a problem ?
>
> for instance the command is:
> mvn clean install -Dimplementation-groupId=blazingcache -Dimplementation-artifactId=blazingcache-jcache -Dimplementation-version=1.1.4 -DCacheManagerImpl=blazingcache.jcache.BlazingCacheCacheManager -DCacheImpl=blazingcache.jcache.BlazingCacheCache -DCacheEntryImpl=blazingcache.jcache.BlazingCacheEntry -Djavax.management.builder.initial=blazingcache.jcache.BlazingCacheMBeanServerBuilder -Dorg.jsr107.tck.management.agentId=RIMBeanServer
>
>
> 2) We can pass the TCK on v1.0.1-release but if we switch to 'master' we run into a Test failure on testPuIfAbsent, to which version we should be compliant ?
>
> Failed tests: testPutIfAbsent(org.jsr107.tck.management.CacheMBStatisticsBeanTest): expected:<1> but was:<0>

Good questions!

Only TCK 1.0.1 is released. The TCK master is corrected, but not released. Since the master contains corrections
it is actually better to comply with the master, however, it is difficult to check your implementation against an unreleased TCK.

> 3) What are the steps to follow in order to get compliance certification (once our JSR107-compliant version will be released) ?

There is no official certification that I know of, however I am not authoritative to answer that.

There is an official list of compatible implementations:
https://jcp.org/aboutJava/communityprocess/implementations/jsr107/index.html

However, this is incomplete and does not reproduce the test parameters.

To fill the gap I'll maintain an unofficial list here, that is actually a complete test suite which checks all
available implementations out there, at least the open source ones.

https://github.com/cruftex/jsr107-test-zoo

The summary report:
https://github.com/cruftex/jsr107-test-zoo/blob/master/report.md

Please publish your artifacts to maven central, then I can include it.

For directions, see:
http://central.sonatype.org/pages/ossrh-guide.html

> 4) We copied into our test-cases some test-cases of the official TCK which is Apache2 licensed, should we remove this tests or it is possible to leave a copy in our source code ?

You do not need to copy the test cases, since these are published as artifact, too. You can see how to do it in the project mentioned above.

For development it is convenient to have a copy in the workspace to be able to run it in the IDE. I do this with a separate maven module enabled by a separate profile. This module is not checked in in the upstream project.

Hope that helps. Have fun!

Best,

Jens

--
"Everything superfluous is wrong!"

// Jens Wilke - headissue GmbH - Germany
\// https://headissue.com

Greg Luck

unread,
Jan 5, 2016, 1:11:22 PM1/5/16
to jsr...@googlegroups.com, Enrico Olivelli

Regards

Greg Luck

skype: gregrluck
mobile US: +1 650 924 6244
mobile Australia: +61 408 061 622

On 5 Jan 2016, at 8:04 AM, Jens Wilke <jw_group...@headissue.com> wrote:

On Tuesday 05 January 2016 06:27:36 Enrico Olivelli wrote:
Hello,
We are going to implement JSR107 on our (Apache2 licensed) Cache Implementation (http://blazingcache.org,  https://github.com/BlazingCache/blazingcache ), I have some question about the TCK and the possibility to have a certification of compliance.

Enrico,

welcome to the Java cache community!

1) Our new release is passing the public TCK, but on the TCK I have some problems on the "Annotation Test Harness" packages, which use ${implementation-version} as version (see cache-annotations-ri-guice for instance), but in my case implementation-version is "1.1.4" and so the build fails. I have to change the pom.xml files in order to let the build finish with a full success.
Is this a problem ?

for instance the command is:
mvn clean install -Dimplementation-groupId=blazingcache -Dimplementation-artifactId=blazingcache-jcache -Dimplementation-version=1.1.4 -DCacheManagerImpl=blazingcache.jcache.BlazingCacheCacheManager -DCacheImpl=blazingcache.jcache.BlazingCacheCache -DCacheEntryImpl=blazingcache.jcache.BlazingCacheEntry -Djavax.management.builder.initial=blazingcache.jcache.BlazingCacheMBeanServerBuilder -Dorg.jsr107.tck.management.agentId=RIMBeanServer


2) We can pass the TCK on v1.0.1-release but if we switch to 'master' we run into a Test failure on testPuIfAbsent, to which version we should be compliant ?

Failed tests:   testPutIfAbsent(org.jsr107.tck.management.CacheMBStatisticsBeanTest): expected:<1> but was:<0>

Good questions!

Only TCK 1.0.1 is released. The TCK master is corrected, but not released. Since the master contains corrections
it is actually better to comply with the master, however, it is difficult to check your implementation against an unreleased TCK.

3) What are the steps to follow in order to get compliance certification (once our JSR107-compliant version will be released) ?

Please post to this list. The spec leads, Brian and I will test it and verify it passes all tests. Then we will add you to the list of compliant releases.


There is no official certification that I know of, however I am not authoritative to answer that.

There is an official list of compatible implementations:
https://jcp.org/aboutJava/communityprocess/implementations/jsr107/index.html

However, this is incomplete and does not reproduce the test parameters.

To fill the gap I'll maintain an unofficial list here, that is actually a complete test suite which checks all
available implementations out there, at least the open source ones.

https://github.com/cruftex/jsr107-test-zoo

The summary report:
https://github.com/cruftex/jsr107-test-zoo/blob/master/report.md

Please publish your artifacts to maven central, then I can include it.

For directions, see:
http://central.sonatype.org/pages/ossrh-guide.html

4) We copied into our test-cases some test-cases of the official TCK which is Apache2 licensed, should we remove this tests or it is possible to leave a copy in our source code ?

You do not need to copy the test cases, since these are published as artifact, too. You can see how to do it in the project mentioned above.

For development it is convenient to have a copy in the workspace to be able to run it in the IDE. I do this with a separate maven module enabled by a separate profile. This module is not checked in in the upstream project.

Hope that helps. Have fun!

Yes, you do not need to copy them. The tests are in their own module. There is also the tck runner which just uses maven coordinates for the implementation.

I typically create a directory called jsr107 and checkout each of the repos into it then set up a simple multi-module maven project with the spec first and then the tests and the runner. I can send you a copy if you like.  


Best,

Jens

--
"Everything superfluous is wrong!"

  // Jens Wilke - headissue GmbH - Germany
\//  https://headissue.com

--
You received this message because you are subscribed to the Google Groups "jsr107" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jsr107+un...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages