summaryrefslogtreecommitdiffstats
path: root/ecomp-sdk/epsdk-music/src/main/java/org/onap/portalapp/music/conf/MusicSessionRepositoryHandler.java
diff options
context:
space:
mode:
authorLo, WEI-TING(wl849v) <wl849v@att.com>2018-03-19 17:37:22 -0400
committerLo, WEI-TING(wl849v) <wl849v@att.com>2018-03-19 17:37:22 -0400
commita932df953215fa4fe25d0dee962291eaa64d1846 (patch)
tree5106087e4723b93d6d3690ad37f560f6a7257e31 /ecomp-sdk/epsdk-music/src/main/java/org/onap/portalapp/music/conf/MusicSessionRepositoryHandler.java
parentdcdf1bb1838de59e16c63ab37b29fb913efe2f69 (diff)
Effort to make portal resilient
Issue-ID: PORTAL-210 Includes music library that contatins session management Change-Id: Icacab904e1f948068348fcc19cd77965cb5b446e Signed-off-by: Lo, WEI-TING(wl849v) <wl849v@att.com>
Diffstat (limited to 'ecomp-sdk/epsdk-music/src/main/java/org/onap/portalapp/music/conf/MusicSessionRepositoryHandler.java')
-rw-r--r--ecomp-sdk/epsdk-music/src/main/java/org/onap/portalapp/music/conf/MusicSessionRepositoryHandler.java56
1 files changed, 56 insertions, 0 deletions
diff --git a/ecomp-sdk/epsdk-music/src/main/java/org/onap/portalapp/music/conf/MusicSessionRepositoryHandler.java b/ecomp-sdk/epsdk-music/src/main/java/org/onap/portalapp/music/conf/MusicSessionRepositoryHandler.java
new file mode 100644
index 00000000..1b0dff94
--- /dev/null
+++ b/ecomp-sdk/epsdk-music/src/main/java/org/onap/portalapp/music/conf/MusicSessionRepositoryHandler.java
@@ -0,0 +1,56 @@
+package org.onap.portalapp.music.conf;
+
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.onap.music.eelf.logging.EELFLoggerDelegate;
+import org.onap.music.exceptions.MusicLockingException;
+import org.onap.music.exceptions.MusicServiceException;
+import org.onap.portalapp.music.service.MusicService;
+import org.onap.portalapp.music.util.MusicUtil;
+import org.springframework.session.Session;
+
+public class MusicSessionRepositoryHandler {
+
+ private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(MusicSessionRepositoryHandler.class);
+ private final Map<String, Session> sessions = new ConcurrentHashMap<>();
+ private boolean musicCache = MusicUtil.isCached();
+
+
+ public Session get(String id) {
+ if(!musicCache){
+ try {
+ Session session = MusicService.getMetaAttribute(id);
+ return session;
+ } catch (Exception e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "get failed with id " + id, e);
+ }
+ }
+ return this.sessions.get(id);
+ }
+
+
+
+ public void remove(String id) {
+ sessions.remove(id);
+ try {
+ MusicService.removeSession(id);
+ } catch (MusicLockingException e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "removeSession locking failed with id " + id, e);
+ } catch (MusicServiceException e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "removeSession failed with id " + id, e);
+ }
+ }
+
+
+
+ public void put(String id, MusicSession musicSession) {
+ sessions.put(id, musicSession);
+ try {
+ MusicService.setMetaAttribute(musicSession);
+ } catch (Exception e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "setMetaAttribute failed with id " + id, e);
+ }
+ }
+
+}