GEODE-2018: Added instantiators to SessionCachingFilter init method

Also removed unused registerInstantiator methods from GatewayDeltaCreateEvent,
GatewayDeltaDestroyEvent, and DeltaSessionDestroyAttrbiuteEvent classes.

This closes #587


Project: http://git-wip-us.apache.org/repos/asf/geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/b5eeba30
Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/b5eeba30
Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/b5eeba30

Branch: refs/heads/feature/GEODE-3109
Commit: b5eeba30e52f4b65b549229448a7e11ce14cd650
Parents: d82a548
Author: David Anuta <[email protected]>
Authored: Fri Jun 16 10:44:05 2017 -0700
Committer: Dan Smith <[email protected]>
Committed: Thu Jun 29 14:04:36 2017 -0700

----------------------------------------------------------------------
 .../session/internal/common/CacheProperty.java  |  3 +-
 .../internal/filter/GemfireHttpSession.java     |  4 ++
 .../internal/filter/GemfireSessionManager.java  |  8 +--
 .../DeltaQueuedSessionAttributes.java           |  4 ++
 .../attributes/DeltaSessionAttributes.java      |  4 ++
 .../attributes/ImmediateSessionAttributes.java  | 64 --------------------
 .../attributes/QueuedSessionAttributes.java     | 61 -------------------
 .../session/filter/SessionCachingFilter.java    | 42 ++++++++++---
 .../gatewaydelta/GatewayDeltaCreateEvent.java   |  8 ---
 .../gatewaydelta/GatewayDeltaDestroyEvent.java  |  8 ---
 .../DeltaSessionDestroyAttributeEvent.java      |  8 ---
 11 files changed, 48 insertions(+), 166 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/geode/blob/b5eeba30/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/common/CacheProperty.java
----------------------------------------------------------------------
diff --git 
a/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/common/CacheProperty.java
 
b/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/common/CacheProperty.java
index fe16fc3..00240d9 100644
--- 
a/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/common/CacheProperty.java
+++ 
b/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/common/CacheProperty.java
@@ -38,8 +38,7 @@ public enum CacheProperty {
    * This parameter can take the following values which match the respective 
attribute container
    * classes
    * <p/>
-   * delta_queued : QueuedDeltaSessionAttributes delta_immediate : 
DeltaSessionAttributes immediate
-   * : ImmediateSessionAttributes queued : QueuedSessionAttributes
+   * delta_queued : QueuedDeltaSessionAttributes delta_immediate : 
DeltaSessionAttributes
    */
   SESSION_DELTA_POLICY(String.class),
 

http://git-wip-us.apache.org/repos/asf/geode/blob/b5eeba30/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/filter/GemfireHttpSession.java
----------------------------------------------------------------------
diff --git 
a/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/filter/GemfireHttpSession.java
 
b/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/filter/GemfireHttpSession.java
index 90edc6a..88b20d6 100644
--- 
a/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/filter/GemfireHttpSession.java
+++ 
b/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/filter/GemfireHttpSession.java
@@ -88,6 +88,10 @@ public class GemfireHttpSession implements HttpSession, 
DataSerializable, Delta
    * Register ourselves for de-serialization
    */
   static {
+    registerInstantiator();
+  }
+
+  public static void registerInstantiator() {
     Instantiator.register(new Instantiator(GemfireHttpSession.class, 27315) {
       @Override
       public DataSerializable newInstance() {

http://git-wip-us.apache.org/repos/asf/geode/blob/b5eeba30/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/filter/GemfireSessionManager.java
----------------------------------------------------------------------
diff --git 
a/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/filter/GemfireSessionManager.java
 
b/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/filter/GemfireSessionManager.java
index 20cfeca..c7466d6 100644
--- 
a/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/filter/GemfireSessionManager.java
+++ 
b/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/filter/GemfireSessionManager.java
@@ -32,7 +32,6 @@ import 
org.apache.geode.modules.session.internal.common.SessionCache;
 import 
org.apache.geode.modules.session.internal.filter.attributes.AbstractSessionAttributes;
 import 
org.apache.geode.modules.session.internal.filter.attributes.DeltaQueuedSessionAttributes;
 import 
org.apache.geode.modules.session.internal.filter.attributes.DeltaSessionAttributes;
-import 
org.apache.geode.modules.session.internal.filter.attributes.ImmediateSessionAttributes;
 import org.apache.geode.modules.session.internal.filter.util.TypeAwareMap;
 import org.apache.geode.modules.session.internal.jmx.SessionStatistics;
 import org.apache.geode.modules.util.RegionHelper;
@@ -219,15 +218,14 @@ public class GemfireSessionManager implements 
SessionManager {
     /**
      * Set up the attribute container depending on how things are configured
      */
+    Object sessionPolicy = properties.get(CacheProperty.SESSION_DELTA_POLICY);
     AbstractSessionAttributes attributes;
-    if 
("delta_queued".equals(properties.get(CacheProperty.SESSION_DELTA_POLICY))) {
+    if ("delta_queued".equals(sessionPolicy) || 
"queued".equals(sessionPolicy)) {
       attributes = new DeltaQueuedSessionAttributes();
       ((DeltaQueuedSessionAttributes) attributes)
           .setReplicationTrigger((String) 
properties.get(CacheProperty.REPLICATION_TRIGGER));
-    } else if 
("delta_immediate".equals(properties.get(CacheProperty.SESSION_DELTA_POLICY))) {
+    } else if ("delta_immediate".equals(sessionPolicy) || 
"immediate".equals(sessionPolicy)) {
       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'");

http://git-wip-us.apache.org/repos/asf/geode/blob/b5eeba30/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/filter/attributes/DeltaQueuedSessionAttributes.java
----------------------------------------------------------------------
diff --git 
a/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/filter/attributes/DeltaQueuedSessionAttributes.java
 
b/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/filter/attributes/DeltaQueuedSessionAttributes.java
index a806515..87b9ca3 100644
--- 
a/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/filter/attributes/DeltaQueuedSessionAttributes.java
+++ 
b/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/filter/attributes/DeltaQueuedSessionAttributes.java
@@ -39,6 +39,10 @@ public class DeltaQueuedSessionAttributes extends 
AbstractDeltaSessionAttributes
    * Register ourselves for de-serialization
    */
   static {
+    registerInstantiator();
+  }
+
+  public static void registerInstantiator() {
     Instantiator.register(new Instantiator(DeltaQueuedSessionAttributes.class, 
3479) {
       @Override
       public DataSerializable newInstance() {

http://git-wip-us.apache.org/repos/asf/geode/blob/b5eeba30/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/filter/attributes/DeltaSessionAttributes.java
----------------------------------------------------------------------
diff --git 
a/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/filter/attributes/DeltaSessionAttributes.java
 
b/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/filter/attributes/DeltaSessionAttributes.java
index 010d4e3..5928b71 100644
--- 
a/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/filter/attributes/DeltaSessionAttributes.java
+++ 
b/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/filter/attributes/DeltaSessionAttributes.java
@@ -32,6 +32,10 @@ public class DeltaSessionAttributes extends 
AbstractDeltaSessionAttributes {
    * Register ourselves for de-serialization
    */
   static {
+    registerInstantiator();
+  }
+
+  public static void registerInstantiator() {
     Instantiator.register(new Instantiator(DeltaSessionAttributes.class, 347) {
       @Override
       public DataSerializable newInstance() {

http://git-wip-us.apache.org/repos/asf/geode/blob/b5eeba30/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/filter/attributes/ImmediateSessionAttributes.java
----------------------------------------------------------------------
diff --git 
a/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/filter/attributes/ImmediateSessionAttributes.java
 
b/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/filter/attributes/ImmediateSessionAttributes.java
deleted file mode 100644
index 084be45..0000000
--- 
a/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/filter/attributes/ImmediateSessionAttributes.java
+++ /dev/null
@@ -1,64 +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 org.apache.geode.modules.session.internal.filter.attributes;
-
-import org.apache.geode.DataSerializable;
-import org.apache.geode.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/geode/blob/b5eeba30/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/filter/attributes/QueuedSessionAttributes.java
----------------------------------------------------------------------
diff --git 
a/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/filter/attributes/QueuedSessionAttributes.java
 
b/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/filter/attributes/QueuedSessionAttributes.java
deleted file mode 100644
index 374e81e..0000000
--- 
a/extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/filter/attributes/QueuedSessionAttributes.java
+++ /dev/null
@@ -1,61 +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 org.apache.geode.modules.session.internal.filter.attributes;
-
-import org.apache.geode.DataSerializable;
-import org.apache.geode.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/geode/blob/b5eeba30/extensions/geode-modules-session/src/main/java/org/apache/geode/modules/session/filter/SessionCachingFilter.java
----------------------------------------------------------------------
diff --git 
a/extensions/geode-modules-session/src/main/java/org/apache/geode/modules/session/filter/SessionCachingFilter.java
 
b/extensions/geode-modules-session/src/main/java/org/apache/geode/modules/session/filter/SessionCachingFilter.java
index 702415e..bf58e22 100644
--- 
a/extensions/geode-modules-session/src/main/java/org/apache/geode/modules/session/filter/SessionCachingFilter.java
+++ 
b/extensions/geode-modules-session/src/main/java/org/apache/geode/modules/session/filter/SessionCachingFilter.java
@@ -15,16 +15,6 @@
 
 package org.apache.geode.modules.session.filter;
 
-import org.apache.geode.distributed.internal.DistributionConfig;
-import org.apache.geode.modules.session.internal.filter.GemfireHttpSession;
-import org.apache.geode.modules.session.internal.filter.GemfireSessionManager;
-import org.apache.geode.modules.session.internal.filter.SessionManager;
-import 
org.apache.geode.modules.session.internal.filter.util.ThreadLocalSession;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.servlet.*;
-import javax.servlet.http.*;
 import java.io.IOException;
 import java.io.PrintStream;
 import java.io.PrintWriter;
@@ -33,6 +23,31 @@ import java.security.Principal;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletRequestWrapper;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletRequestWrapper;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpServletResponseWrapper;
+import javax.servlet.http.HttpSession;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.geode.distributed.internal.DistributionConfig;
+import org.apache.geode.modules.session.internal.filter.GemfireHttpSession;
+import org.apache.geode.modules.session.internal.filter.GemfireSessionManager;
+import org.apache.geode.modules.session.internal.filter.SessionManager;
+import 
org.apache.geode.modules.session.internal.filter.attributes.DeltaQueuedSessionAttributes;
+import 
org.apache.geode.modules.session.internal.filter.attributes.DeltaSessionAttributes;
+import 
org.apache.geode.modules.session.internal.filter.util.ThreadLocalSession;
+
 /**
  * Primary class which orchestrates everything. This is the class which gets 
configured in the
  * web.xml.
@@ -494,6 +509,7 @@ public class SessionCachingFilter implements Filter {
   @Override
   public void init(final FilterConfig config) {
     LOG.info("Starting Session Filter initialization");
+    registerInstantiators();
     this.filterConfig = config;
 
     if (started.getAndDecrement() > 0) {
@@ -528,6 +544,12 @@ public class SessionCachingFilter implements Filter {
     LOG.debug("Filter class loader {}", this.getClass().getClassLoader());
   }
 
+  private void registerInstantiators() {
+    GemfireHttpSession.registerInstantiator();
+    DeltaQueuedSessionAttributes.registerInstantiator();
+    DeltaSessionAttributes.registerInstantiator();
+  }
+
   /**
    * Return a String representation of this object.
    */

http://git-wip-us.apache.org/repos/asf/geode/blob/b5eeba30/extensions/geode-modules/src/main/java/org/apache/geode/modules/gatewaydelta/GatewayDeltaCreateEvent.java
----------------------------------------------------------------------
diff --git 
a/extensions/geode-modules/src/main/java/org/apache/geode/modules/gatewaydelta/GatewayDeltaCreateEvent.java
 
b/extensions/geode-modules/src/main/java/org/apache/geode/modules/gatewaydelta/GatewayDeltaCreateEvent.java
index ba9ba3f..f26f860 100644
--- 
a/extensions/geode-modules/src/main/java/org/apache/geode/modules/gatewaydelta/GatewayDeltaCreateEvent.java
+++ 
b/extensions/geode-modules/src/main/java/org/apache/geode/modules/gatewaydelta/GatewayDeltaCreateEvent.java
@@ -62,14 +62,6 @@ public class GatewayDeltaCreateEvent extends 
AbstractGatewayDeltaEvent {
     DataSerializer.writeByteArray(this.gatewayDelta, out);
   }
 
-  public static void registerInstantiator(int id) {
-    Instantiator.register(new Instantiator(GatewayDeltaCreateEvent.class, id) {
-      public DataSerializable newInstance() {
-        return new GatewayDeltaCreateEvent();
-      }
-    });
-  }
-
   public String toString() {
     return new 
StringBuilder().append("GatewayDeltaCreateEvent[").append("regionName=")
         .append(this.regionName).append("; key=").append(this.key).append("; 
gatewayDelta=")

http://git-wip-us.apache.org/repos/asf/geode/blob/b5eeba30/extensions/geode-modules/src/main/java/org/apache/geode/modules/gatewaydelta/GatewayDeltaDestroyEvent.java
----------------------------------------------------------------------
diff --git 
a/extensions/geode-modules/src/main/java/org/apache/geode/modules/gatewaydelta/GatewayDeltaDestroyEvent.java
 
b/extensions/geode-modules/src/main/java/org/apache/geode/modules/gatewaydelta/GatewayDeltaDestroyEvent.java
index 5b8d823..cf713bb 100644
--- 
a/extensions/geode-modules/src/main/java/org/apache/geode/modules/gatewaydelta/GatewayDeltaDestroyEvent.java
+++ 
b/extensions/geode-modules/src/main/java/org/apache/geode/modules/gatewaydelta/GatewayDeltaDestroyEvent.java
@@ -58,14 +58,6 @@ public class GatewayDeltaDestroyEvent extends 
AbstractGatewayDeltaEvent {
     super.toData(out);
   }
 
-  public static void registerInstantiator(int id) {
-    Instantiator.register(new Instantiator(GatewayDeltaDestroyEvent.class, id) 
{
-      public DataSerializable newInstance() {
-        return new GatewayDeltaDestroyEvent();
-      }
-    });
-  }
-
   public String toString() {
     return new 
StringBuilder().append("GatewayDeltaDestroyEvent[").append("regionName=")
         .append(this.regionName).append("; 
key=").append(this.key).append("]").toString();

http://git-wip-us.apache.org/repos/asf/geode/blob/b5eeba30/extensions/geode-modules/src/main/java/org/apache/geode/modules/session/catalina/internal/DeltaSessionDestroyAttributeEvent.java
----------------------------------------------------------------------
diff --git 
a/extensions/geode-modules/src/main/java/org/apache/geode/modules/session/catalina/internal/DeltaSessionDestroyAttributeEvent.java
 
b/extensions/geode-modules/src/main/java/org/apache/geode/modules/session/catalina/internal/DeltaSessionDestroyAttributeEvent.java
index 7ab59a5..5baf059 100644
--- 
a/extensions/geode-modules/src/main/java/org/apache/geode/modules/session/catalina/internal/DeltaSessionDestroyAttributeEvent.java
+++ 
b/extensions/geode-modules/src/main/java/org/apache/geode/modules/session/catalina/internal/DeltaSessionDestroyAttributeEvent.java
@@ -52,14 +52,6 @@ public class DeltaSessionDestroyAttributeEvent implements 
DeltaSessionAttributeE
     DataSerializer.writeString(this.attributeName, out);
   }
 
-  public static void registerInstantiator(int id) {
-    Instantiator.register(new 
Instantiator(DeltaSessionDestroyAttributeEvent.class, id) {
-      public DataSerializable newInstance() {
-        return new DeltaSessionDestroyAttributeEvent();
-      }
-    });
-  }
-
   public String toString() {
     return new 
StringBuilder().append("DeltaSessionDestroyAttributeEvent[").append("attributeName=")
         .append(this.attributeName).append("]").toString();

Reply via email to