Giriş
GitHub kodu burada. Bu projeyi ilk defa burada gördümHazelcastSessionManager Sınıfı
Bu sınıftan her tomcat sürümü için bir sürü var. Çünkü proje altında tomcat7, tomcat8, tomcat9 gibi modüller var. Ben son sürüm olan tomcat9'a baktım. Kod şöyle
public class HazelcastSessionManager extends ManagerBase implements Lifecycle, PropertyChangeListener, SessionManager {private static final String NAME = "HazelcastSessionManager";private static final int DEFAULT_SESSION_TIMEOUT = 60;private static final int SECONDS_IN_MINUTE = 60;private final Log log = LogFactory.getLog(HazelcastSessionManager.class);private IMap<String, HazelcastSession> sessionMap;private boolean clientOnly;private boolean sticky = true;private String mapName;private boolean deferredWrite = true;private String hazelcastInstanceName;private HazelcastInstance instance;...}
context.xml dosyasında Session Manager olarak Tomcat'e tanıtılıyor. Bundan sonra her yeni session için HazelcastSession nesnesi yaratıyor
<Context> ... <Manager className="com.hazelcast.session.HazelcastSessionManager"/> ... </Context>
veya şöyle yaparız
<Context> <Manager className="com.hazelcast.session.HazelcastSessionManager" clientOnly="true"/> </Context>
HazelcastInstanceFactory Sınıfı
Bu sınıftan Hazelcast projelerinde sanırım bir kaç tane var. Bir tanesi hazelcast-tomcat-sessionmanager projesinde.
getHazelcastInstance metodu
İmzası şöyle
public static HazelcastInstance getHazelcastInstance(ClassLoader classLoader, boolean clientOnly, String instanceName) throws LifecycleException
tomcat7, tomcat8, tomcat9 gibi modüllerdeki HazelcastSessionManager tarafından çağrılır. Yeni bir HazelcastInstance yaratır. clientOnly değişkeni true ise, mevcut cluster'a bağlanır, false ise yeni bir member yaratır veya mevcut member'a bağlanır
Hiç yorum yok:
Yorum Gönder