You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ab...@apache.org on 2016/02/17 19:23:50 UTC
[46/51] [partial] incubator-geode git commit: GEODE-917: rename
gemfire subprojects to geode
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/GemfireSessionException.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/GemfireSessionException.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/GemfireSessionException.java
deleted file mode 100644
index 3ce81be..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/GemfireSessionException.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements. See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-package com.gemstone.gemfire.modules.session.internal.filter;
-
-/**
- * Exception class for Gemfire Session Cache specific exceptions.
- */
-public class GemfireSessionException extends Exception {
-
- public GemfireSessionException() {
- super();
- }
-
- public GemfireSessionException(String message) {
- super(message);
- }
-
- public GemfireSessionException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public GemfireSessionException(Throwable cause) {
- super(cause);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/GemfireSessionManager.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/GemfireSessionManager.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/GemfireSessionManager.java
deleted file mode 100644
index a3d3c10..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/GemfireSessionManager.java
+++ /dev/null
@@ -1,511 +0,0 @@
-/*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements. See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-package com.gemstone.gemfire.modules.session.internal.filter;
-
-import com.gemstone.gemfire.cache.CacheClosedException;
-import com.gemstone.gemfire.cache.CacheFactory;
-import com.gemstone.gemfire.cache.EntryNotFoundException;
-import com.gemstone.gemfire.cache.control.ResourceManager;
-import com.gemstone.gemfire.internal.cache.GemFireCacheImpl;
-import com.gemstone.gemfire.modules.session.bootstrap.AbstractCache;
-import com.gemstone.gemfire.modules.session.bootstrap.ClientServerCache;
-import com.gemstone.gemfire.modules.session.bootstrap.LifecycleTypeAdapter;
-import com.gemstone.gemfire.modules.session.bootstrap.PeerToPeerCache;
-import com.gemstone.gemfire.modules.session.internal.common.CacheProperty;
-import com.gemstone.gemfire.modules.session.internal.common.ClientServerSessionCache;
-import com.gemstone.gemfire.modules.session.internal.common.PeerToPeerSessionCache;
-import com.gemstone.gemfire.modules.session.internal.common.SessionCache;
-import com.gemstone.gemfire.modules.session.internal.filter.attributes.AbstractSessionAttributes;
-import com.gemstone.gemfire.modules.session.internal.filter.attributes.DeltaQueuedSessionAttributes;
-import com.gemstone.gemfire.modules.session.internal.filter.attributes.DeltaSessionAttributes;
-import com.gemstone.gemfire.modules.session.internal.filter.attributes.ImmediateSessionAttributes;
-import com.gemstone.gemfire.modules.session.internal.filter.util.TypeAwareMap;
-import com.gemstone.gemfire.modules.session.internal.jmx.SessionStatistics;
-import com.gemstone.gemfire.modules.util.RegionHelper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.management.MBeanServer;
-import javax.management.ObjectName;
-import javax.naming.InitialContext;
-import javax.servlet.FilterConfig;
-import javax.servlet.http.HttpSession;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.UUID;
-
-/**
- * This class implements the session management using a Gemfire distributedCache
- * as a persistent store for the session objects
- */
-public class GemfireSessionManager implements SessionManager {
-
- private final Logger LOG;
-
- /**
- * Prefix of init param string used to set gemfire properties
- */
- private static final String GEMFIRE_PROPERTY = "gemfire.property.";
-
- /**
- * Prefix of init param string used to set gemfire distributedCache setting
- */
- private static final String GEMFIRE_CACHE = "gemfire.cache.";
-
- private static final String INIT_PARAM_CACHE_TYPE = "cache-type";
- private static final String CACHE_TYPE_CLIENT_SERVER = "client-server";
- private static final String CACHE_TYPE_PEER_TO_PEER = "peer-to-peer";
- private static final String INIT_PARAM_SESSION_COOKIE_NAME = "session-cookie-name";
- private static final String INIT_PARAM_JVM_ID = "jvm-id";
- private static final String DEFAULT_JVM_ID = "default";
-
- private SessionCache sessionCache = null;
-
- /**
- * Reference to the distributed system
- */
- private AbstractCache distributedCache = null;
-
- /**
- * Boolean indicating whether the manager is shutting down
- */
- private boolean isStopping = false;
-
- /**
- * Boolean indicating whether this manager is defined in the same context (war
- * / classloader) as the filter.
- */
- private boolean isolated = false;
-
- /**
- * Map of wrapping GemFire session id to native session id
- */
- private Map<String, String> nativeSessionMap =
- new HashMap<String, String>();
-
- /**
- * MBean for statistics
- */
- private SessionStatistics mbean;
-
- /**
- * This CL is used to compare against the class loader of attributes getting
- * pulled out of the cache. This variable should be set to the CL of the
- * filter running everything.
- */
- private ClassLoader referenceClassLoader;
-
- private String sessionCookieName = "JSESSIONID";
-
- /**
- * Give this JVM a unique identifier.
- */
- private String jvmId = "default";
-
- /**
- * Set up properties with default values
- */
- private TypeAwareMap<CacheProperty, Object> properties =
- new TypeAwareMap<CacheProperty, Object>(CacheProperty.class) {{
- put(CacheProperty.REGION_NAME, RegionHelper.NAME + "_sessions");
- put(CacheProperty.ENABLE_GATEWAY_DELTA_REPLICATION, Boolean.FALSE);
- put(CacheProperty.ENABLE_GATEWAY_REPLICATION, Boolean.FALSE);
- put(CacheProperty.ENABLE_DEBUG_LISTENER, Boolean.FALSE);
- put(CacheProperty.STATISTICS_NAME, "gemfire_statistics");
- put(CacheProperty.SESSION_DELTA_POLICY, "delta_queued");
- put(CacheProperty.REPLICATION_TRIGGER, "set");
- /**
- * For REGION_ATTRIBUTES_ID and ENABLE_LOCAL_CACHE the default
- * is different for ClientServerCache and PeerToPeerCache
- * so those values are set in the relevant constructors when
- * these properties are passed in to them.
- */
- }};
-
- public GemfireSessionManager() {
- LOG = LoggerFactory.getLogger(GemfireSessionManager.class.getName());
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void start(Object conf, ClassLoader loader) {
- this.referenceClassLoader = loader;
- FilterConfig config = (FilterConfig) conf;
-
- startDistributedSystem(config);
- initializeSessionCache(config);
-
- // Register MBean
- registerMBean();
-
- if (distributedCache.getClass().getClassLoader() == loader) {
- isolated = true;
- }
-
- String sessionCookieName = config.getInitParameter(
- INIT_PARAM_SESSION_COOKIE_NAME);
- if (sessionCookieName != null && !sessionCookieName.isEmpty()) {
- this.sessionCookieName = sessionCookieName;
- LOG.info("Session cookie name set to: {}", this.sessionCookieName);
- }
-
- jvmId = config.getInitParameter(INIT_PARAM_JVM_ID);
- if (jvmId == null || jvmId.isEmpty()) {
- jvmId = DEFAULT_JVM_ID;
- }
-
- LOG.info("Started GemfireSessionManager (isolated={}, jvmId={})",
- isolated, jvmId);
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void stop() {
- isStopping = true;
-
- if (isolated) {
- if (distributedCache != null) {
- LOG.info("Closing distributed cache - assuming isolated cache");
- distributedCache.close();
- }
- } else {
- LOG.info("Not closing distributed cache - assuming common cache");
- }
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public HttpSession getSession(String id) {
- GemfireHttpSession session = (GemfireHttpSession) sessionCache.getOperatingRegion().get(
- id);
-
- if (session != null) {
- if (session.justSerialized()) {
- session.setManager(this);
- LOG.debug("Recovered serialized session {} (jvmId={})", id,
- session.getJvmOwnerId());
- }
- LOG.debug("Retrieved session id {}", id);
- } else {
- LOG.debug("Session id {} not found", id);
- }
- return session;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public HttpSession wrapSession(HttpSession nativeSession) {
- String id = generateId();
- GemfireHttpSession session =
- new GemfireHttpSession(id, nativeSession);
-
- /**
- * Set up the attribute container depending on how things are configured
- */
- AbstractSessionAttributes attributes;
- if ("delta_queued".equals(
- properties.get(CacheProperty.SESSION_DELTA_POLICY))) {
- attributes = new DeltaQueuedSessionAttributes();
- ((DeltaQueuedSessionAttributes) attributes).setReplicationTrigger(
- (String) properties.get(CacheProperty.REPLICATION_TRIGGER));
- } else if ("delta_immediate".equals(
- properties.get(CacheProperty.SESSION_DELTA_POLICY))) {
- attributes = new DeltaSessionAttributes();
- } else if ("immediate".equals(
- properties.get(CacheProperty.SESSION_DELTA_POLICY))) {
- attributes = new ImmediateSessionAttributes();
- } else {
- attributes = new DeltaSessionAttributes();
- LOG.warn(
- "No session delta policy specified - using default of 'delta_immediate'");
- }
-
- attributes.setSession(session);
- attributes.setJvmOwnerId(jvmId);
-
- session.setManager(this);
- session.setAttributes(attributes);
-
- LOG.debug("Creating new session {}", id);
- sessionCache.getOperatingRegion().put(id, session);
-
- mbean.incActiveSessions();
-
- return session;
- }
-
- /**
- * {@inheritDoc}
- */
- public HttpSession getWrappingSession(String nativeId) {
- HttpSession session = null;
- String gemfireId = getGemfireSessionIdFromNativeId(nativeId);
-
- if (gemfireId != null) {
- session = getSession(gemfireId);
- }
- return session;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void destroySession(String id) {
- if (!isStopping) {
- try {
- GemfireHttpSession session = (GemfireHttpSession) sessionCache.getOperatingRegion().get(
- id);
- if (session != null && session.getJvmOwnerId().equals(jvmId)) {
- LOG.debug("Destroying session {}", id);
- sessionCache.getOperatingRegion().destroy(id);
- mbean.decActiveSessions();
- }
- } catch (EntryNotFoundException nex) {
- }
- } else {
- if (sessionCache.isClientServer()) {
- LOG.debug("Destroying session {}", id);
- try {
- sessionCache.getOperatingRegion().localDestroy(id);
- } catch (EntryNotFoundException nex) {
- // Ignored
- } catch (CacheClosedException ccex) {
- // Ignored
- }
- } else {
- GemfireHttpSession session = (GemfireHttpSession) sessionCache.getOperatingRegion().get(
- id);
- if (session != null) {
- session.setNativeSession(null);
- }
- }
- }
-
- synchronized (nativeSessionMap) {
- String nativeId = nativeSessionMap.remove(id);
- LOG.debug("destroySession called for {} wrapping {}", id, nativeId);
- }
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void putSession(HttpSession session) {
- sessionCache.getOperatingRegion().put(session.getId(), session);
- mbean.incRegionUpdates();
- nativeSessionMap.put(session.getId(),
- ((GemfireHttpSession) session).getNativeSession().getId());
- }
-
- @Override
- public String destroyNativeSession(String nativeId) {
- String gemfireSessionId = getGemfireSessionIdFromNativeId(nativeId);
- if (gemfireSessionId != null) {
- destroySession(gemfireSessionId);
- }
- return gemfireSessionId;
- }
-
- public ClassLoader getReferenceClassLoader() {
- return referenceClassLoader;
- }
-
- /**
- * This method is called when a native session gets destroyed. It will check
- * if the GemFire session is actually still valid/not expired and will then
- * attach a new, native session.
- *
- * @param nativeId the id of the native session
- * @return the id of the newly attached native session or null if the GemFire
- * session was already invalid
- */
- public String refreshSession(String nativeId) {
- String gemfireId = getGemfireSessionIdFromNativeId(nativeId);
- if (gemfireId == null) {
- return null;
- }
-
- GemfireHttpSession session = (GemfireHttpSession) sessionCache.getOperatingRegion().get(
- gemfireId);
- if (session.isValid()) {
-
- }
-
- return null;
- }
-
- public String getSessionCookieName() {
- return sessionCookieName;
- }
-
- public String getJvmId() {
- return jvmId;
- }
-
-
- ///////////////////////////////////////////////////////////////////////
- // Private methods
-
- private String getGemfireSessionIdFromNativeId(String nativeId) {
- if (nativeId == null) {
- return null;
- }
-
- for (Map.Entry<String, String> e : nativeSessionMap.entrySet()) {
- if (nativeId.equals(e.getValue())) {
- return e.getKey();
- }
- }
- return null;
- }
-
- /**
- * Start the underlying distributed system
- *
- * @param config
- */
- private void startDistributedSystem(FilterConfig config) {
- // Get the distributedCache type
- final String cacheType = config.getInitParameter(INIT_PARAM_CACHE_TYPE);
- if (CACHE_TYPE_CLIENT_SERVER.equals(cacheType)) {
- distributedCache = ClientServerCache.getInstance();
- } else if (CACHE_TYPE_PEER_TO_PEER.equals(cacheType)) {
- distributedCache = PeerToPeerCache.getInstance();
- } else {
- LOG.error("No 'cache-type' initialization param set. "
- + "Cache will not be started");
- return;
- }
-
- if (!distributedCache.isStarted()) {
- /**
- * Process all the init params and see if any apply to the
- * distributed system.
- */
- for (Enumeration<String> e = config.getInitParameterNames(); e.hasMoreElements(); ) {
- String param = e.nextElement();
- if (!param.startsWith(GEMFIRE_PROPERTY)) {
- continue;
- }
-
- String gemfireProperty = param.substring(GEMFIRE_PROPERTY.length());
- LOG.info("Setting gemfire property: {} = {}",
- gemfireProperty, config.getInitParameter(param));
- distributedCache.setProperty(gemfireProperty,
- config.getInitParameter(param));
- }
-
- distributedCache.lifecycleEvent(LifecycleTypeAdapter.START);
- }
- }
-
- /**
- * Initialize the distributedCache
- */
- private void initializeSessionCache(FilterConfig config) {
- // Retrieve the distributedCache
- GemFireCacheImpl cache = (GemFireCacheImpl) CacheFactory.getAnyInstance();
- if (cache == null) {
- throw new IllegalStateException("No cache exists. Please configure "
- + "either a PeerToPeerCacheLifecycleListener or "
- + "ClientServerCacheLifecycleListener in the "
- + "server.xml file.");
- }
-
- /**
- * Process all the init params and see if any apply to the distributedCache
- */
- ResourceManager rm = cache.getResourceManager();
- for (Enumeration<String> e = config.getInitParameterNames(); e.hasMoreElements(); ) {
- String param = e.nextElement();
-
- // Uggh - don't like this non-generic stuff
- if (param.equalsIgnoreCase("criticalHeapPercentage")) {
- float val = Float.parseFloat(config.getInitParameter(param));
- rm.setCriticalHeapPercentage(val);
- }
-
- if (param.equalsIgnoreCase("evictionHeapPercentage")) {
- float val = Float.parseFloat(config.getInitParameter(param));
- rm.setEvictionHeapPercentage(val);
- }
-
-
- if (!param.startsWith(GEMFIRE_CACHE)) {
- continue;
- }
-
- String gemfireWebParam = param.substring(GEMFIRE_CACHE.length());
- LOG.info("Setting cache parameter: {} = {}",
- gemfireWebParam, config.getInitParameter(param));
- properties.put(CacheProperty.valueOf(gemfireWebParam.toUpperCase()),
- config.getInitParameter(param));
- }
-
- // Create the appropriate session distributedCache
- sessionCache = cache.isClient()
- ? new ClientServerSessionCache(cache, properties)
- : new PeerToPeerSessionCache(cache, properties);
-
- // Initialize the session distributedCache
- sessionCache.initialize();
- }
-
- /**
- * Register a bean for statistic gathering purposes
- */
- private void registerMBean() {
- mbean = new SessionStatistics();
-
- try {
- InitialContext ctx = new InitialContext();
- MBeanServer mbs = MBeanServer.class.cast(
- ctx.lookup("java:comp/env/jmx/runtime"));
- ObjectName oname = new ObjectName(
- Constants.SESSION_STATISTICS_MBEAN_NAME);
-
- mbs.registerMBean(mbean, oname);
- } catch (Exception ex) {
- LOG.warn("Unable to register statistics MBean. Error: {}",
- ex.getMessage());
- }
- }
-
-
- /**
- * Generate an ID string
- */
- private String generateId() {
- return UUID.randomUUID().toString().toUpperCase() + "-GF";
- }
-
- AbstractCache getCache() {
- return distributedCache;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/ListenerEventType.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/ListenerEventType.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/ListenerEventType.java
deleted file mode 100644
index b040dda..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/ListenerEventType.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements. See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-package com.gemstone.gemfire.modules.session.internal.filter;
-
-/**
- * Enumeration of all possible event types which can be listened for.
- */
-public enum ListenerEventType {
-
- /**
- * HttpSessionAttributeListener
- */
- SESSION_ATTRIBUTE_ADDED,
- SESSION_ATTRIBUTE_REMOVED,
- SESSION_ATTRIBUTE_REPLACED,
-
- /**
- * HttpSessionBindingListener
- */
- SESSION_VALUE_BOUND,
- SESSION_VALUE_UNBOUND,
-
- /**
- * HttpSessionListener
- */
- SESSION_CREATED,
- SESSION_DESTROYED,
-
- /**
- * HttpSessionActivationListener
- */
- SESSION_WILL_ACTIVATE,
- SESSION_DID_PASSIVATE,
-
- /**
- * ServletContextListener
- */
- SERVLET_CONTEXT_INITIALIZED,
- SERVLET_CONTEXT_DESTROYED,
-
- /**
- * ServletContextAttributeListener
- */
- SERVLET_CONTEXT_ATTRIBUTE_ADDED,
- SERVLET_CONTEXT_ATTRIBUTE_REMOVED,
- SERVLET_CONTEXT_ATTRIBUTE_REPLACED,
-
- /**
- * ServletRequestListener
- */
- SERVLET_REQUEST_DESTROYED,
- SERVLET_REQUEST_INITIALIZED,
-
- /**
- * ServletRequestAttributeListener
- */
- SERVLET_REQUEST_ATTRIBUTE_ADDED,
- SERVLET_REQUEST_ATTRIBUTE_REMOVED,
- SERVLET_REQUEST_ATTRIBUTE_REPLACED;
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/SessionManager.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/SessionManager.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/SessionManager.java
deleted file mode 100644
index 9d8996c..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/SessionManager.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements. See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-package com.gemstone.gemfire.modules.session.internal.filter;
-
-import javax.servlet.http.HttpSession;
-
-/**
- * Interface to session management. This class would be responsible for creating
- * new sessions.
- */
-public interface SessionManager {
-
- /**
- * Start the manager possibly using the config passed in.
- *
- * @param config Config object specific to individual implementations.
- * @param loader This is a hack. When the manager is started it wants to be
- * able to determine if the cache, which it would create, and
- * the filter which starts everything, are defined by the same
- * classloader. This is so that during shutdown, the manager can
- * decide whether or not to also stop the cache. This option
- * allows the filter's classloader to be passed in.
- */
- public void start(Object config, ClassLoader loader);
-
- /**
- * Stop the session manager and free up any resources.
- */
- public void stop();
-
- /**
- * Write the session to the region
- *
- * @param session the session to write
- */
- public void putSession(HttpSession session);
-
- /**
- * Return a session if it exists or null otherwise
- *
- * @param id The session id to attempt to retrieve
- * @return a HttpSession object if a session was found otherwise null.
- */
- public HttpSession getSession(String id);
-
- /**
- * Create a new session, wrapping a container session.
- *
- * @param nativeSession
- * @return the HttpSession object
- */
- public HttpSession wrapSession(HttpSession nativeSession);
-
- /**
- * Get the wrapped (GemFire) session from a native session id. This method
- * would typically be used from within session/http event listeners which
- * receive the original session id.
- *
- * @param nativeId
- * @return the wrapped GemFire session which maps the native session
- */
- public HttpSession getWrappingSession(String nativeId);
-
- /**
- * Destroy the session associated with the given id.
- *
- * @param id The id of the session to destroy.
- */
- public void destroySession(String id);
-
- /**
- * Destroy the session associated with a given native session
- *
- * @param id the id of the native session
- * @return the corresponding Gemfire session which wrapped the native session
- * and was destroyed.
- */
- public String destroyNativeSession(String id);
-
- /**
- * Returns the cookie name used to hold the session id. By default this is
- * JSESSIONID.
- *
- * @return the name of the cookie which contains the session id
- */
- public String getSessionCookieName();
-
- /**
- * Get the JVM Id - this is a unique string used internally to identify who
- * last touched a session.
- *
- * @return the jvm id
- */
- public String getJvmId();
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/AbstractDeltaSessionAttributes.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/AbstractDeltaSessionAttributes.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/AbstractDeltaSessionAttributes.java
deleted file mode 100644
index f46495d..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/AbstractDeltaSessionAttributes.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements. See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-package com.gemstone.gemfire.modules.session.internal.filter.attributes;
-
-import com.gemstone.gemfire.DataSerializer;
-import com.gemstone.gemfire.Delta;
-import com.gemstone.gemfire.InvalidDeltaException;
-
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.io.IOException;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * This abstract class contains the structures and methods to handle delta
- * updates to attributes.
- */
-public abstract class AbstractDeltaSessionAttributes
- extends AbstractSessionAttributes implements Delta {
-
- private static final Logger LOG =
- LoggerFactory.getLogger(AbstractDeltaSessionAttributes.class.getName());
-
- /**
- * This map holds the updates to attributes
- */
- protected transient Map<String, DeltaEvent> deltas =
- Collections.synchronizedMap(new HashMap<String, DeltaEvent>());
-
- @Override
- public boolean hasDelta() {
- return true;
- }
-
- @Override
- public void toDelta(DataOutput out) throws IOException {
- out.writeInt(maxInactiveInterval);
- out.writeLong(lastAccessedTime);
-
- synchronized (deltas) {
- DataSerializer.writeInteger(deltas.size(), out);
- for (Map.Entry<String, DeltaEvent> e : deltas.entrySet()) {
- DataSerializer.writeString(e.getKey(), out);
- DataSerializer.writeObject(e.getValue(), out);
- }
- deltas.clear();
- }
-
- out.writeUTF(jvmOwnerId);
- }
-
- @Override
- public void fromDelta(DataInput in)
- throws IOException, InvalidDeltaException {
- maxInactiveInterval = in.readInt();
- lastAccessedTime = in.readLong();
- Map<String, DeltaEvent> localDeltas = new HashMap<String, DeltaEvent>();
- try {
- int size = DataSerializer.readInteger(in);
- for (int i = 0; i < size; i++) {
- String key = DataSerializer.readString(in);
- DeltaEvent evt = DataSerializer.readObject(in);
- localDeltas.put(key, evt);
- }
- } catch (ClassNotFoundException ex) {
- LOG.error("Unable to de-serialize delta events", ex);
- return;
- }
-
- LOG.debug("Processing {} delta events for {}",
- localDeltas.size(), session);
- for (DeltaEvent e : localDeltas.values()) {
- if (e.isUpdate()) {
- attributes.put(e.getName(), e.getValue());
- if (session.getNativeSession() != null) {
- session.getNativeSession().setAttribute(e.getName(), e.getValue());
- }
- } else {
- attributes.remove(e.getName());
- if (session.getNativeSession() != null) {
- session.getNativeSession().setAttribute(e.getName(), null);
- }
- }
- }
- jvmOwnerId = in.readUTF();
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/AbstractSessionAttributes.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/AbstractSessionAttributes.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/AbstractSessionAttributes.java
deleted file mode 100644
index c4af041..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/AbstractSessionAttributes.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements. See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-package com.gemstone.gemfire.modules.session.internal.filter.attributes;
-
-import com.gemstone.gemfire.DataSerializer;
-import com.gemstone.gemfire.internal.util.BlobHelper;
-import com.gemstone.gemfire.modules.session.internal.filter.GemfireHttpSession;
-
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.io.IOException;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Abstract implementation for attributes. Should be sub-classed to provide
- * differing implementations for synchronous or delta propagation. The backing
- * store used is defined by the session manager.
- */
-public abstract class AbstractSessionAttributes implements SessionAttributes {
-
- private static final Logger LOG =
- LoggerFactory.getLogger(AbstractSessionAttributes.class.getName());
-
- /**
- * Internal attribute store.
- */
- protected Map<String, Object> attributes =
- Collections.synchronizedMap(new HashMap<String, Object>());
-
- /**
- * The session to which these attributes belong
- */
- protected transient GemfireHttpSession session;
-
- /**
- * The last accessed time
- */
- protected long lastAccessedTime;
-
- /**
- * The maximum inactive interval. Default is 1800 seconds.
- */
- protected int maxInactiveInterval = 60 * 30;
-
- /**
- * The JVM Id who last committed these attributes
- */
- protected String jvmOwnerId;
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void setSession(GemfireHttpSession session) {
- this.session = session;
- }
-
- /**
- * {@inheritDoc} The actual de-serialization of any domain objects is deferred
- * until the point at which they are actually retrieved by the application
- * layer.
- */
- @Override
- public Object getAttribute(String name) {
- Object value = attributes.get(name);
-
- // If the value is a byte[] (meaning it came from the server),
- // deserialize it and re-add it to attributes map before returning it.
- if (value instanceof byte[]) {
- try {
- value = BlobHelper.deserializeBlob((byte[]) value);
- attributes.put(name, value);
- } catch (Exception iox) {
- LOG.error("Attribute '" + name +
- " contains a byte[] that cannot be deserialized due "
- + "to the following exception", iox);
- }
- }
-
- return value;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public Set<String> getAttributeNames() {
- return attributes.keySet();
- }
-
- /**
- * {@inheritDoc} +
- */
- @Override
- public void setMaxInactiveInterval(int interval) {
- maxInactiveInterval = interval;
- }
-
- @Override
- public int getMaxIntactiveInterval() {
- return maxInactiveInterval;
- }
-
- @Override
- public void setLastAccessedTime(long time) {
- lastAccessedTime = time;
- }
-
- @Override
- public long getLastAccessedTime() {
- return lastAccessedTime;
- }
-
- /**
- * {@inheritDoc} This method calls back into the session to flush the whole
- * session including its attributes.
- */
- @Override
- public void flush() {
- session.putInRegion();
- }
-
- /**
- * Use DeltaEvents to propagate the actual attribute data - DeltaEvents turn
- * the values into byte arrays which means that the actual domain classes are
- * not required on the server.
- */
- @Override
- public void toData(DataOutput out) throws IOException {
- out.writeInt(maxInactiveInterval);
- out.writeLong(lastAccessedTime);
-
- synchronized (attributes) {
- out.writeInt(attributes.size());
- for (Map.Entry<String, Object> entry : attributes.entrySet()) {
- DeltaEvent delta = new DeltaEvent(true, entry.getKey(),
- entry.getValue());
- DataSerializer.writeObject(delta, out);
- }
- }
-
- out.writeUTF(jvmOwnerId);
- }
-
- @Override
- public void fromData(
- DataInput in) throws IOException, ClassNotFoundException {
- maxInactiveInterval = in.readInt();
- lastAccessedTime = in.readLong();
- int size = in.readInt();
- while (size-- > 0) {
- DeltaEvent event = DataSerializer.readObject(in);
- attributes.put(event.getName(), event.getValue());
- }
- jvmOwnerId = in.readUTF();
- }
-
- @Override
- public void setJvmOwnerId(String jvmId) {
- this.jvmOwnerId = jvmId;
- }
-
- @Override
- public String getJvmOwnerId() {
- return jvmOwnerId;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/DeltaEvent.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/DeltaEvent.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/DeltaEvent.java
deleted file mode 100644
index 4c248dd..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/DeltaEvent.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements. See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-package com.gemstone.gemfire.modules.session.internal.filter.attributes;
-
-import com.gemstone.gemfire.DataSerializable;
-import com.gemstone.gemfire.DataSerializer;
-import com.gemstone.gemfire.internal.util.BlobHelper;
-import com.gemstone.gemfire.modules.session.internal.filter.GemfireHttpSession;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.io.IOException;
-
-/**
- * Capture the update to a particular name
- */
-public class DeltaEvent implements DataSerializable {
-
- private static final Logger LOG =
- LoggerFactory.getLogger(DeltaEvent.class.getName());
- /**
- * The event is either an update (true) or a remove (false)
- */
- private boolean update;
-
- private String name;
-
- private Object value = null;
-
- private GemfireHttpSession session = null;
-
- /**
- * Constructor for de-serialization only
- */
- public DeltaEvent() {
- }
-
- /**
- * Constructor which creates a 'deferred' event. This is used when the value
- * should only be applied when the object is serialized.
- *
- * @param session the session from which the value ultimately will be
- * retrieved
- * @param attribute the name of the attribute
- */
- public DeltaEvent(GemfireHttpSession session, String attribute) {
- this.session = session;
- this.name = attribute;
- this.update = true;
- }
-
- public DeltaEvent(boolean update, String attribute, Object value) {
- this.update = update;
- this.name = attribute;
- this.value = value;
- blobifyValue();
- }
-
- private void blobifyValue() {
- if (value instanceof byte[]) {
- LOG.warn("Session attribute is already a byte[] - problems may "
- + "occur transmitting this delta.");
- }
- try {
- value = BlobHelper.serializeToBlob(value);
- } catch (IOException iox) {
- LOG.error("Attribute '" + name + "' value: " + value
- + " cannot be serialized due to the following exception", iox);
- }
- }
-
- public boolean isUpdate() {
- return update;
- }
-
- public String getName() {
- return name;
- }
-
- public Object getValue() {
- return value;
- }
-
- @Override
- public void toData(DataOutput out) throws IOException {
- if (session != null) {
- value = session.getNativeSession().getAttribute(name);
- blobifyValue();
- }
- out.writeBoolean(update);
- DataSerializer.writeString(name, out);
- DataSerializer.writeObject(value, out);
- }
-
- @Override
- public void fromData(
- DataInput in) throws IOException, ClassNotFoundException {
- update = in.readBoolean();
- name = DataSerializer.readString(in);
- value = DataSerializer.readObject(in);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/DeltaQueuedSessionAttributes.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/DeltaQueuedSessionAttributes.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/DeltaQueuedSessionAttributes.java
deleted file mode 100644
index cb4f673..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/DeltaQueuedSessionAttributes.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements. See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-package com.gemstone.gemfire.modules.session.internal.filter.attributes;
-
-import com.gemstone.gemfire.DataSerializable;
-import com.gemstone.gemfire.Instantiator;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * This class implements delayed attribute delta propagation. Updates to
- * attributes are only propagated once the session goes out of scope - i.e. as
- * the request is done being processed.
- */
-public class DeltaQueuedSessionAttributes extends AbstractDeltaSessionAttributes {
-
- private static final Logger LOG =
- LoggerFactory.getLogger(DeltaQueuedSessionAttributes.class.getName());
-
- private Trigger trigger = Trigger.SET;
-
- private enum Trigger {
- SET,
- SET_AND_GET;
- }
-
- /**
- * Register ourselves for de-serialization
- */
- static {
- Instantiator.register(
- new Instantiator(DeltaQueuedSessionAttributes.class, 3479) {
- @Override
- public DataSerializable newInstance() {
- return new DeltaQueuedSessionAttributes();
- }
- });
- }
-
- /**
- * Default constructor
- */
- public DeltaQueuedSessionAttributes() {
- }
-
- public void setReplicationTrigger(String trigger) {
- this.trigger = Trigger.valueOf(trigger.toUpperCase());
- }
-
- @Override
- public Object getAttribute(String attr) {
- if (trigger == Trigger.SET_AND_GET) {
- deltas.put(attr, new DeltaEvent(session, attr));
- }
- return super.getAttribute(attr);
- }
-
- /**
- * {@inheritDoc} Put an attribute, setting the dirty flag. The changes are
- * flushed at the end of filter processing.
- */
- @Override
- public Object putAttribute(String attr, Object value) {
- Object obj = attributes.put(attr, value);
- deltas.put(attr, new DeltaEvent(true, attr, value));
- return obj;
- }
-
- /**
- * {@inheritDoc} Remove an attribute, setting the dirty flag. The changes are
- * flushed at the end of filter processing.
- */
- @Override
- public Object removeAttribute(String attr) {
- Object obj = attributes.remove(attr);
- deltas.put(attr, new DeltaEvent(false, attr, null));
- return obj;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/DeltaSessionAttributes.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/DeltaSessionAttributes.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/DeltaSessionAttributes.java
deleted file mode 100644
index 8cc9866..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/DeltaSessionAttributes.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements. See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-package com.gemstone.gemfire.modules.session.internal.filter.attributes;
-
-import com.gemstone.gemfire.DataSerializable;
-import com.gemstone.gemfire.Instantiator;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * This class implements synchronous attribute delta propagation. Updates to
- * attributes are immediately propagated.
- */
-public class DeltaSessionAttributes extends AbstractDeltaSessionAttributes {
-
- private static final Logger LOG =
- LoggerFactory.getLogger(DeltaSessionAttributes.class.getName());
-
- /**
- * Register ourselves for de-serialization
- */
- static {
- Instantiator.register(new Instantiator(DeltaSessionAttributes.class, 347) {
- @Override
- public DataSerializable newInstance() {
- return new DeltaSessionAttributes();
- }
- });
- }
-
- /**
- * Default constructor
- */
- public DeltaSessionAttributes() {
- }
-
- /**
- * {@inheritDoc} Put an attribute, setting the dirty flag and immediately
- * flushing the delta queue.
- */
- @Override
- public Object putAttribute(String attr, Object value) {
- Object obj = attributes.put(attr, value);
- deltas.put(attr, new DeltaEvent(true, attr, value));
- flush();
- return obj;
- }
-
- /**
- * {@inheritDoc} Remove an attribute, setting the dirty flag and immediately
- * flushing the delta queue.
- */
- @Override
- public Object removeAttribute(String attr) {
- Object obj = attributes.remove(attr);
- deltas.put(attr, new DeltaEvent(false, attr, null));
- flush();
- return obj;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/ImmediateSessionAttributes.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/ImmediateSessionAttributes.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/ImmediateSessionAttributes.java
deleted file mode 100644
index 15936ba..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/ImmediateSessionAttributes.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements. See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-package com.gemstone.gemfire.modules.session.internal.filter.attributes;
-
-import com.gemstone.gemfire.DataSerializable;
-import com.gemstone.gemfire.Instantiator;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * This class implements immediately transmitted attributes. All attributes are
- * transmitted for every attribute update. This is bound to be a performance hit
- * in some cases but ensures much higher data availability.
- */
-public class ImmediateSessionAttributes extends AbstractSessionAttributes {
-
- private static final Logger LOG =
- LoggerFactory.getLogger(ImmediateSessionAttributes.class.getName());
-
- /**
- * Register ourselves for de-serialization
- */
- static {
- Instantiator.register(
- new Instantiator(ImmediateSessionAttributes.class, 347) {
- @Override
- public DataSerializable newInstance() {
- return new ImmediateSessionAttributes();
- }
- });
- }
-
- /**
- * Default constructor
- */
- public ImmediateSessionAttributes() {
- }
-
- @Override
- public Object putAttribute(String attr, Object value) {
- Object obj = attributes.put(attr, value);
- flush();
- return obj;
- }
-
- @Override
- public Object removeAttribute(String attr) {
- Object obj = attributes.remove(attr);
- flush();
- return obj;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/QueuedSessionAttributes.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/QueuedSessionAttributes.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/QueuedSessionAttributes.java
deleted file mode 100644
index 8d20b43..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/QueuedSessionAttributes.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements. See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-package com.gemstone.gemfire.modules.session.internal.filter.attributes;
-
-import com.gemstone.gemfire.DataSerializable;
-import com.gemstone.gemfire.Instantiator;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * This class implements an attribute container which delays sending updates
- * until the session goes out of scope. All attributes are transmitted during
- * the update.
- */
-public class QueuedSessionAttributes extends AbstractSessionAttributes {
-
- private static final Logger LOG =
- LoggerFactory.getLogger(QueuedSessionAttributes.class.getName());
-
- /**
- * Register ourselves for de-serialization
- */
- static {
- Instantiator.register(new Instantiator(QueuedSessionAttributes.class, 347) {
- @Override
- public DataSerializable newInstance() {
- return new QueuedSessionAttributes();
- }
- });
- }
-
- /**
- * Default constructor
- */
- public QueuedSessionAttributes() {
- }
-
- @Override
- public Object putAttribute(String attr, Object value) {
- Object obj = attributes.put(attr, value);
- return obj;
- }
-
- @Override
- public Object removeAttribute(String attr) {
- Object obj = attributes.remove(attr);
- return obj;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/SessionAttributes.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/SessionAttributes.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/SessionAttributes.java
deleted file mode 100644
index b3b0cef..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/SessionAttributes.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements. See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-package com.gemstone.gemfire.modules.session.internal.filter.attributes;
-
-import com.gemstone.gemfire.DataSerializable;
-import com.gemstone.gemfire.modules.session.internal.filter.GemfireHttpSession;
-
-import java.util.Set;
-
-/**
- * Interface for session attribute storage. In reality, this interface is
- * responsible for anything, in the session which needs to be propagated for
- * caching - as such it also includes other 'attributes' such as
- * maxInactiveInterval and lastAccessedTime
- */
-public interface SessionAttributes extends DataSerializable {
-
- /**
- * Set the session to which these attributes belong.
- *
- * @param session the session to set
- */
- public void setSession(GemfireHttpSession session);
-
- /**
- * Set an attribute value.
- *
- * @param attr the name of the attribute to set
- * @param value the value for the attribute
- * @return the value object
- */
- public Object putAttribute(String attr, Object value);
-
- /**
- * Retrieve an attribute's value.
- *
- * @param attr the name of the attribute
- * @return the object associated with the attribute or null if none exists.
- */
- public Object getAttribute(String attr);
-
- /**
- * Remove the named attribute.
- *
- * @param attr the name of the attribute to remove
- * @return the value of the attribute removed or null if the named attribute
- * did not exist.
- */
- public Object removeAttribute(String attr);
-
- /**
- * Return a set of all attribute names.
- *
- * @return a set of all attribute names
- */
- public Set<String> getAttributeNames();
-
- /**
- * Set the max inactive interval for replication to other systems
- *
- * @param interval the time interval in seconds
- */
- public void setMaxInactiveInterval(int interval);
-
- /**
- * Retrieve the max inactive interval
- *
- * @return the max inactive interval in seconds
- */
- public int getMaxIntactiveInterval();
-
- /**
- * Set the last accessed time for replication to other systems
- *
- * @param time the last accessed time in milliseconds
- */
- public void setLastAccessedTime(long time);
-
- /**
- * Return the last accessed time in milliseconds
- *
- * @return the last accessed time
- */
- public long getLastAccessedTime();
-
- /**
- * Explicitly flush the attributes to backing store.
- */
- public void flush();
-
- /**
- * Return the last jvm which 'owned' these attributes
- *
- * @return the jvmId
- */
- public String getJvmOwnerId();
-
- /**
- * Set the jvmId. This is set every time the attributes are flushed to the
- * cache.
- *
- * @param jvmId
- */
- public void setJvmOwnerId(String jvmId);
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/util/NamedThreadFactory.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/util/NamedThreadFactory.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/util/NamedThreadFactory.java
deleted file mode 100644
index 7491cf0..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/util/NamedThreadFactory.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements. See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-package com.gemstone.gemfire.modules.session.internal.filter.util;
-
-import java.lang.Thread.UncaughtExceptionHandler;
-import java.util.concurrent.ThreadFactory;
-import java.util.concurrent.atomic.AtomicLong;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-/**
- * Factory to create named threads for easy identification at runtime.
- */
-public class NamedThreadFactory implements ThreadFactory {
-
- private static final Logger LOG = Logger.getLogger(
- NamedThreadFactory.class.getName());
-
- private final String id;
-
- private final AtomicLong serial = new AtomicLong();
-
- /**
- * Create a new thread factory, using the specified pool ID as a basis for
- * naming each thread.
- *
- * @param poolID pool name/ID
- */
- public NamedThreadFactory(final String poolID) {
- id = poolID;
- }
-
- /**
- * {@inheritDoc}
- * <p/>
- * This implementation sets the name of the thread, sets the thread to be a
- * daemon thread, and adds an uncaught exception handler.
- */
- @Override
- public Thread newThread(Runnable r) {
- Thread thr = new Thread(r);
- thr.setDaemon(true);
- thr.setName(id + " - " + serial.incrementAndGet());
- thr.setUncaughtExceptionHandler(new UncaughtExceptionHandler() {
- @Override
- public void uncaughtException(Thread t, Throwable e) {
- LOG.log(Level.WARNING,
- "Uncaught Exception in thread: " + t.getName(), e);
- }
- });
- return thr;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/util/ThreadLocalSession.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/util/ThreadLocalSession.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/util/ThreadLocalSession.java
deleted file mode 100644
index 996b1fd..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/util/ThreadLocalSession.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements. See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-package com.gemstone.gemfire.modules.session.internal.filter.util;
-
-import javax.servlet.http.HttpSession;
-
-/**
- */
-public class ThreadLocalSession {
- private static ThreadLocal<HttpSession> threadLocal =
- new ThreadLocal<HttpSession>();
-
- public static HttpSession get() {
- return threadLocal.get();
- }
-
- public static void set(HttpSession session) {
- threadLocal.set(session);
- }
-
- public static void remove() {
- threadLocal.remove();
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/util/TypeAwareMap.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/util/TypeAwareMap.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/util/TypeAwareMap.java
deleted file mode 100644
index 705bafd..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/util/TypeAwareMap.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements. See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-package com.gemstone.gemfire.modules.session.internal.filter.util;
-
-import com.gemstone.gemfire.modules.session.internal.common.CacheProperty;
-
-import java.util.HashMap;
-
-/**
- *
- */
-public class TypeAwareMap<K extends CacheProperty, Object> extends HashMap {
-
- private Class<K> keyType;
-
- public TypeAwareMap(Class<K> keyType) {
- super();
- this.keyType = keyType;
- }
-
- public Object put(K key, Object value) {
- if (!key.getClazz().isAssignableFrom(value.getClass())) {
- if (key.getClazz() == Boolean.class) {
- return (Object) super.put(key, Boolean.valueOf((String) value));
- } else if (key.getClazz() == Integer.class) {
- return (Object) super.put(key, Integer.valueOf((String) value));
- } else {
- throw new IllegalArgumentException("Value is not of type " +
- key.getClazz().getName());
- }
- }
-
- return (Object) super.put(key, value);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/jmx/SessionStatistics.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/jmx/SessionStatistics.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/jmx/SessionStatistics.java
deleted file mode 100644
index 9f945da..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/jmx/SessionStatistics.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements. See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-package com.gemstone.gemfire.modules.session.internal.jmx;
-
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.atomic.AtomicLong;
-
-/**
- * Class to manage session statistics
- */
-public class SessionStatistics implements SessionStatisticsMXBean {
-
- private AtomicInteger activeSessions = new AtomicInteger(0);
-
- private AtomicInteger totalSessions = new AtomicInteger(0);
-
- private AtomicLong regionUpdates = new AtomicLong(0);
-
- @Override
- public int getActiveSessions() {
- return activeSessions.get();
- }
-
- @Override
- public int getTotalSessions() {
- return totalSessions.get();
- }
-
- @Override
- public long getRegionUpdates() {
- return regionUpdates.get();
- }
-
- public void setActiveSessions(int sessions) {
- activeSessions.set(sessions);
- }
-
- public void setTotalSessions(int sessions) {
- totalSessions.set(sessions);
- }
-
- public void incActiveSessions() {
- activeSessions.incrementAndGet();
- totalSessions.incrementAndGet();
- }
-
- public void decActiveSessions() {
- activeSessions.decrementAndGet();
- }
-
- public void incTotalSessions() {
- totalSessions.incrementAndGet();
- }
-
- public void decTotalSessions() {
- totalSessions.decrementAndGet();
- }
-
- public void incRegionUpdates() {
- regionUpdates.incrementAndGet();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/jmx/SessionStatisticsMXBean.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/jmx/SessionStatisticsMXBean.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/jmx/SessionStatisticsMXBean.java
deleted file mode 100644
index 33cfc3e..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/jmx/SessionStatisticsMXBean.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.gemstone.gemfire.modules.session.internal.jmx;
-
-/**
- * MXBean interface to retrieve Session statistics
- */
-public interface SessionStatisticsMXBean {
-
- public int getActiveSessions();
-
- public int getTotalSessions();
-
- public long getRegionUpdates();
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/AbstractListener.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/AbstractListener.java b/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/AbstractListener.java
deleted file mode 100644
index 0bca895..0000000
--- a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/AbstractListener.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements. See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-package com.gemstone.gemfire.modules.session.internal.filter;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
-
-/**
- * @author jdeppe
- */
-public abstract class AbstractListener {
-
- protected final List<ListenerEventType> events =
- new ArrayList<ListenerEventType>();
-
- protected CountDownLatch latch;
-
- public AbstractListener() {
- this(1);
- }
-
- public AbstractListener(int numCalls) {
- latch = new CountDownLatch(numCalls);
- RendezvousManager.registerListener(this);
- }
-
- public synchronized void setLatch(int numCalls) {
- latch = new CountDownLatch(numCalls);
- events.clear();
- }
-
- public boolean await(long timeout,
- TimeUnit unit) throws InterruptedException {
- return latch.await(timeout, unit);
- }
-
- public List<ListenerEventType> getEvents() {
- return events;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/BasicServlet.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/BasicServlet.java b/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/BasicServlet.java
deleted file mode 100644
index 5804317..0000000
--- a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/BasicServlet.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements. See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-package com.gemstone.gemfire.modules.session.internal.filter;
-
-import java.io.IOException;
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.eclipse.jetty.servlet.DefaultServlet;
-/**
- *
- */
-public class BasicServlet extends DefaultServlet {
-
- Callback callback = null;
-
- @Override
- public void doGet(HttpServletRequest request, HttpServletResponse response)
- throws IOException, ServletException {
-
- if (callback != null) {
- callback.call(request, response);
- }
- }
-
- @Override
- public void init(ServletConfig config) throws ServletException {
- super.init(config);
- ServletContext context = config.getServletContext();
-
- String cbInitParam = config.getInitParameter("test.callback");
- callback = (Callback) context.getAttribute(cbInitParam);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/Callback.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/Callback.java b/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/Callback.java
deleted file mode 100644
index fa5b64f..0000000
--- a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/Callback.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.gemstone.gemfire.modules.session.internal.filter;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-
-/**
- * Interface which, when implemented, can be put into a servlet context and executed by the servlet.
- */
-public interface Callback {
- void call(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException;
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/CallbackServlet.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/CallbackServlet.java b/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/CallbackServlet.java
deleted file mode 100644
index 3050280..0000000
--- a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/CallbackServlet.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements. See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-package com.gemstone.gemfire.modules.session.internal.filter;
-
-import java.io.IOException;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-public class CallbackServlet extends HttpServlet {
-
- private Callback callback;
-
- /**
- * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
- * methods.
- *
- * @param request servlet request
- * @param response servlet response
- * @throws ServletException if a servlet-specific error occurs
- * @throws IOException if an I/O error occurs
- */
- protected void processRequest(HttpServletRequest request,
- HttpServletResponse response)
- throws ServletException, IOException {
-
- if (callback != null) {
- callback.call(request, response);
- }
- }
-
- public void setCallback(Callback callback) {
- this.callback = callback;
- }
-
- /**
- * Handles the HTTP <code>GET</code> method.
- *
- * @param request servlet request
- * @param response servlet response
- * @throws ServletException if a servlet-specific error occurs
- * @throws IOException if an I/O error occurs
- */
- @Override
- protected void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- processRequest(request, response);
- }
-
- /**
- * Handles the HTTP <code>POST</code> method.
- *
- * @param request servlet request
- * @param response servlet response
- * @throws ServletException if a servlet-specific error occurs
- * @throws IOException if an I/O error occurs
- */
- @Override
- protected void doPost(HttpServletRequest request,
- HttpServletResponse response)
- throws ServletException, IOException {
- processRequest(request, response);
- }
-
- /**
- * Returns a short description of the servlet.
- *
- * @return a String containing servlet description
- */
- @Override
- public String getServletInfo() {
- return "Short description";
- }
-
-}