Author: ieb
Date: Fri Nov 2 12:11:38 2012
New Revision: 1404940
URL: http://svn.apache.org/viewvc?rev=1404940&view=rev
Log:
SLING-2555 Fixed ehcache bundle and tested inside pax exam.
Added:
sling/whiteboard/ieb/cache/ehcache/src/test/java/org/apache/sling/commons/cache/ehcache/CacheIT.java
(with props)
Modified:
sling/whiteboard/ieb/cache/ehcache/pom.xml
Modified: sling/whiteboard/ieb/cache/ehcache/pom.xml
URL:
http://svn.apache.org/viewvc/sling/whiteboard/ieb/cache/ehcache/pom.xml?rev=1404940&r1=1404939&r2=1404940&view=diff
==============================================================================
--- sling/whiteboard/ieb/cache/ehcache/pom.xml (original)
+++ sling/whiteboard/ieb/cache/ehcache/pom.xml Fri Nov 2 12:11:38 2012
@@ -42,11 +42,23 @@
<url>http://svn.apache.org/viewvc/sling/whiteboard/ieb/cache/ehcache</url>
</scm>
+ <properties>
+ <bundle.build.name>
+ ${basedir}/target
+ </bundle.build.name>
+ <bundle.file.name>
+ ${bundle.build.name}/${project.build.finalName}.jar
+ </bundle.file.name>
+ </properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
+ <artifactId>maven-scr-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.3.6</version>
<extensions>true</extensions>
@@ -56,7 +68,6 @@
!sun.misc,
!org.jgroups.*,
!org.hibernate.cache,
- !edu.emory.mathcs.backport.java.util.*,
*
</Import-Package>
<Private-Package>
@@ -65,12 +76,49 @@
</Private-Package>
<DynamicImport-Package>sun.misc.*</DynamicImport-Package>
<Embed-Transitive>true</Embed-Transitive>
-
<Embed-Dependency>ehcache,jsr107cache</Embed-Dependency>
+
<Embed-Dependency>ehcache,jsr107cache,backport-util-concurrent</Embed-Dependency>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
+ <profiles>
+ <profile>
+ <id>java6</id>
+ <activation>
+ <jdk>1.6</jdk>
+ </activation>
+ <build>
+ <plugins>
+ <!-- integration tests run with pax-exam -->
+ <plugin>
+ <artifactId>maven-failsafe-plugin</artifactId>
+ <version>2.12</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>integration-test</goal>
+ <goal>verify</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <systemProperties>
+ <property>
+ <name>project.bundle.file</name>
+ <value>${bundle.file.name}</value>
+ </property>
+ </systemProperties>
+ <includes>
+ <include>**/*IT.java</include>
+ </includes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
<dependencies>
<dependency>
@@ -118,6 +166,12 @@
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
-
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+
<artifactId>org.apache.sling.commons.cache.container-test</artifactId>
+ <version>0.1-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+
</dependencies>
</project>
Added:
sling/whiteboard/ieb/cache/ehcache/src/test/java/org/apache/sling/commons/cache/ehcache/CacheIT.java
URL:
http://svn.apache.org/viewvc/sling/whiteboard/ieb/cache/ehcache/src/test/java/org/apache/sling/commons/cache/ehcache/CacheIT.java?rev=1404940&view=auto
==============================================================================
---
sling/whiteboard/ieb/cache/ehcache/src/test/java/org/apache/sling/commons/cache/ehcache/CacheIT.java
(added)
+++
sling/whiteboard/ieb/cache/ehcache/src/test/java/org/apache/sling/commons/cache/ehcache/CacheIT.java
Fri Nov 2 12:11:38 2012
@@ -0,0 +1,172 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.sling.commons.cache.ehcache;
+
+import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
+import static org.ops4j.pax.exam.CoreOptions.options;
+import static org.ops4j.pax.exam.CoreOptions.provision;
+
+import javax.inject.Inject;
+
+import org.apache.sling.commons.cache.api.Cache;
+import org.apache.sling.commons.cache.api.CacheManagerService;
+import org.apache.sling.commons.cache.api.CacheScope;
+import org.apache.sling.test.AbstractOSGiRunner;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.Option;
+import org.ops4j.pax.exam.junit.ExamReactorStrategy;
+import org.ops4j.pax.exam.junit.JUnit4TestRunner;
+import org.ops4j.pax.exam.spi.reactors.EagerSingleStagedReactorFactory;
+
+/**
+ * Spin the cache up in a container to verify we have a working system.
+ */
+@RunWith(JUnit4TestRunner.class)
+@ExamReactorStrategy(EagerSingleStagedReactorFactory.class) // we want to spin
up the container once only.
+public class CacheIT extends AbstractOSGiRunner {
+
+
+ @Inject
+ private CacheManagerService cacheManagerService;
+
+
+ @Override
+ protected String getImports() {
+ return "org.apache.sling.commons.cache.api";
+ }
+
+ public Option[] getOptions() {
+ return options(
+ provision(
+ mavenBundle("org.apache.sling",
"org.apache.sling.commons.cache.api")
+ ));
+ }
+
+ protected String getArtifactName() {
+ return "org.apache.sling.commons.cache.ehcache";
+ }
+
+
+
+ @Test
+ public void testCacheManagerReplicated() {
+ String cacheName = "string-cache-replicated";
+ Assert.assertNotNull(cacheManagerService);
+ Cache<String> c = cacheManagerService.getCache(cacheName,
+ CacheScope.CLUSTERREPLICATED);
+ Assert.assertNotNull(c);
+ String v = cacheName +
String.valueOf(System.currentTimeMillis());
+ c.put("key", v);
+ Assert.assertEquals(v, c.get("key"));
+ cacheManagerService.unbind(CacheScope.CLUSTERREPLICATED);
+ cacheManagerService.unbind(CacheScope.CLUSTERINVALIDATED);
+ cacheManagerService.unbind(CacheScope.INSTANCE);
+ cacheManagerService.unbind(CacheScope.REQUEST);
+ cacheManagerService.unbind(CacheScope.THREAD);
+ c = cacheManagerService.getCache(cacheName,
+ CacheScope.CLUSTERREPLICATED);
+ Assert.assertNotNull(c);
+ Assert.assertEquals(v, c.get("key"));
+
+ }
+
+ @Test
+ public void testCacheManagerInvalidated() {
+ String cacheName = "string-cache-invalidated";
+ Assert.assertNotNull(cacheManagerService);
+ Cache<String> c = cacheManagerService.getCache(cacheName,
+ CacheScope.CLUSTERINVALIDATED);
+ Assert.assertNotNull(c);
+ String v = cacheName +
String.valueOf(System.currentTimeMillis());
+ c.put("key", v);
+ Assert.assertEquals(v, c.get("key"));
+ cacheManagerService.unbind(CacheScope.CLUSTERREPLICATED);
+ cacheManagerService.unbind(CacheScope.CLUSTERINVALIDATED);
+ cacheManagerService.unbind(CacheScope.INSTANCE);
+ cacheManagerService.unbind(CacheScope.REQUEST);
+ cacheManagerService.unbind(CacheScope.THREAD);
+ c = cacheManagerService.getCache(cacheName,
+ CacheScope.CLUSTERINVALIDATED);
+ Assert.assertNotNull(c);
+ Assert.assertEquals(v, c.get("key"));
+ }
+
+ //@Test
+ public void testCacheManagerInstance() {
+ String cacheName = "string-cache-instance";
+ Assert.assertNotNull(cacheManagerService);
+ Cache<String> c = cacheManagerService.getCache(cacheName,
+ CacheScope.INSTANCE);
+ Assert.assertNotNull(c);
+ String v = cacheName +
String.valueOf(System.currentTimeMillis());
+ c.put("key", v);
+ Assert.assertEquals(v, c.get("key"));
+ cacheManagerService.unbind(CacheScope.CLUSTERREPLICATED);
+ cacheManagerService.unbind(CacheScope.CLUSTERINVALIDATED);
+ cacheManagerService.unbind(CacheScope.INSTANCE);
+ cacheManagerService.unbind(CacheScope.REQUEST);
+ cacheManagerService.unbind(CacheScope.THREAD);
+ c = cacheManagerService.getCache(cacheName,
CacheScope.INSTANCE);
+ Assert.assertNotNull(c);
+ Assert.assertEquals(v, c.get("key"));
+ }
+
+ @Test
+ public void testCacheManagerRequest() {
+ String cacheName = "string-cache-request";
+ Assert.assertNotNull(cacheManagerService);
+ Cache<String> c = cacheManagerService.getCache(cacheName,
+ CacheScope.REQUEST);
+ Assert.assertNotNull(c);
+ String v = cacheName +
String.valueOf(System.currentTimeMillis());
+ c.put("key", v);
+ Assert.assertEquals(v, c.get("key"));
+ cacheManagerService.unbind(CacheScope.CLUSTERREPLICATED);
+ cacheManagerService.unbind(CacheScope.CLUSTERINVALIDATED);
+ cacheManagerService.unbind(CacheScope.INSTANCE);
+ cacheManagerService.unbind(CacheScope.REQUEST);
+ cacheManagerService.unbind(CacheScope.THREAD);
+ c = cacheManagerService.getCache(cacheName, CacheScope.REQUEST);
+ Assert.assertNotNull(c);
+ Assert.assertNull(c.get("key"));
+ }
+
+ @Test
+ public void testCacheManagerThread() {
+ String cacheName = "string-cache-thread";
+ Assert.assertNotNull(cacheManagerService);
+ Cache<String> c = cacheManagerService.getCache(cacheName,
+ CacheScope.THREAD);
+ Assert.assertNotNull(c);
+ String v = cacheName +
String.valueOf(System.currentTimeMillis());
+ c.put("key", v);
+ Assert.assertEquals(v, c.get("key"));
+ cacheManagerService.unbind(CacheScope.CLUSTERREPLICATED);
+ cacheManagerService.unbind(CacheScope.CLUSTERINVALIDATED);
+ cacheManagerService.unbind(CacheScope.INSTANCE);
+ cacheManagerService.unbind(CacheScope.REQUEST);
+ cacheManagerService.unbind(CacheScope.THREAD);
+ c = cacheManagerService.getCache(cacheName, CacheScope.THREAD);
+ Assert.assertNotNull(c);
+ Assert.assertNull(c.get("key"));
+ }
+
+}
Propchange:
sling/whiteboard/ieb/cache/ehcache/src/test/java/org/apache/sling/commons/cache/ehcache/CacheIT.java
------------------------------------------------------------------------------
svn:eol-style = native