Skip to content

Commit

Permalink
fixed lifecycle
Browse files Browse the repository at this point in the history
  • Loading branch information
madness-inc committed Dec 16, 2021
1 parent 87700c0 commit f9f88e0
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 13 deletions.
Expand Up @@ -9,6 +9,7 @@
import java.util.concurrent.atomic.AtomicInteger;

import org.apache.catalina.LifecycleException;
import org.apache.catalina.LifecycleState;
import org.apache.catalina.Session;
import org.apache.catalina.session.ManagerBase;
import org.apache.catalina.session.StandardSession;
Expand All @@ -29,6 +30,21 @@ public class HazelcastManager extends ManagerBase {
private String mapName = "tomcat.sessions";
private HazelcastInstance instance;

@Override
protected void startInternal() throws LifecycleException {
super.startInternal();
ClasspathXmlConfig config = new ClasspathXmlConfig(configFile);
instance = Hazelcast.getOrCreateHazelcastInstance(config);
log.info(String.format("Loaded %s from %s", instance, configFile));
setState(LifecycleState.STARTING);
}

@Override
protected void stopInternal() throws LifecycleException {
super.stopInternal();
setState(LifecycleState.STOPPING);
}

@Override
public void processExpires() {
long timeNow = System.currentTimeMillis();
Expand All @@ -44,13 +60,6 @@ public void processExpires() {
processingTime += duration;
}

@Override
protected void initInternal() throws LifecycleException {
instance = Hazelcast.getOrCreateHazelcastInstance(new ClasspathXmlConfig(configFile));
log.info(String.format("Loaded %s from %s", instance, configFile));
log.info("Using classpath config:" + getClass().getClassLoader().getResource(configFile));
}

@Override
public HazelCastSession createEmptySession() {
return new HazelCastSession(this);
Expand Down
Expand Up @@ -31,9 +31,11 @@
import org.apache.catalina.core.StandardHost;
import org.apache.catalina.core.StandardService;
import org.apache.catalina.loader.WebappLoader;
import org.apache.catalina.startup.Tomcat.FixContextListener;
import org.apache.catalina.util.StandardSessionIdGenerator;
import org.appng.tomcat.session.SessionData;
import org.appng.tomcat.session.hazelcast.HazelCastSession;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
Expand All @@ -43,6 +45,7 @@
public class HazelStoreIT {

static HazelcastManager manager;
static StandardContext context;

@Test
public void test() throws Exception {
Expand Down Expand Up @@ -138,7 +141,14 @@ public void sessionCreated(HttpSessionEvent se) {

@BeforeClass
public static void setup() throws LifecycleException {
StandardContext context = new StandardContext();
context = new StandardContext();

manager = new HazelcastManager();
manager.setSessionIdGenerator(new StandardSessionIdGenerator());
manager.setConfigFile("hazelcast-test.xml");
manager.setContext(context);
context.setManager(manager);

context.setName("foo");
WebappLoader loader = new WebappLoader() {
@Override
Expand All @@ -147,6 +157,7 @@ public ClassLoader getClassLoader() {
}
};
context.setLoader(loader);
context.setWorkDir(new java.io.File("target/tomcat").getAbsolutePath());
StandardHost host = new StandardHost();
StandardEngine engine = new StandardEngine();
engine.setService(new StandardService());
Expand All @@ -160,12 +171,17 @@ public ClassLoader getClassLoader() {
sites.put("appNG", new Site());
context.getServletContext().setAttribute("PLATFORM", platform);

manager = new HazelcastManager();
manager.setSessionIdGenerator(new StandardSessionIdGenerator());
manager.setConfigFile("hazelcast-test.xml");
manager.setContext(context);
manager.init();
context.setConfigured(true);
context.addLifecycleListener(new FixContextListener());
context.start();

}

@AfterClass
public static void tearDown() throws LifecycleException {
context.stop();
}


public static class Site {
static boolean calledClassloader = false;
Expand Down

0 comments on commit f9f88e0

Please sign in to comment.