summaryrefslogtreecommitdiffstats
path: root/ecomp-sdk/epsdk-music/src/main/java/org/onap/portalapp/music/conf/MusicSessionRepositoryHandler.java
diff options
context:
space:
mode:
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);
+ }
+ }
+
+}