From 1568c431c8ebd19ae01691ac829d2a51c6a61a31 Mon Sep 17 00:00:00 2001 From: Cherian Mathew Date: Fri, 27 Jun 2014 09:57:30 +0000 Subject: [PATCH] CdmServiceCacher : Added class to load / cache CDM entities using services remotingApplicationContext : updated cacher bean config httpInvokerServiceClients : removed unnecessary loading of remote config CdmServiceCacherTest : added cacher test --- .gitattributes | 2 + .../cdm/api/cache/CdmServiceCacher.java | 33 ++++++++++++++++ .../cdm/httpInvokerServiceClients.xml | 4 -- .../cdm/remotingApplicationContext.xml | 6 +-- .../remoting/CdmServiceCacherTest.java | 38 +++++++++++++++++++ 5 files changed, 75 insertions(+), 8 deletions(-) create mode 100644 eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmServiceCacher.java create mode 100644 eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/CdmServiceCacherTest.java diff --git a/.gitattributes b/.gitattributes index 126731446..ba2b9885c 100644 --- a/.gitattributes +++ b/.gitattributes @@ -322,6 +322,7 @@ eu.etaxonomy.taxeditor.cdmlib/lib/yjp-controller-api-redist-9.0.8.jar -text eu.etaxonomy.taxeditor.cdmlib/pom.xml -text eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteConfiguration.java -text eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteController.java -text +eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmServiceCacher.java -text eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/lazyloading/CdmLazyLoader.java -text eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/remote/CdmPersistentRemoteSource.java -text eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/remote/CdmRemoteSource.java -text @@ -339,6 +340,7 @@ eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/remoting_servi eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/CdmApplicationRemoteControllerTest.java -text eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/CdmPersistentRemoteSourceTest.java -text eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/CdmRemoteSourceTest.java -text +eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/CdmServiceCacherTest.java -text eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/HttpInvokerServicesTest.java -text eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/RemoteApplicationConfigurationTest.java -text eu.etaxonomy.taxeditor.cdmlib/src/test/java/eu/etaxonomy/taxeditor/remoting/RemoteLazyLoadingTest.java -text diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmServiceCacher.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmServiceCacher.java new file mode 100644 index 000000000..6be691924 --- /dev/null +++ b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmServiceCacher.java @@ -0,0 +1,33 @@ +package eu.etaxonomy.cdm.api.cache; + +import java.util.UUID; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import eu.etaxonomy.cdm.api.service.ITermService; +import eu.etaxonomy.cdm.model.common.CdmBase; + +/** + * Class which uses CDM services to cache cdm entities + * + * FIXME: Currently only handles terms entities. It would be + * interesting to have a generic method which finds the + * correct service to load / cache the entity. + * + * @author cmathew + * + * @param + */ +@Component +public class CdmServiceCacher extends CdmCacher { + + @Autowired + ITermService termService; + + @Override + protected T findByUuid(UUID uuid) { + return (T)termService.findWithoutFlush(uuid); + } + +} diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/httpInvokerServiceClients.xml b/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/httpInvokerServiceClients.xml index 4b121cf02..e3c0f9fd8 100644 --- a/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/httpInvokerServiceClients.xml +++ b/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/httpInvokerServiceClients.xml @@ -7,10 +7,6 @@ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> - - - diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/remotingApplicationContext.xml b/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/remotingApplicationContext.xml index 549d4825f..66be8d6e1 100644 --- a/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/remotingApplicationContext.xml +++ b/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/remotingApplicationContext.xml @@ -16,11 +16,9 @@ - + - - - +