Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
.gradle/*
build/*
build/*
example-app/build/*
example-app/.gradle/*
.DS_Store
5 changes: 5 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
source "https://rubygems.org"

gem 'redis'
gem 'rspec'
gem 'httparty'
30 changes: 30 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
GEM
remote: https://rubygems.org/
specs:
diff-lcs (1.2.5)
httparty (0.12.0)
json (~> 1.8)
multi_xml (>= 0.5.2)
json (1.8.1)
multi_xml (0.5.5)
redis (3.1.0)
rspec (3.1.0)
rspec-core (~> 3.1.0)
rspec-expectations (~> 3.1.0)
rspec-mocks (~> 3.1.0)
rspec-core (3.1.4)
rspec-support (~> 3.1.0)
rspec-expectations (3.1.1)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.1.0)
rspec-mocks (3.1.1)
rspec-support (~> 3.1.0)
rspec-support (3.1.0)

PLATFORMS
ruby

DEPENDENCIES
httparty
redis
rspec
26 changes: 26 additions & 0 deletions example-app/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
apply plugin: 'java'
apply plugin: 'war'

version = '0.1'

repositories {
mavenCentral()
}

dependencies {
providedCompile group: 'org.apache.tomcat', name: 'tomcat-catalina', version: '7.0.27'
compile group: 'redis.clients', name: 'jedis', version: '2.5.2'
compile group: 'com.sparkjava', name: 'spark-core', version: '1.1.1'
compile group: 'com.google.code.gson', name: 'gson', version: '2.3'
compile group: 'org.slf4j', name: 'slf4j-simple',version: '1.7.5'
providedCompile project(":tomcat-redis-session-manager")
}

war {
//webAppDirName = 'source/main/'

//from 'src/rootContent' // adds a file-set to the root of the archive
//webInf { from 'src/additionalWebInf' } // adds a file-set to the WEB-INF dir.
//classpath fileTree('additionalLibs') // adds a file-set to the WEB-INF/lib dir.
//classpath configurations.moreLibs // adds a configuration to the WEB-INF/lib dir.
}
2 changes: 2 additions & 0 deletions example-app/settings.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
include ":tomcat-redis-session-manager"
project(":tomcat-redis-session-manager").projectDir = new File(rootDir, "../")
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.orangefunction.tomcatredissessionmanager.exampleapp;

import com.google.gson.Gson;
import com.radiadesign.catalina.session.RedisSession;
import java.util.HashMap;
import java.util.Collections;
import spark.ResponseTransformerRoute;
import spark.Session;
import javax.servlet.http.HttpSession;

public abstract class JsonTransformerRoute extends ResponseTransformerRoute {

private Gson gson = new Gson();

protected JsonTransformerRoute(String path) {
super(path);
}

protected JsonTransformerRoute(String path, String acceptType) {
super(path, acceptType);
}

@Override
public String render(Object jsonObject) {
return gson.toJson(jsonObject);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package com.orangefunction.tomcatredissessionmanager.exampleapp;

import com.google.gson.Gson;
import com.radiadesign.catalina.session.RedisSession;
import java.util.HashMap;
import java.util.Map;
import java.util.Collections;
import spark.ResponseTransformerRoute;
import spark.Session;
import javax.servlet.http.HttpSession;

public abstract class SessionJsonTransformerRoute extends ResponseTransformerRoute {

private Gson gson = new Gson();

protected SessionJsonTransformerRoute(String path) {
super(path);
}

protected SessionJsonTransformerRoute(String path, String acceptType) {
super(path, acceptType);
}

@Override
public String render(Object object) {
if (object instanceof Object[]) {
Object[] tuple = (Object[])object;
Session sparkSession = (Session)tuple[0];
HttpSession session = (HttpSession)(sparkSession).raw();
HashMap<String, Object> map = new HashMap<String, Object>();
map.putAll((Map<String, Object>)tuple[1]);
map.put("sessionId", session.getId());
return gson.toJson(map);
} else if (object instanceof Session) {
Session sparkSession = (Session)object;
HashMap<String, Object> sessionMap = new HashMap<String, Object>();
if (null != sparkSession) {
HttpSession session = (HttpSession)(sparkSession).raw();
sessionMap.put("sessionId", session.getId());
HashMap<String, Object> attributesMap = new HashMap<String, Object>();
for (String key : Collections.list(session.getAttributeNames())) {
attributesMap.put(key, session.getAttribute(key));
}
sessionMap.put("attributes", attributesMap);
}
return gson.toJson(sessionMap);
} else {
return "{}";
}
}

}
Loading