//
// ========================================================================
// Copyright (c) 1995-2017 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
//
// The Eclipse Public License is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// The Apache License v2.0 is available at
// http://www.opensource.org/licenses/apache2.0.php
//
// You may elect to redistribute this code under either of these licenses.
// ========================================================================
//
package org.eclipse.jetty.session.infinispan;
import org.eclipse.jetty.server.session.AbstractSessionDataStoreFactory;
import org.eclipse.jetty.server.session.SessionHandler;
import org.eclipse.jetty.server.session.SessionDataStore;
import org.infinispan.commons.api.BasicCache;
/**
* InfinispanSessionDataStoreFactory
*
*
*/
public class InfinispanSessionDataStoreFactory extends AbstractSessionDataStoreFactory
{
int _infinispanIdleTimeoutSec;
BasicCache<String, Object> _cache;
/**
* @return the infinispanIdleTimeoutSec
*/
public int getInfinispanIdleTimeoutSec()
{
return _infinispanIdleTimeoutSec;
}
/**
* @param infinispanIdleTimeoutSec the infinispanIdleTimeoutSec to set
*/
public void setInfinispanIdleTimeoutSec(int infinispanIdleTimeoutSec)
{
_infinispanIdleTimeoutSec = infinispanIdleTimeoutSec;
}
/**
* @see org.eclipse.jetty.server.session.SessionDataStoreFactory#getSessionDataStore(org.eclipse.jetty.server.session.SessionHandler)
*/
@Override
public SessionDataStore getSessionDataStore (SessionHandler handler) throws Exception
{
InfinispanSessionDataStore store = new InfinispanSessionDataStore();
store.setGracePeriodSec(getGracePeriodSec());
store.setInfinispanIdleTimeoutSec(getInfinispanIdleTimeoutSec());
store.setCache(getCache());
store.setSavePeriodSec(getSavePeriodSec());
return store;
}
/**
* Get the clustered cache instance.
*
* @return the cache
*/
public BasicCache<String, Object> getCache()
{
return _cache;
}
/**
* Set the clustered cache instance.
*
* @param cache the cache
*/
public void setCache (BasicCache<String, Object> cache)
{
this._cache = cache;
}
}