├── .gitignore ├── LICENSE.txt ├── README.md ├── RI-V1-test └── pom.xml ├── blazingcache-V1-test └── pom.xml ├── cache2k-V1-test ├── pom.xml └── src │ └── test │ └── resources │ └── ExcludeList ├── caffeine-V2-test └── pom.xml ├── coherence-V12-test ├── install-coherence.md └── pom.xml ├── ehcache-V3-test ├── pom.xml └── src │ └── test │ └── resources │ └── ExcludeList ├── ehcache-jcache-V1-test └── pom.xml ├── hazelcast-V3.4-test └── pom.xml ├── ignite-V1-test └── pom.xml ├── infinispan-V7-test └── pom.xml ├── jcs-V2-test └── pom.xml ├── pom.xml ├── redisson-V2-test ├── README.md ├── pom.xml └── src │ └── test │ └── resources │ └── redisson-jcache.json ├── report.awk ├── report.md ├── src └── test │ └── resources │ ├── ExcludeList │ ├── log4j.properties │ └── unwrap.properties └── triavacache-V1-test └── pom.xml /.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | .idea 3 | test.log 4 | *.iml 5 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2011-2015 Terracotta, Inc. 3 | * Copyright 2011-2015 Oracle, Inc. 4 | * Copyright 2015 headissue GmbH, Jens Wilke 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # TCK tests for open source JSR107 implementations 2 | 3 | This project uses the maven test runner to execute JSR107 TCK tests for available open source cache implementations. These are: 4 | 5 | * JCache RI 6 | * Ehcache 7 | * Hazelcast 8 | * Apache Ignite 9 | * Infinispan 10 | * Blazing Cache 11 | * Caffeine 12 | * Triava Cache 13 | * redisson (Redis based In-Memory Data Grid for Java) 14 | 15 | These closed source implementations need to be downloaded separately: 16 | 17 | * Oracle Coherence 18 | 19 | ## Running the tests 20 | 21 | mvn clean test 22 | 23 | ## Run the tests and get a summary report 24 | 25 | mvn clean test 2>&1 | awk -f report.awk 26 | 27 | ## Run tests of Open Source implementations and Oracle Coherence 28 | 29 | mvn -Pcoherence clean test 30 | 31 | Oracle Coherence jars are not available on maven central. They need to be downloaded and installed 32 | separately. Installing Coherence for testing purposes is quite easy, 33 | see [Install Oracle Coherence](coherence-V12-test/install-coherence.md). 34 | 35 | ## Running the tests against a new TCK version 36 | 37 | mvn -fn -Pcoherence -Djcache.tck.version=1.0.1-SNAPSHOT clean test 38 | 39 | The switch `-fn` means fail never and ensures that all implementations are tested. If this parameter is not set 40 | maven will stop the build after the first failing module. 41 | 42 | ## Structure 43 | 44 | Each test for an implementation is in a submodule. The submodules contain the relevant configuration details 45 | of each implementation and inherit everything needed for running the TCK tests from the parent project. 46 | 47 | ## Report 48 | 49 | A tiny awk file extracts all relevant information from the output to get a complete overview of the configuration 50 | for each implementation and their test results. 51 | 52 | The latest test run report is here: [report.md](report.md) 53 | 54 | Example: 55 | 56 | ```` 57 | ## RI Version 1.0 test 58 | 59 | Implementation URL: https://github.com/jsr107/RI 60 | 61 | ### Test configuration: 62 | org.jsr107.ri 63 | cache-ri-impl 64 | 1.0.0 65 | org.jsr107.ri.RICacheManager 66 | org.jsr107.ri.RICache 67 | org.jsr107.ri.RIEntry 68 | org.jsr107.ri.management.RITCKMBeanServerBuilder 69 | RIMBeanServer 70 | 1.0.0 71 | 1.0.1 72 | 1.1-SNAPSHOT 73 | 74 | Tests run: 465, Failures: 0, Errors: 0, Skipped: 0 75 | 76 | Excluded tests: 1 77 | 78 | org.jsr107.tck.CachingTest dummyTest 79 | ```` 80 | -------------------------------------------------------------------------------- /RI-V1-test/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | parent 8 | org.cache2k.jsr107-test-zoo 9 | 1.1-SNAPSHOT 10 | 11 | 12 | RI-V1-test 13 | 1.1-SNAPSHOT 14 | 15 | RI Version 1.0 test 16 | https://github.com/jsr107/RI 17 | 18 | 19 | 20 | org.jsr107.ri 21 | cache-ri-impl 22 | 1.0.0 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /blazingcache-V1-test/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | 8 | parent 9 | org.cache2k.jsr107-test-zoo 10 | 1.1-SNAPSHOT 11 | 12 | 13 | blazingcache-V1-test 14 | 1.1-SNAPSHOT 15 | 16 | BlazingCache Version 1.x test 17 | http://blazingcache.org 18 | 19 | 20 | 21 | org.blazingcache 22 | blazingcache-jcache 23 | 1.4.0 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | org.blazingcache 32 | blazingcache-jcache 33 | 1.9.0 34 | 35 | 36 | blazingcache.jcache.BlazingCacheManager 37 | blazingcache.jcache.BlazingCacheCache 38 | blazingcache.jcache.BlazingCacheEntry 39 | 40 | 41 | blazingcache.jcache.BlazingCacheMBeanServerBuilder 42 | RIMBeanServer 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /cache2k-V1-test/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | parent 8 | org.cache2k.jsr107-test-zoo 9 | 1.1-SNAPSHOT 10 | 11 | 12 | cache2k-V1-test 13 | 1.1-SNAPSHOT 14 | cache2k V1.x test 15 | https://cache2k.org 16 | 17 | 18 | 19 | ${implementation-groupId} 20 | ${implementation-artifactId} 21 | ${implementation-version} 22 | 23 | 24 | 25 | 26 | 27 | 28 | org.cache2k 29 | cache2k-jcache 30 | 0.28-BETA 31 | 32 | 33 | org.cache2k.CacheManger 34 | org.cache2k.Cache 35 | org.cache2k.CacheEntry 36 | 37 | 38 | org.cache2k.jcache.provider.tckGlue.TckMBeanServerBuilder 39 | anyvalue 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /cache2k-V1-test/src/test/resources/ExcludeList: -------------------------------------------------------------------------------- 1 | # This is a dummy test that fails if not in the exclude list. 2 | org.jsr107.tck.CachingTest#dummyTest 3 | 4 | # see https://github.com/jsr107/jsr107tck/issues/63 5 | org.jsr107.tck.management.CacheMBStatisticsBeanTest#testPutIfAbsent 6 | -------------------------------------------------------------------------------- /caffeine-V2-test/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | parent 8 | org.cache2k.jsr107-test-zoo 9 | 1.1-SNAPSHOT 10 | 11 | 12 | caffeine-V2-test 13 | 1.1-SNAPSHOT 14 | Caffeine V2.x test 15 | https://github.com/ben-manes/caffeine 16 | 17 | 18 | 19 | ${implementation-groupId} 20 | ${implementation-artifactId} 21 | ${implementation-version} 22 | tests 23 | 24 | 25 | 26 | 27 | 28 | 29 | com.github.ben-manes.caffeine 30 | jcache 31 | 2.1.0 32 | 33 | 34 | com.github.benmanes.caffeine.jcache.CacheManagerImpl 35 | com.github.benmanes.caffeine.jcache.CacheProxy 36 | com.github.benmanes.caffeine.jcache.EntryProxy 37 | 38 | 39 | com.github.benmanes.caffeine.jcache.management.JCacheMBeanServerBuilder 40 | 41 | anyvalue 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /coherence-V12-test/install-coherence.md: -------------------------------------------------------------------------------- 1 | # Install Oracle Coherence 2 | 3 | Note to do a minimal Coherence setup to run the TCK tests against it. 4 | 5 | ## Prerequisites 6 | 7 | * Recent Oracle JDK 8 | * Coherence quick install from: http://www.oracle.com/technetwork/middleware/coherence/downloads/index.html 9 | * Unix/Linux (tested on Ubuntu 14.04) 10 | 11 | The setup is done as normal user (non root). 12 | 13 | ## Install coherence 14 | 15 | The quick install notes can be found here: http://docs.oracle.com/middleware/1213/coherence/develop-applications/gs_install.htm 16 | 17 | ```` 18 | ORACLE_HOME=~/opt/oracle 19 | unzip ~/Downloads/fmw_12.1.3.0.0_coherence_quick_Disk1_1of1.zip 20 | java -jar fmw_12.1.3.0.0_coherence_quick.jar ORACLE_HOME=$ORACLE_HOME 21 | ```` 22 | 23 | ## Install coherence jars to local maven repository 24 | 25 | Luckily, we do not need to start up a coherence server instance. Oracle Coherence provides us a local cache 26 | implementation. For running the tests we just need to have two jars available. 27 | 28 | ```` 29 | ORACLE_HOME=~/opt/oracle 30 | COHERENCE_VERSION=12.1.3 31 | mvn install:install-file -DpomFile=$ORACLE_HOME/coherence/plugins/maven/com/oracle/coherence/coherence-jcache/$COHERENCE_VERSION/coherence-jcache.$COHERENCE_VERSION.pom -Dfile=$ORACLE_HOME/coherence/lib/coherence-jcache.jar 32 | mvn install:install-file -DpomFile=$ORACLE_HOME/coherence/plugins/maven/com/oracle/coherence/coherence/$COHERENCE_VERSION/coherence.$COHERENCE_VERSION.pom -Dfile=$ORACLE_HOME/coherence/lib/coherence.jar 33 | ```` 34 | 35 | -------------------------------------------------------------------------------- /coherence-V12-test/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | parent 8 | org.cache2k.jsr107-test-zoo 9 | 1.1-SNAPSHOT 10 | 11 | 12 | coherence-V12-test 13 | 1.1-SNAPSHOT 14 | 15 | coherence V12.1.3 test 16 | http://www.oracle.com/technetwork/middleware/coherence/overview/index.html 17 | 18 | 19 | 20 | com.oracle.coherence 21 | coherence-jcache 22 | 12.1.3-0-0 23 | 24 | 25 | 26 | javax.cache 27 | java-api 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | com.oracle.coherence 37 | coherence 38 | 12.1.3-0-0 39 | 40 | 41 | com.tangosol.coherence.jcache.CoherenceBasedCacheManager 42 | com.tangosol.coherence.jcache.CoherenceBasedCache 43 | com.tangosol.coherence.jcache.common.CoherenceCacheEntry 44 | 45 | 46 | com.tangosol.net.management.jmx.WrapperMBeanServerBuilder 47 | Coherence WrapperMBeanServer 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /ehcache-V3-test/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | parent 7 | org.cache2k.jsr107-test-zoo 8 | 1.1-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | ehcache-v3-test 13 | 1.1-SNAPSHOT 14 | 15 | Ehcache V3 test 16 | https://github.com/ehcache/ehcache3 17 | 18 | 19 | 20 | 21 | org.ehcache 22 | ehcache 23 | 3.1.3 24 | 25 | 26 | org.ehcache.CacheManager 27 | org.ehcache.Cache 28 | org.ehcache.Cache$Entry 29 | 30 | 31 | org.ehcache.jsr107.internal.tck.Eh107MBeanServerBuilder 32 | 33 | anyvalue 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /ehcache-V3-test/src/test/resources/ExcludeList: -------------------------------------------------------------------------------- 1 | #List tests to be excluded. 2 | #Lines beginning with a '#' are comments 3 | #Enter One method per line with syntax FULL_CLASS_NAME#METHOD_NAME as in the example below 4 | 5 | # This is a dummy test that fails if not in the exclude list. 6 | org.jsr107.tck.CachingTest#dummyTest 7 | 8 | # see https://github.com/jsr107/jsr107tck/issues/63 9 | org.jsr107.tck.management.CacheMBStatisticsBeanTest#testPutIfAbsent 10 | 11 | # see https://github.com/jsr107/jsr107tck/issues/61 12 | org.jsr107.tck.spi.CachingProviderClassLoaderTest#getCacheManagerSingleton 13 | 14 | -------------------------------------------------------------------------------- /ehcache-jcache-V1-test/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | parent 7 | org.cache2k.jsr107-test-zoo 8 | 1.1-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | ehcache-jcache-V1-test 13 | 1.1-SNAPSHOT 14 | 15 | Ehcache-JCache V1.x test 16 | https://github.com/ehcache/ehcache-jcache 17 | 18 | 19 | 20 | 21 | org.ehcache 22 | jcache 23 | 1.0.1 24 | 25 | 26 | org.ehcache.jcache.JCacheManager 27 | org.ehcache.jcache.JCache 28 | org.ehcache.jcache.JCacheEntry 29 | 30 | 31 | org.ehcache.jcache.tck.TCKMBeanServerBuilder 32 | 33 | anyvalue 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /hazelcast-V3.4-test/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | parent 8 | org.cache2k.jsr107-test-zoo 9 | 1.1-SNAPSHOT 10 | 11 | 12 | hazelcast-V3.4-test 13 | 1.1-SNAPSHOT 14 | Hazelcast V3.4.x test 15 | http://docs.hazelcast.org/docs/3.4/manual/html/jcache.html 16 | 17 | 18 | 19 | 20 | com.hazelcast 21 | hazelcast 22 | 3.4.2 23 | 24 | 25 | com.hazelcast.cache.impl.HazelcastServerCacheManager 26 | com.hazelcast.cache.ICache 27 | com.hazelcast.cache.impl.CacheEntry 28 | 29 | 30 | com.hazelcast.cache.impl.TCKMBeanServerBuilder 31 | 32 | anyvalue 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /ignite-V1-test/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | parent 8 | org.cache2k.jsr107-test-zoo 9 | 1.1-SNAPSHOT 10 | 11 | 12 | ignite-V1-test 13 | 1.1-SNAPSHOT 14 | Apache Ignite 1.x test 15 | http://apacheignite.readme.io/v1.0/docs/jcache 16 | 17 | 18 | 19 | 20 | org.apache.ignite 21 | ignite-core 22 | 1.0.0 23 | 24 | 25 | org.apache.ignite.cache.CacheManager 26 | org.apache.ignite.IgniteCache 27 | org.apache.ignite.internal.processors.cache.CacheEntryImpl 28 | 29 | 30 | org.apache.ignite.internal.tck.TCKMBeanServerBuilder 31 | 32 | anyvalue 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /infinispan-V7-test/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | parent 8 | org.cache2k.jsr107-test-zoo 9 | 1.1-SNAPSHOT 10 | 11 | 12 | infinispan-V7-test 13 | 1.1-SNAPSHOT 14 | Infinispan 7.x test 15 | http://infinispan.org/docs/7.0.x/user_guide/user_guide.html#_using_infinispan_as_a_jsr107_jcache_provider 16 | 17 | 18 | 19 | 20 | org.infinispan 21 | infinispan-jcache 22 | 7.2.2.Final 23 | 24 | 25 | org.infinispan.jcache.embedded.JCacheManager 26 | org.infinispan.jcache.embedded.JCache 27 | org.infinispan.jcache.JCacheEntry 28 | 29 | 30 | org.infinispan.jcache.tck.TckMbeanServerBuilder 31 | 32 | anyvalue 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /jcs-V2-test/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | 8 | parent 9 | org.cache2k.jsr107-test-zoo 10 | 1.1-SNAPSHOT 11 | 12 | 13 | jcs-V2-test 14 | 1.1-SNAPSHOT 15 | 16 | Apache JCS Version 2.0 test 17 | https://commons.apache.org/proper/commons-jcs/ 18 | 19 | 20 | 21 | org.apache.commons 22 | commons-jcs-jcache 23 | 2.0-beta-1 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | org.apache.commons 32 | commons-jcs-jcache 33 | 2.0-beta-1 34 | 35 | 36 | org.apache.commons.jcs.jcache.JCSCachingManager 37 | org.apache.commons.jcs.jcache.JCSCache 38 | org.apache.commons.jcs.jcache.JCSEntry 39 | 40 | 41 | org.apache.commons.jcs.jcache.jmx.ConfigurableMBeanServerIdBuilder 42 | MBeanServerJCS 43 | 44 | 45 | -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- 1 | 5 | 4.0.0 6 | org.cache2k.jsr107-test-zoo 7 | parent 8 | 1.1-SNAPSHOT 9 | 10 | pom 11 | 12 | JSR107 TCK testing zoo 13 | 14 | Collection of modules that test implementations of JSR107 against the TCK. This is the parent pom of all 15 | testing modules. 16 | 17 | https://github.com/cruftex/jsr107-test-zoo 18 | 19 | 20 | 1.0.0 21 | 1.0.1 22 | UTF-8 23 | UTF-8 24 | 25 | 26 | javax.cache.annotation.impl.cdi.CdiCacheKeyInvocationContextImpl 27 | 28 | 29 | ${project.build.directory}/domainlib 30 | domain.jar 31 | 32 | 33 | true 34 | 35 | 40 | 41 | 42 | org.jsr107.ri 43 | cache-ri-impl 44 | 1.0.0 45 | 46 | 47 | org.jsr107.ri.RICacheManager 48 | org.jsr107.ri.RICache 49 | org.jsr107.ri.RIEntry 50 | 51 | 52 | org.jsr107.ri.management.RITCKMBeanServerBuilder 53 | 54 | RIMBeanServer 55 | 56 | 57 | 58 | 59 | 60 | 61 | javax.cache 62 | cache-api 63 | ${jcache.api.version} 64 | 65 | 66 | 67 | javax.cache 68 | test-domain 69 | ${jcache.tck.version} 70 | 71 | 72 | 73 | javax.cache 74 | cache-tests 75 | ${jcache.tck.version} 76 | 77 | 78 | 79 | javax.cache 80 | cache-tests 81 | tests 82 | test 83 | ${jcache.tck.version} 84 | 85 | 86 | 87 | junit 88 | junit 89 | 4.11 90 | 91 | 92 | 93 | org.hamcrest 94 | hamcrest-library 95 | 1.2 96 | test 97 | 98 | 99 | 100 | ${implementation-groupId} 101 | ${implementation-artifactId} 102 | ${implementation-version} 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | ../src/test/resources 112 | true 113 | 114 | 115 | src/test/resources 116 | true 117 | 118 | 119 | 120 | 121 | 122 | 123 | maven-compiler-plugin 124 | 2.3.2 125 | 126 | 1.7 127 | 1.7 128 | 129 | 130 | 131 | 134 | 135 | org.apache.maven.plugins 136 | maven-jar-plugin 137 | 2.4 138 | 139 | 140 | 141 | test-jar 142 | 143 | 144 | 145 | 146 | 147 | 148 | org.apache.maven.plugins 149 | maven-dependency-plugin 150 | 2.8 151 | 152 | 153 | 154 | copy-cache-tests 155 | 156 | unpack-dependencies 157 | 158 | 159 | ${project.build.testOutputDirectory} 160 | 161 | cache-tests 162 | test 163 | 164 | 165 | 166 | copy-domain 167 | 168 | copy 169 | 170 | 171 | 172 | 173 | javax.cache 174 | app-domain 175 | ${jcache.tck.version} 176 | ${domain-lib-dir} 177 | 178 | ${domain-jar} 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | org.apache.maven.plugins 188 | maven-surefire-plugin 189 | 2.9 190 | 191 | 192 | ${java.net.preferIPv4Stack} 193 | ${domain-lib-dir}/${domain-jar} 194 | ${javax.management.builder.initial} 195 | 196 | ${org.jsr107.tck.management.agentId} 197 | 198 | ${CacheManagerImpl} 199 | ${CacheImpl} 200 | ${CacheEntryImpl} 201 | $ 202 | {CacheInvocationContextImpl} 203 | 204 | 205 | false 206 | 207 | true 208 | 209 | 210 | **/annotation/*Test.java 211 | 212 | 213 | 214 | 215 | 216 | org.apache.maven.plugins 217 | maven-antrun-plugin 218 | 1.1 219 | 220 | 221 | validate 222 | 223 | run 224 | 225 | 226 | 227 | Test module: ${project.name} 228 | Implementation URL: ${project.url} 229 | 230 | Test configuration: 231 | <implementation-groupId>${implementation-groupId}</immplementation-groupId> 232 | <implementation-artifactId>${implementation-artifactId}</implementation-artifactId> 233 | <implementation-version>${implementation-version}</implementation-version> 234 | 235 | <CacheManagerImpl>${CacheManagerImpl}</CacheManagerImpl> 236 | <CacheImpl>${CacheImpl}</CacheImpl> 237 | <CacheEntryImpl>${CacheEntryImpl}</CacheEntryImpl> 238 | 239 | <javax.management.builder.initial>${javax.management.builder.initial}</javax.management.builder.initial> 240 | <org.jsr107.tck.management.agentId>${org.jsr107.tck.management.agentId}</org.jsr107.tck.management.agentId> 241 | 242 | <jcache.api.version>${jcache.api.version}<jcache.api.version> 243 | <jcache.tck.version>${jcache.tck.version}<jcache.tck.version> 244 | <jsr107-test-zoo-version>${project.version}<jsr107-test-zoo-version> 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | The Apache Software License, Version 2.0 258 | http://www.apache.org/licenses/LICENSE-2.0.txt 259 | repo 260 | 261 | 262 | 263 | 267 | 268 | RI-V1-test 269 | infinispan-V7-test 270 | ignite-V1-test 271 | ehcache-jcache-V1-test 272 | ehcache-V3-test 273 | hazelcast-V3.4-test 274 | jcs-V2-test 275 | blazingcache-V1-test 276 | caffeine-V2-test 277 | triavacache-V1-test 278 | cache2k-V1-test 279 | 280 | 281 | 282 | 285 | 286 | redisson 287 | 288 | true 289 | 290 | 291 | redisson-V2-test 292 | 293 | 294 | 295 | coherence 296 | 297 | coherence-V12-test 298 | 299 | 300 | 301 | 302 | 303 | -------------------------------------------------------------------------------- /redisson-V2-test/README.md: -------------------------------------------------------------------------------- 1 | # TCK tests for Redisson based JCache implementation 2 | 3 | ## Running the tests 4 | 5 | mvn clean test -Dredis.path=/usr/bin/redis-server 6 | 7 | `redis.path` param should point to redis server binary file 8 | 9 | -------------------------------------------------------------------------------- /redisson-V2-test/pom.xml: -------------------------------------------------------------------------------- 1 |  2 | 5 | 6 | 4.0.0 7 | 8 | parent 9 | org.cache2k.jsr107-test-zoo 10 | 1.1-SNAPSHOT 11 | 12 | 13 | redisson-V2-test 14 | 1.1-SNAPSHOT 15 | Redisson JCache test 16 | http://redisson.org 17 | 18 | 19 | 20 | 21 | org.codehaus.mojo 22 | exec-maven-plugin 23 | 1.5.0 24 | 25 | 26 | run-redis 27 | process-test-resources 28 | 29 | exec 30 | 31 | 32 | 33 | 34 | ${redis.path} 35 | true 36 | true 37 | 38 | --appendonly 39 | no 40 | --port 41 | 6371 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | /usr/bin/redis-server 50 | 51 | 52 | org.redisson 53 | redisson 54 | 2.7.2 55 | 56 | 57 | org.redisson.jcache.JCacheManager 58 | org.redisson.jcache.JCache 59 | org.redisson.jcache.JCacheEntry 60 | 61 | 62 | org.redisson.jcache.JCacheMBeanServerBuilder 63 | 64 | anyvalue 65 | 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /redisson-V2-test/src/test/resources/redisson-jcache.json: -------------------------------------------------------------------------------- 1 | { 2 | "singleServerConfig":{ 3 | "address": "redis://127.0.0.1:6371" 4 | }, 5 | "codec": {"class":"org.redisson.codec.SerializationCodec"} 6 | 7 | } -------------------------------------------------------------------------------- /report.awk: -------------------------------------------------------------------------------- 1 | # Copyright 2015 headissue GmbH, Jens Wilke 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # Filter and print only relevant output from the command: mvn tes 16 | 17 | BEGIN { print "# JSR107 open source implementation test overview"; } 18 | 19 | /Test module/ && !/zoo$/ { header=1; excludedCnt=0; $1=""; $2=""; $3=""; print "## "trim($0); print ""; next;} 20 | /\[INFO\]/ && header { header=0; print "````"; next; } 21 | header && /Test configuration/ { print "### Test configuration"; print ""; print "```` xml"; next; } 22 | header { $1=""; print trim($0); next;} 23 | 24 | /EXCLUDING TEST/ { excludedTxt[excludedCnt++]=$5" "$6;} 25 | 26 | /Results :/ { results=1; print ""; print "### Test result"; next; } 27 | /\[INFO\]/ && results { results=0; 28 | print "### Excluded tests"; print ""; 29 | # excludedCnt; 30 | # split (excludedTxt, A, "\n"); 31 | for (i = 0; i < excludedCnt; i++) { 32 | txt=excludedTxt[i]; 33 | sub(/\.$/, "", txt); 34 | gsub(/'/, "", txt); 35 | print "- "txt; 36 | } 37 | print ""; print "Excluded tests total: "excludedCnt; 38 | print ""; 39 | # print excludedTxt; 40 | next; } 41 | results { print; next; } 42 | 43 | 44 | /\[INFO\] Reactor Summary:/ { print ""; summary=1; print "# Test run summary"; print "````"; next;} 45 | /\[INFO\] ----------.*/ && summary { print "````"; summary=0; next; } 46 | summary && /\.\./ { $1=""; print trim($0); next; } 47 | 48 | function ltrim(s) { sub(/^[ \t\r\n]+/, "", s); return s } 49 | function rtrim(s) { sub(/[ \t\r\n]+$/, "", s); return s } 50 | function trim(s) { return rtrim(ltrim(s)); } 51 | -------------------------------------------------------------------------------- /report.md: -------------------------------------------------------------------------------- 1 | # JSR107 open source implementation test overview 2 | ## RI Version 1.0 test 3 | 4 | Implementation URL: https://github.com/jsr107/RI 5 | 6 | ### Test configuration 7 | 8 | ```` xml 9 | org.jsr107.ri 10 | cache-ri-impl 11 | 1.0.0 12 | org.jsr107.ri.RICacheManager 13 | org.jsr107.ri.RICache 14 | org.jsr107.ri.RIEntry 15 | org.jsr107.ri.management.RITCKMBeanServerBuilder 16 | RIMBeanServer 17 | 1.0.0 18 | 1.0.1 19 | 1.1-SNAPSHOT 20 | ```` 21 | 22 | ### Test result 23 | 24 | Tests run: 465, Failures: 0, Errors: 0, Skipped: 0 25 | 26 | ### Excluded tests 27 | 28 | - org.jsr107.tck.CachingTest dummyTest 29 | 30 | Excluded tests total: 1 31 | 32 | ## Infinispan 7.x test 33 | 34 | Implementation URL: http://infinispan.org/docs/7.0.x/user_guide/user_guide.html#_using_infinispan_as_a_jsr107_jcache_provider 35 | 36 | ### Test configuration 37 | 38 | ```` xml 39 | org.infinispan 40 | infinispan-jcache 41 | 7.2.2.Final 42 | org.infinispan.jcache.embedded.JCacheManager 43 | org.infinispan.jcache.embedded.JCache 44 | org.infinispan.jcache.JCacheEntry 45 | org.infinispan.jcache.tck.TckMbeanServerBuilder 46 | anyvalue 47 | 1.0.0 48 | 1.0.1 49 | 1.1-SNAPSHOT 50 | ```` 51 | 52 | ### Test result 53 | 54 | Tests run: 465, Failures: 0, Errors: 0, Skipped: 0 55 | 56 | ### Excluded tests 57 | 58 | - org.jsr107.tck.CachingTest dummyTest 59 | 60 | Excluded tests total: 1 61 | 62 | ## Apache Ignite 1.x test 63 | 64 | Implementation URL: http://apacheignite.readme.io/v1.0/docs/jcache 65 | 66 | ### Test configuration 67 | 68 | ```` xml 69 | org.apache.ignite 70 | ignite-core 71 | 1.0.0 72 | org.apache.ignite.cache.CacheManager 73 | org.apache.ignite.IgniteCache 74 | org.apache.ignite.internal.processors.cache.CacheEntryImpl 75 | org.apache.ignite.internal.tck.TCKMBeanServerBuilder 76 | anyvalue 77 | 1.0.0 78 | 1.0.1 79 | 1.1-SNAPSHOT 80 | ```` 81 | 82 | ### Test result 83 | 84 | Tests run: 465, Failures: 0, Errors: 0, Skipped: 0 85 | 86 | ### Excluded tests 87 | 88 | - org.jsr107.tck.StoreByReferenceTest putIfAbsent_Missing 89 | - org.jsr107.tck.StoreByReferenceTest getAndPut_NotThere 90 | - org.jsr107.tck.StoreByReferenceTest putAll 91 | - org.jsr107.tck.StoreByReferenceTest getAndPut_Existing 92 | - org.jsr107.tck.StoreByReferenceTest putIfAbsent_There 93 | - org.jsr107.tck.StoreByReferenceTest get_Existing 94 | - org.jsr107.tck.StoreByReferenceTest replace_3arg 95 | - org.jsr107.tck.StoreByReferenceTest get_Existing_NotSameKey 96 | - org.jsr107.tck.StoreByReferenceTest put_Existing_NotSameKey 97 | - org.jsr107.tck.StoreByReferenceTest getAndReplace 98 | - org.jsr107.tck.StoreByReferenceTest getAndPut_Existing_NotSameKey 99 | - org.jsr107.tck.CachingTest dummyTest 100 | - org.jsr107.tck.TypesTest simpleAPINoGenericsAndNoTypeEnforcementStoreByReference 101 | 102 | Excluded tests total: 13 103 | 104 | ## Ehcache-JCache V1.x test 105 | 106 | Implementation URL: https://github.com/ehcache/ehcache-jcache 107 | 108 | ### Test configuration 109 | 110 | ```` xml 111 | org.ehcache 112 | jcache 113 | 1.0.1 114 | org.ehcache.jcache.JCacheManager 115 | org.ehcache.jcache.JCache 116 | org.ehcache.jcache.JCacheEntry 117 | org.ehcache.jcache.tck.TCKMBeanServerBuilder 118 | anyvalue 119 | 1.0.0 120 | 1.0.1 121 | 1.1-SNAPSHOT 122 | ```` 123 | 124 | ### Test result 125 | 126 | Tests run: 465, Failures: 0, Errors: 0, Skipped: 0 127 | 128 | ### Excluded tests 129 | 130 | - org.jsr107.tck.CachingTest dummyTest 131 | 132 | Excluded tests total: 1 133 | 134 | ## Ehcache V3 test 135 | 136 | Implementation URL: https://github.com/ehcache/ehcache3 137 | 138 | ### Test configuration 139 | 140 | ```` xml 141 | org.ehcache 142 | ehcache 143 | 3.1.3 144 | org.ehcache.CacheManager 145 | org.ehcache.Cache 146 | org.ehcache.Cache$Entry 147 | org.ehcache.jsr107.internal.tck.Eh107MBeanServerBuilder 148 | anyvalue 149 | 1.0.0 150 | 1.0.1 151 | 1.1-SNAPSHOT 152 | ```` 153 | 154 | ### Test result 155 | 156 | Tests run: 465, Failures: 0, Errors: 0, Skipped: 0 157 | 158 | ### Excluded tests 159 | 160 | - org.jsr107.tck.CachingTest dummyTest 161 | - org.jsr107.tck.spi.CachingProviderClassLoaderTest getCacheManagerSingleton 162 | - org.jsr107.tck.management.CacheMBStatisticsBeanTest testPutIfAbsent 163 | 164 | Excluded tests total: 3 165 | 166 | ## Hazelcast V3.4.x test 167 | 168 | Implementation URL: http://docs.hazelcast.org/docs/3.4/manual/html/jcache.html 169 | 170 | ### Test configuration 171 | 172 | ```` xml 173 | com.hazelcast 174 | hazelcast 175 | 3.4.2 176 | com.hazelcast.cache.impl.HazelcastServerCacheManager 177 | com.hazelcast.cache.ICache 178 | com.hazelcast.cache.impl.CacheEntry 179 | com.hazelcast.cache.impl.TCKMBeanServerBuilder 180 | anyvalue 181 | 1.0.0 182 | 1.0.1 183 | 1.1-SNAPSHOT 184 | ```` 185 | 186 | ### Test result 187 | 188 | Tests run: 465, Failures: 0, Errors: 0, Skipped: 0 189 | 190 | ### Excluded tests 191 | 192 | - org.jsr107.tck.StoreByReferenceTest putIfAbsent_Missing 193 | - org.jsr107.tck.StoreByReferenceTest getAndPut_NotThere 194 | - org.jsr107.tck.StoreByReferenceTest putAll 195 | - org.jsr107.tck.StoreByReferenceTest getAndPut_Existing 196 | - org.jsr107.tck.StoreByReferenceTest putIfAbsent_There 197 | - org.jsr107.tck.StoreByReferenceTest get_Existing 198 | - org.jsr107.tck.StoreByReferenceTest replace_3arg 199 | - org.jsr107.tck.StoreByReferenceTest get_Existing_NotSameKey 200 | - org.jsr107.tck.StoreByReferenceTest put_Existing_NotSameKey 201 | - org.jsr107.tck.StoreByReferenceTest getAndReplace 202 | - org.jsr107.tck.StoreByReferenceTest getAndPut_Existing_NotSameKey 203 | - org.jsr107.tck.CachingTest dummyTest 204 | - org.jsr107.tck.TypesTest simpleAPINoGenericsAndNoTypeEnforcementStoreByReference 205 | 206 | Excluded tests total: 13 207 | 208 | ## Apache JCS Version 2.0 test 209 | 210 | Implementation URL: https://commons.apache.org/proper/commons-jcs/ 211 | 212 | ### Test configuration 213 | 214 | ```` xml 215 | org.apache.commons 216 | commons-jcs-jcache 217 | 2.0-beta-1 218 | org.apache.commons.jcs.jcache.JCSCachingManager 219 | org.apache.commons.jcs.jcache.JCSCache 220 | org.apache.commons.jcs.jcache.JCSEntry 221 | org.apache.commons.jcs.jcache.jmx.ConfigurableMBeanServerIdBuilder 222 | MBeanServerJCS 223 | 1.0.0 224 | 1.0.1 225 | 1.1-SNAPSHOT 226 | ```` 227 | 228 | ### Test result 229 | 230 | Tests run: 465, Failures: 0, Errors: 0, Skipped: 0 231 | 232 | ### Excluded tests 233 | 234 | - org.jsr107.tck.CachingTest dummyTest 235 | 236 | Excluded tests total: 1 237 | 238 | ## BlazingCache Version 1.x test 239 | 240 | Implementation URL: http://blazingcache.org 241 | 242 | ### Test configuration 243 | 244 | ```` xml 245 | org.blazingcache 246 | blazingcache-jcache 247 | 1.9.0 248 | blazingcache.jcache.BlazingCacheManager 249 | blazingcache.jcache.BlazingCacheCache 250 | blazingcache.jcache.BlazingCacheEntry 251 | blazingcache.jcache.BlazingCacheMBeanServerBuilder 252 | RIMBeanServer 253 | 1.0.0 254 | 1.0.1 255 | 1.1-SNAPSHOT 256 | ```` 257 | 258 | ### Test result 259 | 260 | Tests run: 465, Failures: 0, Errors: 0, Skipped: 0 261 | 262 | ### Excluded tests 263 | 264 | - org.jsr107.tck.CachingTest dummyTest 265 | 266 | Excluded tests total: 1 267 | 268 | ## Caffeine V2.x test 269 | 270 | Implementation URL: https://github.com/ben-manes/caffeine 271 | 272 | ### Test configuration 273 | 274 | ```` xml 275 | com.github.ben-manes.caffeine 276 | jcache 277 | 2.1.0 278 | com.github.benmanes.caffeine.jcache.CacheManagerImpl 279 | com.github.benmanes.caffeine.jcache.CacheProxy 280 | com.github.benmanes.caffeine.jcache.EntryProxy 281 | com.github.benmanes.caffeine.jcache.management.JCacheMBeanServerBuilder 282 | anyvalue 283 | 1.0.0 284 | 1.0.1 285 | 1.1-SNAPSHOT 286 | ```` 287 | 288 | ### Test result 289 | 290 | Tests run: 465, Failures: 0, Errors: 0, Skipped: 0 291 | 292 | ### Excluded tests 293 | 294 | - org.jsr107.tck.CachingTest dummyTest 295 | 296 | Excluded tests total: 1 297 | 298 | ## Triava Cache Version 1.0 test 299 | 300 | Implementation URL: https://github.com/trivago/triava 301 | 302 | ### Test configuration 303 | 304 | ```` xml 305 | com.trivago 306 | triava 307 | 0.9.8 308 | com.trivago.triava.tcache.TCacheFactory 309 | com.trivago.triava.tcache.eviction.Cache 310 | com.trivago.triava.tcache.core.TCacheJSR107Entry 311 | com.trivago.triava.tcache.util.TCKMBeanServerBuilder 312 | MBeanServerTriavaCache 313 | 1.0.0 314 | 1.0.1 315 | 1.1-SNAPSHOT 316 | ```` 317 | 318 | ### Test result 319 | 320 | Tests run: 465, Failures: 0, Errors: 0, Skipped: 0 321 | 322 | ### Excluded tests 323 | 324 | - org.jsr107.tck.CachingTest dummyTest 325 | 326 | Excluded tests total: 1 327 | 328 | ## cache2k V1.x test 329 | 330 | Implementation URL: https://cache2k.org 331 | 332 | ### Test configuration 333 | 334 | ```` xml 335 | org.cache2k 336 | cache2k-jcache 337 | 0.28-BETA 338 | org.cache2k.CacheManger 339 | org.cache2k.Cache 340 | org.cache2k.CacheEntry 341 | org.cache2k.jcache.provider.tckGlue.TckMBeanServerBuilder 342 | anyvalue 343 | 1.0.0 344 | 1.0.1 345 | 1.1-SNAPSHOT 346 | ```` 347 | 348 | ### Test result 349 | 350 | Tests run: 465, Failures: 0, Errors: 0, Skipped: 0 351 | 352 | ### Excluded tests 353 | 354 | - org.jsr107.tck.CachingTest dummyTest 355 | - org.jsr107.tck.CacheManagerTest testUnwrap 356 | - org.jsr107.tck.management.CacheMBStatisticsBeanTest testPutIfAbsent 357 | 358 | Excluded tests total: 3 359 | 360 | ## Redisson JCache test 361 | 362 | Implementation URL: http://redisson.org 363 | 364 | ### Test configuration 365 | 366 | ```` xml 367 | org.redisson 368 | redisson 369 | 2.7.2 370 | org.redisson.jcache.JCacheManager 371 | org.redisson.jcache.JCache 372 | org.redisson.jcache.JCacheEntry 373 | org.redisson.jcache.JCacheMBeanServerBuilder 374 | anyvalue 375 | 1.0.0 376 | 1.0.1 377 | 1.1-SNAPSHOT 378 | ```` 379 | 380 | ### Test result 381 | 382 | Tests run: 465, Failures: 0, Errors: 0, Skipped: 0 383 | 384 | ### Excluded tests 385 | 386 | - org.jsr107.tck.StoreByReferenceTest putIfAbsent_Missing 387 | - org.jsr107.tck.StoreByReferenceTest getAndPut_NotThere 388 | - org.jsr107.tck.StoreByReferenceTest putAll 389 | - org.jsr107.tck.StoreByReferenceTest getAndPut_Existing 390 | - org.jsr107.tck.StoreByReferenceTest putIfAbsent_There 391 | - org.jsr107.tck.StoreByReferenceTest get_Existing 392 | - org.jsr107.tck.StoreByReferenceTest replace_3arg 393 | - org.jsr107.tck.StoreByReferenceTest get_Existing_NotSameKey 394 | - org.jsr107.tck.StoreByReferenceTest put_Existing_NotSameKey 395 | - org.jsr107.tck.StoreByReferenceTest getAndReplace 396 | - org.jsr107.tck.StoreByReferenceTest getAndPut_Existing_NotSameKey 397 | - org.jsr107.tck.CachingTest dummyTest 398 | - org.jsr107.tck.TypesTest simpleAPINoGenericsAndNoTypeEnforcementStoreByReference 399 | 400 | Excluded tests total: 13 401 | 402 | 403 | # Test run summary 404 | ```` 405 | JSR107 TCK testing zoo ............................. SUCCESS [ 1.349 s] 406 | RI Version 1.0 test ................................ SUCCESS [ 27.227 s] 407 | Infinispan 7.x test ................................ SUCCESS [ 29.610 s] 408 | Apache Ignite 1.x test ............................. SUCCESS [04:15 min] 409 | Ehcache-JCache V1.x test ........................... SUCCESS [ 28.407 s] 410 | Ehcache V3 test .................................... SUCCESS [ 32.455 s] 411 | Hazelcast V3.4.x test .............................. SUCCESS [04:32 min] 412 | Apache JCS Version 2.0 test ........................ SUCCESS [ 27.779 s] 413 | BlazingCache Version 1.x test ...................... SUCCESS [ 37.752 s] 414 | Caffeine V2.x test ................................. SUCCESS [ 24.784 s] 415 | Triava Cache Version 1.0 test ...................... SUCCESS [ 27.588 s] 416 | cache2k V1.x test .................................. SUCCESS [ 28.161 s] 417 | Redisson JCache test ............................... SUCCESS [04:50 min] 418 | ```` 419 | -------------------------------------------------------------------------------- /src/test/resources/ExcludeList: -------------------------------------------------------------------------------- 1 | #List tests to be excluded. 2 | #Lines beginning with a '#' are comments 3 | #Enter One method per line with syntax FULL_CLASS_NAME#METHOD_NAME as in the example below 4 | 5 | # This is a dummy test that fails if not in the exclude list. 6 | org.jsr107.tck.CachingTest#dummyTest 7 | 8 | # An example of how to exclude a test 9 | #org.jsr107.tck.CachingTest#cachingProviderGetCache 10 | -------------------------------------------------------------------------------- /src/test/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | 2 | # minimal log4j configuration 3 | # almost equivalent to BasicConfigurator.configure() 4 | 5 | log4j.rootLogger=TRACE, N 6 | 7 | log4j.appender.N=org.apache.log4j.varia.NullAppender 8 | 9 | log4j.appender.C=org.apache.log4j.ConsoleAppender 10 | log4j.appender.C.layout=org.apache.log4j.PatternLayout 11 | log4j.appender.C.layout.ConversionPattern=%5p [%t] %d{MMM/dd HH:mm:ss,SSS} %c{2}.[%x] - %m%n 12 | -------------------------------------------------------------------------------- /src/test/resources/unwrap.properties: -------------------------------------------------------------------------------- 1 | javax.cache.CacheManager=${CacheManagerImpl} 2 | javax.cache.Cache=${CacheImpl} 3 | javax.cache.Cache.Entry=${CacheEntryImpl} 4 | javax.cache.annotation.CacheInvocationContext=${CacheInvocationContextImpl} 5 | -------------------------------------------------------------------------------- /triavacache-V1-test/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | 8 | parent 9 | org.cache2k.jsr107-test-zoo 10 | 1.1-SNAPSHOT 11 | 12 | 13 | triavacache-V1-test 14 | 1.1-SNAPSHOT 15 | 16 | Triava Cache Version 1.0 test 17 | https://github.com/trivago/triava 18 | 19 | 20 | 21 | 22 | com.trivago 23 | triava 24 | 0.9.8 25 | 26 | 27 | com.trivago.triava.tcache.TCacheFactory 28 | com.trivago.triava.tcache.eviction.Cache 29 | com.trivago.triava.tcache.core.TCacheJSR107Entry 30 | 31 | 32 | com.trivago.triava.tcache.util.TCKMBeanServerBuilder 33 | MBeanServerTriavaCache 34 | 35 | 36 | 37 | 38 | --------------------------------------------------------------------------------