From 2c5aa22368371b0a7eeb4f1f81b85c0f81b50993 Mon Sep 17 00:00:00 2001 From: Christoph Thelen <christoph.thelen@mni.thm.de> Date: Mon, 18 May 2015 12:12:39 +0200 Subject: [PATCH] Fix caching: Annotations on CouchDBDao were not working At least caching of learning progress responses did not work since commit a59eb75 on March, 6th. While the exact origin of this problem is unclear, it seemed like Spring was creating more than one databaseDao bean. One of these beans had no working caching annotations. --- .../de/thm/arsnova/{dao => cache}/CacheBustListener.java | 7 ++++++- .../java/de/thm/arsnova/{dao => cache}/CacheBuster.java | 2 +- .../java/de/thm/arsnova/{dao => cache}/ICacheBuster.java | 2 +- src/main/java/de/thm/arsnova/cache/package-info.java | 4 ++++ src/main/webapp/WEB-INF/spring/spring-main.xml | 2 +- 5 files changed, 13 insertions(+), 4 deletions(-) rename src/main/java/de/thm/arsnova/{dao => cache}/CacheBustListener.java (88%) rename src/main/java/de/thm/arsnova/{dao => cache}/CacheBuster.java (99%) rename src/main/java/de/thm/arsnova/{dao => cache}/ICacheBuster.java (96%) create mode 100644 src/main/java/de/thm/arsnova/cache/package-info.java diff --git a/src/main/java/de/thm/arsnova/dao/CacheBustListener.java b/src/main/java/de/thm/arsnova/cache/CacheBustListener.java similarity index 88% rename from src/main/java/de/thm/arsnova/dao/CacheBustListener.java rename to src/main/java/de/thm/arsnova/cache/CacheBustListener.java index cde9852b3..68520b619 100644 --- a/src/main/java/de/thm/arsnova/dao/CacheBustListener.java +++ b/src/main/java/de/thm/arsnova/cache/CacheBustListener.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -package de.thm.arsnova.dao; +package de.thm.arsnova.cache; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationListener; @@ -24,6 +24,11 @@ import org.springframework.stereotype.Component; import de.thm.arsnova.events.NovaEvent; import de.thm.arsnova.events.NovaEventVisitor; +/** + * Listener registration for the cache buster. + * + * Note that this class is necessary in order for the annotations to work. + */ @Component public class CacheBustListener implements ApplicationListener<NovaEvent> { diff --git a/src/main/java/de/thm/arsnova/dao/CacheBuster.java b/src/main/java/de/thm/arsnova/cache/CacheBuster.java similarity index 99% rename from src/main/java/de/thm/arsnova/dao/CacheBuster.java rename to src/main/java/de/thm/arsnova/cache/CacheBuster.java index f767ca217..00c9ab4a5 100644 --- a/src/main/java/de/thm/arsnova/dao/CacheBuster.java +++ b/src/main/java/de/thm/arsnova/cache/CacheBuster.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -package de.thm.arsnova.dao; +package de.thm.arsnova.cache; import org.springframework.cache.annotation.CacheEvict; import org.springframework.stereotype.Component; diff --git a/src/main/java/de/thm/arsnova/dao/ICacheBuster.java b/src/main/java/de/thm/arsnova/cache/ICacheBuster.java similarity index 96% rename from src/main/java/de/thm/arsnova/dao/ICacheBuster.java rename to src/main/java/de/thm/arsnova/cache/ICacheBuster.java index f173d2b48..9800991cf 100644 --- a/src/main/java/de/thm/arsnova/dao/ICacheBuster.java +++ b/src/main/java/de/thm/arsnova/cache/ICacheBuster.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -package de.thm.arsnova.dao; +package de.thm.arsnova.cache; /** * This interface is used as a tag to make Spring dependency injection happy... diff --git a/src/main/java/de/thm/arsnova/cache/package-info.java b/src/main/java/de/thm/arsnova/cache/package-info.java new file mode 100644 index 000000000..4bf087927 --- /dev/null +++ b/src/main/java/de/thm/arsnova/cache/package-info.java @@ -0,0 +1,4 @@ +/** + * Classes and interfaces related to caching + */ +package de.thm.arsnova.cache; \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/spring/spring-main.xml b/src/main/webapp/WEB-INF/spring/spring-main.xml index a1c452605..72c2beb31 100644 --- a/src/main/webapp/WEB-INF/spring/spring-main.xml +++ b/src/main/webapp/WEB-INF/spring/spring-main.xml @@ -23,7 +23,7 @@ <property name="fileEncoding" value="UTF-8" /> </bean> - <context:component-scan base-package="de.thm.arsnova.dao,de.thm.arsnova.events,de.thm.arsnova.security,de.thm.arsnova.services,de.thm.arsnova.config,de.thm.arsnova.domain" /> + <context:component-scan base-package="de.thm.arsnova.dao,de.thm.arsnova.cache,de.thm.arsnova.events,de.thm.arsnova.security,de.thm.arsnova.services,de.thm.arsnova.config,de.thm.arsnova.domain" /> <context:annotation-config /> -- GitLab